1.前言
随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网主机不能与公网通信,也不能通过公网与另外一个私网通信。
NAT(Network Address Translation)是将IP数据报报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。
NAT的优点:
- 有效避免来自外网的攻击,可以很大程度上提高网络安全性
- 控制内网主机访问外网,同时也控制外网主机访问内网,解决了内网与外网不能互通的问题。
2.NAT的类型
2.1 静态NAT
在本示例中,源地址为192.168.1.1的报文需要发往公网地址100.1.1.1。在网关RTA上配置了一个私网地址192.168.1.1到公网地址200.10.10.1的映射。当网关收到主机A发送的数据包后,会先将报文中的源地址192.168.1.1转换为200.10.10.1,然后转发报文到目的设备。目的设备回复的报文目的地址是200.10.10.1。当网关收到回复报文后,也会执行静态地址转换,将200.10.10.1转换成192.168.1.1,然后转发报文到主机A。和主机A在同一个网络中其他主机,如主机B,访问公网的过程也需要网关RTA做静态NAT转换。
- 如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT
- 但这种一对一的IP地址映射无法缓解公用地址短缺的问题
2.2 动态NAT
本示例中,当内部主机A和主机B需要与公网中的目的主机通信时,网关RTA会从配置的公网地址池中选择一个未使用的公网地址与之做映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射将会被删除,公网地址也会被恢复到地址池中待用。当网关收到回复报文后,会根据之前的映射再次进行转换之后转发给对应主机。
- 动态NAT地址池中的地址用尽以后,只能等待被只占用的公网地址被释放后,其他主机才能使用它来访问公网。
2.3 端口NAT - NAPT
本例中,RTA收到一个私网主机发送的报文,源IP地址是192.168.1.1,源端口号是1025,目的IP地址是100.1.1.1,目的端口是80。RTA会从配置的公网地址池中选择一个空闲的公网IP地址和端口号,并建立相应的NAPT表项。这些NAPT表项指定了报文的私网IP地址和端口号与公网IP地址和端口号的映射关系。之后,RTA将报文的源IP地址和端口号转换成公网地址200.10.10.1和端口号2843,并转发报文到公网。当网关RTA收到回复报文后,会根据之前的映射表再次进行转换之后转发给主机A。主机B同理
- NAPT(Network Address Port Translation),也称NAT-PT或PAT,网络地址端口转换,允许多个私网地址映射到同一个公网地址的不同端口
- 通常适用于大型企业网络(申请多个固定的公网地址)
- 当端口不固定的时候可以用Easy IP
- 相比动态NAT多个利用同一地址的内部主机不能同时上网,可以实现多个内部主机同时上网
2.4 NAT服务器
指定[公有地址:端口]与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,当私有网络中的读物起需要对公网提供服务时使用
- NAT具有“屏蔽”内部主机的作用,但有时内网需要向外网提供服务
- 当外网用户访问内网服务器时,NAT Servce 事先通过配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”
3 NAT配置
3.1 静态NAT
方式一:接口视图下配置静态NAT
[Huawei-GigabitEthernet0/0/0] nat static gldbal {global-address} inside {host-address }
global参数用于配置外部公有地址,inside参数用于配置内部私有地址。
方式二:系统视图下配置静态NAT
[Huawei] nat static global { global-address} inside {host-address }
配置命令相同 ,视图为系统视图,之后在具体的接口下开启静态NAT。
[Huawei-GigabitEthernet0/0/0] at static enable
在接口下使能nat static功能。
3.2 动态NAT
1. 创建地址池
[Huawei] nat address-group group-index start-address end-address
配置公有地址范围,其中group-index为地址池编号,start-address、end-address分别为地址池起始地址、结束地址。
2. 配置地址转换ACL规则
[Huaweil acl number
[Huawei-acl-basic-number ] rule permit source source-address source-wildcard
配置基础ACL,匹配需要进行动态转换的源地址范围。
3. 接口视图下配置带地址池的NAT Outbound
[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [ no-pat ]
接口下关联ACL与地址池进行动态地址转换,no-pat参数指定不进行端口转换。