NAT(Network Address Translation)

         NAT(Network Address Translation),网络地址转换,是一种网络通信技术,主要用于解决IPv4地址不足的问题。NAT技术可以将一组内部网络的IP地址映射到一个或多个外部网络的IP地址,实现内外网络之间的通信。其主要作用包括:P地址转换、地址重用、增强网络安全性和网络访问控制。

  1. IP地址转换:将内部网络使用的私有IP地址转换为外部网络使用的公共IP地址,使得内部网络可以与外部网络进行通信。

  2. 地址重用:通过使用私有IP地址,可以更有效地利用有限的公共IP地址资源。

  3. 增强网络安全性:NAT技术可以隐藏内部网络的真实IP地址,增加了网络的安全性,减少了外部网络对内部网络的直接攻击风险。

  4. 网络访问控制:通过配置NAT规则,可以对内部网络的访问进行控制,限制外部网络对内部网络的访问。

一、 分类

1. 源NAT(转换数据包的源地址,针对数据包的初始流量)

  No-PAT(只转换源IP地址)

  NAPT、Smart NAT、easy IP(同时转换源IP和源端口)

                    

2. 目的NAT

静态目的NAT

  地址到地址

  端口到端口

  地址到端口

  端口到地址

  动态的目的NAT

                    

3. 双向NAT

  源NAT+目的NAT

4. NAT server

  地址到地址

  端口到端口

二、 NAT策略的匹配原则

1. 匹配顺序是从上到下,优先匹配

2. 双向NAT或目的NAT会在源NAT之上

3. 新增的或是被修改的NAT策略,会调整到同类NAT的最后

4. 根据需要调整NAT策略的顺序,但是不能违背条件2

防火墙收到数据,匹配顺序:

1. 目的NAT;

2. 路由表;

3. 安全策略;

4. 双向NAT;

5. 源NAT;

6. 创建会话表;

7. 转发

如果防火墙同时配置了目的NAT和安全策略,则安全策略匹配的流量是转换后的目的地址;

如果防火墙同时配置了源NAT和安全策略,则安全策略匹配的流量是转换前的源地址;

如果防火墙同时配置了双向NAT和安全策略,则安全策略匹配的流量是转换前的源地址和转换后的目的地址。

一般情况下,安全策略匹配的流量的真实地址。

实验(此文中涉及的实验用华为ENSP模拟器实现)

需求:

地址池

源地址池、目的地址池

源NAT,No-PAT

不转换端口号

定义源NAT地址池

[FW]nat address-group SNAT  //创建地址池

[FW-address-group-SNAT]section 12.1.1.10 12.1.1.11  //定义地址范围

[FW-address-group-SNAT]mode no-pat ?

  global  Indicate no-pat pattern of global mode

//生成的server-map表项中不包含安全区域的参数,所有的安全区域都可以通过该server-map表项访问内部终端

  local   Indicate no-pat pattern of local mode

//生成的server-map表项中包含安全区域的参数,只有次安全区域可以通过该server-map表项访问内部终端

nat-policy

 rule name SNAT

  source-zone trust

  destination-zone untrust

  source-address 192.168.1.0 mask 255.255.255.0

  destination-address 103.231.1.0 mask 255.255.255.0

  destination-address 60.69.1.0 mask 255.255.255.0

  service icmp

  action source-nat address-group SNAT

security-policy

 rule name Internet

  source-zone trust

  destination-zone untrust

  source-address 192.168.1.0 mask 255.255.255.0

  service http

  service icmp

  action permit

源NAT,NAPT

有端口号的转换

[FW-address-group-SNAT]mode pat

源NAT,Smart NAT

Smart NAT = No-PAT + NAPT

nat address-group SNAT 0

 mode no-pat local

 smart-nopat 12.1.1.20   //指定smart IP,当地址池用满之后,会使用该地址做pat

 section 0 12.1.1.10 12.1.1.11

源NAT,easy nat

将内部终端,通过出接口的IP地址访问外网

nat-policy

 rule name SNAT

  source-zone trust

  destination-zone untrust

  source-address 192.168.1.0 mask 255.255.255.0

  destination-address 103.231.1.0 mask 255.255.255.0

  destination-address 60.69.1.0 mask 255.255.255.0

  service icmp

  action source-nat easy-nat

目的NAT,静态目的NAT

地址到地址

转换数据包的目的地址,转换前后,地址存在固定的映射关系,通常用来发布服务器

匹配的地址数量和地址池的数量要一致;

nat-policy中不能配置目的zone或者出接口,因为nat策略匹配时,还不能确定出接口或目的zone;

安全策略中可以配置目的zone或者出接口,因为nat策略已经转换完成目的IP,且确认了出接口和目的zone。

nat-policy

 rule name DNAT

  source-zone untrust

  destination-address range 12.1.1.10 12.1.1.12    //定义全局地址

  service http

  service icmp

  action destination-nat static address-to-address address-group DNAT  //定义静态的地址到地址的目的NAT,地址之间是一一对应的

