一、NAT简介
NAT(Network Address Translation)网络地址转换是将IP数据报文头中的IP地址转换为另一个IP地址的过程。
IPv4地址枯竭已成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、私网地址等)的使用是解决这个问题最主要的技术手段。NAT主要用于实现内部网络(简称内网,使用私有IP地址)访问外部网络(简称外网,使用公有IP地址)的功能。当内网的主机要访问外网时,通过NAT技术可以将其私网地址转换为公网地址,可以实现多个私网用户共用一个公网地址来访问外部网络,这样既可保证网络互通,又节省了公网地址。
A、B、C类地址中各预留了一些地址专门作为私有IP地址:
A类:10.0.0.0 ~ 10.255.255.255
B类:172.16.0.0 ~ 172.31.255.255
C类:192.168.0.0 ~ 192.168.255.255
二、NAT分类
分类 | 转换内容 | 是否转 换端囗 | 适用场景 | |
源NAT | NAPT | 源IP地址 | 是 | 适合大星的私网用户访问Internet场景。大量私网地址转换为少量公网地址,在转换过程中同时转换报文的地址和端口。 |
Easy IP | 源IP地址 | 是 | 适合公网接口通过拨号方式动态获取公网地址,转换后IP地址不固定,无法在NAT地址池中配置固定的地址场景。或申请到的静态公网地址仅可用于配置公网接口,无法在NAT地址池中配置固定地址段的场景。 | |
目的NAT | NAT Server | 目的IP地址 | 可选 | 适用于私网地址与公网地址、私网地址与公网端口、私网端口与公网地址、私网端口与公网端口存在固定映射关系场果,通过配置nat server命令实现。 |
双向NAT | 源NAT+NAT Server | 源IP地址+目的IP地址 | 可选 | 适合源和目的地址同时需要转换,且目的地址转换前后存在固定映射关系的场景。需要分别配置源NAT策略和nat server命令实现, |
三、源NAT
源NAT(Source NAT)简称SNAT,它的主要功能是在数据包离开私有网络进入公网时,修改数据包的源IP地址,目的是为了让私有网络中的设备能够使用公共IP地址与外部网络通信,源NAT通常在边界路由器或者防火墙上实现。源NAT一般分为Basic NAT、NAPT、Easy IP三种方式。
Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而不处理TCP/UDP协议的端口号,一个公网IP地址不能同时被多个私网用户使用。【不常用】
静态NAT的配置
在R1上配置静态NAT将内网主机的私有地址一对一映射到公有地址。
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1lip address 122.1.2.1 24
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.1 inside 192.168.1.1
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.2 inside 192.168.1.2
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.3 inside 192.168.1.3
动态NAT∶静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有地址也处于使用状态。为了避免地址浪费,动态NAT提出了地址池的概念:所有可用的公有地址组成地址池。
当内部主机访问外部网络时临时分配一个地址池中未使用的地址,并将该地址标记为“In Use”。当该主机不再访问外部网络时回收分配的地址,重新标记为“Not Use”。
动态NAT的配置
在R1上配置动态NAT将内网主机的私有地址动态映射到公有地址。
[R1]nat address group 1 122.1.2.1 122.1.2.3[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
NAPT(Network Address Port Translation)网络地址端口转换,可以实现并发的地址转换,允许多个内部地址映射到同一个公有地址上。NAPT方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转换,使多个私网用户可共用一个公网IP地址访问外网。【常用】
NAPT的配置
在R1上配置NAPT让内网所有私有地址通过122.1.2.1访问公网。
[R1]nat address-group 1 122.1.2.1 122.1.2.1
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
Easy IP方式特别适合小型局域网访问Internet的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时公网IP地址以供内部主机访问Internet。【小网络常用】
Easy-IP的配置
在R1上配置Easy-IP让内网所有私有地址通过122.1.2.1访问公网
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000
四、目的NAT
目的NAT(Destination NAT)简称DNAT,也称为反向地址转换或地址映射或端口映射,目的地址转换是一种单向的针对数据包目标地址的地址转换。主要用于将内网的服务端口发布到公网,从而让公网用户可通过公网地址访问到内网服务器,华为的目的NAT称为NAT Server,童工“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”。
NAT Server:指定[公有地址:端口1与[私有地址:端口]的一对一映射关系,将内网服务器映射到公网,私有网络中的服务器需要对公网提供服务时使用。
外网主机主动访问[公有地址:端口]实现对内网服务器的访问。
NAT Server的配置
在R1上配置NAT Server将内网服务器192.168.1.10的8080端口陕射到公有地址122.1.2.1的80端口。
[R1linterface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 122.1.2.1 www inside 192.168.1.10 8080
五、双向NAT
源NAT+NAT Server组合使用成为双向NAT,组合是针对同一条数据流,不是在设备上同样配置了源NAT和NAT server,两种NAT针对不同的数据流,一般出题是在防火墙上做NAT。双向NAT分为域间NAT和域内NAT,其实这个域说的是防火墙的安全区域,考试以华为为主就这么记忆吧,其他安全厂商防火墙的双向NAT适用的场景是这里的域内NAT。
域间双向NAT:报文在两个安全区域之间流动,一般应用在业务服务器不配置网关地址时使用,私网业务服务器与防火墙必须在一个网段。【不常见】
域内NAT:内网用户通过公网域名或者IP访问服务器时使用。【常见】
六、软考真题
2022年11月网络工程师:
某信息系统内网IP为10.0.10.2,域名解析公网IP为113.201.123.14,现需要出口防火墙配置NAT,使得外部用户能正常访问该系统,其中NAT模式应配置为(1),源地址应配置为(2)
第一问选项:
A.源NAT
B.一对一源NAT
C.一对一目的NAT
D.不做转换
第二问选项:
A.任意
B.10.0.10.2
C.192.168.0.1
D.113.201.123.14
【解析】答案是C、A。第一问肯定是NAT Server只不过变换了说法,目的NAT和源NAT的定义需要牢记。第二问是任意,NAT Server做源地址的转换。
2023年11月网络工程师:
路由器R2作为公司接入网关,为内网用户提供双链路服务,两条链路都通过静态IP方式接入运营商。要求在R2上行接口配置NAT,使内网用户可以访问Internet。
补全下列命令片段完成R2的相关配置:
[R2] ac1 number 3001l允许内部所有网段通过NAT访问外网
[R2-ac1-3001] rule 5 permit ip source 10.0.0.0(6)
[R2-acl-adv-3001] quit
[R2] interface gigabitethernet 0/0/1
[R2-GigabitEthernet0/0/1] nat (7) 3001l在GEO/0/1接口配置NAT
[R2-GigabitEthernetO/0/1] quit
[R2] ip route-static 0.0.0.0.0 222.137.0.1
[R2] ip route-static 0.0.0.0.0 210.25.0.1
[R2] ip load-balance hash src-ip
上述三条命令的功能是(8)。