原理概述
NAT(Network Address Translation,网络地址转换),是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公网IP地址)的功能。NAT有3种类型:静态NAT、动态地址NAT以及网络地址端口转换NAPT。
NAT转换设备(实现NAT功能的网络设备)维护这地址转换表,所有经过NAT转换设备并且需要进行地址转换的报文,都会通过该表做相应的转换。NAT转换设备处于内网和外网的连接处,常见的有路由器、防火墙等。
实验目的
- 理解 NAT 的应用场景
- 掌握静态 NAT 的配置
- 掌握 NAT Outbound 的配置
- 掌握 NAT Easy-IP 的配置
- 掌握 NAT Server 的配置
实验内容
本实验模拟企业网络场景。R1是公司的出口网关路由器,公司内员工和服务器都通过交换机 S1 或 S2 连接到 R1 上,R2 模拟外网设备与 R1 直连。由于公司内网都使用私网IP地址,为了实现公司内部员工可以访问外网,服务器可以供外网用户访问,网络管理员需要在路由器 R1 上配置NAT;使用静态 NAT 和 NAT Outbound 技术使部分员工可以访问外网,使用 NAT Server 实际使服务器可以供外网用户访问。
实验编址
设备 | 接口 | IP地址 | 子网掩码 | 默认网关 |
R1 | GE 0/0/0 | 202.169.10.1 | 255.255.255.0 | N/A |
GE 0/0/1 | 172.16.1.254 | 255.255.255.0 | N/A | |
GE 0/0/2 | 172.16.17.254 | 255.255.255.0 | N/A | |
R2 | GE 0/0/0 | 202.169.10.2 | 255.255.255.0 | N/A |
Loopback 0 | 202.169.20.1 | 255.255.255.0 | N/A | |
PC1 | Ethernet0/0/1 | 172.16.1.1 | 255.255.255.0 | 172.16.1.254 |
PC2 | Ethernet0/0/1 | 172.17.1.2 | 255.255.255.0 | 172.17.1.254 |
PC3 | Ethernet0/0/1 | 172.17.1.3 | 255.255.255.0 | 172.17.1.254 |
server | Ethernet0/0/0 | 172.16.1.3 | 255.255.255.0 | 172.16.1.254 |
实验拓扑
实验步骤
1.基本配置
根据实验编址进行相应IP地址配置,并检测各直连链路的连通性。
2.配置静态NAT
公司在网关路由器R1上配置访问外网的默认路由
[R1]ip route-static 0.0.0.0 0.0.0.0 202.169.10.2
由于内网使用的都是私有IP地址,员工无法直接访问公网。现需要在网关路由器R1上配置NAT地址转换,将私网地址转换为公网地址。
PC1为公司客户经理使用的终端,不仅需要自身能访问外网,还需要外网用户也能够直接访问他,因此网络管理员分配了一个公网IP地址202.169.10.5给PC1做静态NAT转换。
在R1的G0/0/0接口下使用 nat static 命令配置内部地址到外部地址的一对一转换。
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]nat static global 202.169.10.5 inside 172.16.1.1
配置完成后,在R1上查看NAT静态配置信息,并在PC1上使用ping命令测试与外网的连通性。
<R1>dis nat static
Static Nat Information:
Interface : GigabitEthernet0/0/0
Global IP/Port : 202.169.10.5/----
Inside IP/Port : 172.16.1.1/----
Protocol : ----
......
PC>ping 202.169.10.2
Ping 202.169.10.2: 32 data bytes, Press Ctrl_C to break
From 202.169.10.2: bytes=32 seq=1 ttl=254 time=94 ms
From 202.169.10.2: bytes=32 seq=2 ttl=254 time=31 ms
From 202.169.10.2: bytes=32 seq=3 ttl=254 time=32 ms
From 202.169.10.2: bytes=32 seq=4 ttl=254 time=47 ms
From 202.169.10.2: bytes=32 seq=5 ttl=254 time=31 ms
可以观察到,PC1通过静态NAT地址转换已经可以成功访问外网。在路由器R1的G0/0/接口上抓包查看地址转换是否成功。
可以观察到R1已经成功把来自PC1的ICMP报文的源地址172.16.1.1转换为公网地址202.169.10.5.在R2上使用环回口Loopback 0 模拟外网用户访问PC1,并在PC1的Ethernet0/0/1接口上抓包观察。
<R2>ping -a 202.169.20.1 202.169.10.5
PING 202.169.10.5: 56 data bytes, press CTRL_C to break
Reply from 202.169.10.5: bytes=56 Sequence=2 ttl=127 time=70 ms
Reply from 202.169.10.5: bytes=56 Sequence=3 ttl=127 time=60 ms
Reply from 202.169.10.5: bytes=56 Sequence=4 ttl=127 time=50 ms
Reply from 202.169.10.5: bytes=56 Sequence=5 ttl=127 time=60 ms
可以看到由于PC1的私网地址被转换成唯一的公网地址,外网用户也能通过转换的这个公网地址主动访问PC1,且数据包在经过R1进入内网的时候,R1把目的IP地址转换为与公网IP地址202.169.10.5相对应的私网地址172.16.1.1发个PC1。
3.配置NAT Outbound
公司内市场部的员工需要能够访问外网。市场部使用私网IP地址172.17.1.0/24 网段,网络管理员使用公网地址池202.169.10.50~202.169.10.60为市场部员工做NAT转换。
在R1上使用 nat address-group 命令配置NAT地址池,设置起始和借结束地址分别为202.169.10.50和202.169.10.60。
[R1]nat address-group 1 202.169.10.50 202.169.10.60
创建基本ACL2000,允许172.17.1.0/24网段通过。
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 172.17.1.0 0.0.0.255
在R1的G0/0/0接口下使用 nat outbound 命令将ACL2000与地址池相关联,使得ACL中规定的地址可以使用地址池内地址进行地址转换,实现访问公网的目的。
[R1-acl-basic-2000]int g0/0/0
[R1-GigabitEthernet0/0/0]nat outbound 2000 address-group 1 no-pat
配置完成后,在R1上查看 NAT Outbound 信息。
<R1>dis nat outbound
NAT Outbound Information:
--------------------------------------------------------------------------
Interface Acl Address-group/IP/Interface Type
--------------------------------------------------------------------------
GigabitEthernet0/0/0 2000 1 no-pat
--------------------------------------------------------------------------
Total : 1
可以看到R1上NAT Outbound配置信息。使用PC2测试与外网的连通性,并在R1的G0/0/0接口上抓包查看。
PC>ping 202.169.10.2
Ping 202.169.10.2: 32 data bytes, Press Ctrl_C to break
From 202.169.10.2: bytes=32 seq=1 ttl=254 time=62 ms
From 202.169.10.2: bytes=32 seq=2 ttl=254 time=63 ms
From 202.169.10.2: bytes=32 seq=3 ttl=254 time=62 ms
From 202.169.10.2: bytes=32 seq=4 ttl=254 time=94 ms
From 202.169.10.2: bytes=32 seq=5 ttl=254 time=62 ms
可以观察到PC2可以成功访问外网,且通过抓包分析,来自PC2的ICMP数据包在R1的G0/0/0接口上源地址172.17.1.2被替换为地址池中的地址202.169.10.54。
4.配置 NAT Easy-IP
由于公司发展人员扩招,若继续使用多对多的NAT转发方式,就必须增加公网地址池的地址数。为了节约公网地址,网络管理员使用多对一的Easy-IP转换方式实现市场部员工访问外网的需求。
Easy-IP是NAPT的一种方式,直接借用路由器出接口IP地址作为公网地址,将不同的内部地址映射到同一公网地址的不同端口号上,实现多对一地址转换。网络管理员配置路由器R1的G0/0/0接口为Easy-IP接口。
在R1的G0/0/0接口上删除 NAT Outbound 配置,并使用 nat outbound 命令配置Easy-IP特性(关联ACL2000),直接使用接口IP地址作为NAT转换后的地址。
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]undo nat outbound 2000 address-group 1 no-pat [R1-GigabitEthernet0/0/0]nat outbound 2000
配置完成后,在PC2和PC3上使用UDP发包工具发送UDP报文到公网地址202.169.20.1,配置好目的IP和UDP源、目的端口号后,输入字符串数据后单击“发送”按钮。
在PC2和PC3发送UDP数据包后,在R1上查看NAT session的详细信息。
<R1>dis nat session protocol udp verbose
NAT Session Table Information:
Protocol : UDP(17)
SrcAddr Port Vpn : 172.17.1.2 2560
DestAddr Port Vpn : 202.169.20.1 2560
Time To Live : 120 s
NAT-Info
New SrcAddr : 202.169.10.1
New SrcPort : 10241
New DestAddr : ----
New DestPort : ----
Protocol : UDP(17)
SrcAddr Port Vpn : 172.17.1.3 2560
DestAddr Port Vpn : 202.169.20.1 2560
Time To Live : 120 s
NAT-Info
New SrcAddr : 202.169.10.1
New SrcPort : 10240
New DestAddr : ----
New DestPort : ----
Total : 2
可以观察到,源地址为172.17.1.2的UDP数据包被新源地址202.169.10.1和新源端口号10241替换,源地址为172.17.1.3的UDP数据包被新源地址202.169.10.1和新源端口号10240替换。R1借用自身G0/0/0接口的公网IP地址为所有私网地址做NAT转换,使用不同端口号区分不同私网数据。此方式不用创建地址池,大大节省了地址空间。
5.配置 NAT Server
公司内Server提供FTP服务供外网用户访问,配置NAT Server并使用公网IP地址 202.169.10.6 对外公布服务器地址,然后开启 NAT ALG功能。因为对于封装在IP数据报文中的应用层协议报文,正常的NAT转换会导致错误,在开启某应用协议的 NAT ALG功能后,该应用协议报文可以正常进行NAT转换,否则该应用协议不能正常工作。
在R1的G0/0/0接口上,使用 nat server 命令定义内部服务器的映射表,指定服务器通信协议类型为 TCP,配置服务器使用的公网IP地址为202.169.10.6,服务器内网地址为172.16.1.3,指定端口号为 21,该常用端口号可以直接使用关键字 “ftp” 代替。
[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]nat server protocol tcp global 202.169.10.6 ftp inside 172.16.1.3 ftp [R1-GigabitEthernet0/0/0]quit
[R1]nat alg ftp enable
配置完成后,在R1上查看NAT Server信息。
[R1]dis nat server
Nat Server Information:
Interface : GigabitEthernet0/0/0
Global IP/Port : 202.169.10.6/21(ftp)
Inside IP/Port : 172.16.1.3/21(ftp)
Protocol : 6(tcp)
VPN instance-name : ----
Acl number : ----
Description : ----
Total : 1
可以看到,配置已经生效,并开启服务器的FTP功能。
设置完服务器后,在R2上模拟公网用户访问该私网服务器。
可以看到,公网用户可以成功登录公司内的私网FTP服务器。