destination-nat address-group DNAT 0

section 192.168.1.10 192.168.1.12    //定义内部地址

security-policy

 rule name DNAT

 source-zone untrust

 destination-zone trust

 destination-address 192.168.1.0 mask 255.255.255.0

 service http

 service icmp

 action permit

端口到端口

转换数据包的目的端口,转换前后,端口存在固定的映射关系

匹配的端口数量要一致;

nat-policy中不能配置目的zone或者出接口,因为nat策略匹配时,还不能确定出接口或目的zone;

安全策略中可以配置目的zone或者出接口,因为nat策略已经转换完成目的IP,且确认了出接口和目的zone

destination-nat address-group DNAT 0

 section 192.168.1.12 192.168.1.12

nat-policy

 rule name DNAT

  source-zone untrust

  destination-address 12.1.1.12 mask 255.255.255.255

  service protocol tcp destination-port 8890    //定义被访问的目的端口

  action destination-nat static port-to-port address-group DNAT 80    //定义真实端口

端口到地址

一个公网地址的多个端口,转换到多个私网地址的相同目的端口

nat-policy

 rule name DNAT

  source-zone untrust

  destination-address 12.1.1.100 mask 255.255.255.255

  service protocol tcp destination-port 8889 to 8890

  action destination-nat static port-to-address address-group DNAT 21

destination-nat address-group DNAT 0

 section 192.168.1.10 192.168.1.11

security-policy

 rule name DNAT

  source-zone untrust

  destination-zone trust

  destination-address 192.168.1.0 mask 255.255.255.0

  service ftp

  action permit

地址到端口

多个公网地址,转换到一个私网地址的多个端口

nat-policy

 rule name DNAT

  source-zone untrust

  destination-address range 12.1.1.10 12.1.1.11

  service protocol tcp destination-port 8890

  action destination-nat static address-to-port address-group DNAT 21 80

destination-nat address-group DNAT 0

 section 192.168.1.11 192.168.1.11

security-policy

 rule name DNAT

  source-zone untrust

  destination-zone trust

  destination-address 192.168.1.0 mask 255.255.255.0

  service ftp

  service http

  action permit

目的NAT,动态的目的NAT

nat-policy

 rule name DNAT

  source-zone trust

  destination-address 8.8.8.8 mask 255.255.255.255

  service icmp

  action destination-nat address-group DNAT

destination-nat address-group DNAT 0

 section 103.231.1.10 103.231.1.10

security-policy

 rule name DDNAT

  source-zone trust

  destination-zone untrust

  source-address 192.168.1.0 mask 255.255.255.0

  destination-address 103.231.1.10 mask 255.255.255.255

  service icmp

  action permit

NAT Server

一般是用来发布内网路由器的

地址到地址

[FW]nat server HTTP global 12.1.1.100 inside 192.168.1.11 ?

  X.X.X.X       Local IP address of the last server host

  description   Indicate the NAT server description

  nat-disable   Indicate nat server function disable    //使该NAT server不生效

  no-reverse    No reverse NAT server     //不生成反向server-map

  unr-route     Indicate configure UNR     //黑洞路由

  vpn-instance indicate a VPN instance

  <cr>         

反向server-map的作用

ASPF/ALG: 起到精确安全策略的作用——FTP;

Nat server: 允许内部服务器主动向外部发起访问(需要安全策略)

端口到端口

[FW]nat server FTP protocol tcp global 12.1.1.100 8890 inside 192.168.1.11 21

问题:

如果global地址与防火墙的出接口地址不在同一网段,一定要配置黑洞路由,否则会引起三层环路;

如果global地址与防火墙的出接口地址在同一网段,建议配置黑洞路由,否则会引发大量的ARP报文;

如果global地址与防火墙的出接口地址一致,则不需要配置缺省路由。

双向NAT

所谓双向NAT,就是同时转换数据包的源地址和目的地址;

做NAT策略是,要在同一条NAT策略中配置;

应用场景:

场景一:可避免在服务器上配置网关——可避免服务器对外访问

场景二:内部终端通过公网地址访问内部服务器时,无法正常建立连接

 由于内部终端A发起TCP首次握手时,发出的TCP报文,与内部服务器B响应的TCP握手报文IP地址不匹配,导致TCP连接失败,因此无法建立链接

总结

内网访问公网(针对内网用户)—— 源NAT

通过地址池

通过出接口

外网访问内部(针对对外发布服务器)—— 目的NAT

目的NAT

NAT Server

多出口的场景

配置黑洞路由

nat address-group SNAT 0

 mode no-pat global

 route enable     //源NAT加黑洞路由

 section 0 192.168.1.100 192.168.1.100

目的NAT

[FW]ip route-static 12.1.1.0 29 NULL 0

     此篇文章属于个人经验总结,如有漏缺的地方欢迎指出改进,本文章到此结束,下期再见。

  • 30
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PMP圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值