1. R1和R2之间的网络属于企业内部网络,使用私网IPv4地址。
2. R1模拟客户端,R2作为R1的网关,同时也是连接公网的出口路由器。
3. R3模拟公网。
网络地址转换NAT(Network Address Translation)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。作为减缓IP地址枯竭的一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,可以在一定程度上缓解IP地址空间枯竭的压力。NAT除了解决IP地址短缺的问题,还带来了两个好处:
? 有效避免来自外网的攻击,可以很大程度上提高网络安全性。
? 控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网不能互通的问题。
1. 配置动态NAT
2. 配置Easy IP
3. 配置NAT Server
步骤 1 设备基础配置
# 完成路由器的命名、物理接口的IP地址配置
R1:GE0/0/0:192.168.1.1/24
R2:GE0/0/0:192.168.1.254/24,GE0/0/1:1.2.3.4/24
R3:GE0/0/0:1.2.3.254/24
步骤 2 基本配置
# 接口IP地址和路由配置
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]ip route-static 0.0.0.0 0 192.168.1.254
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.1.254 24
[R2-GigabitEthernet0/0/0]quit
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 1.2.3.4 24
[R2-GigabitEthernet0/0/1]quit
[R2]ip route-static 0.0.0.0 0 1.2.3.254
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0]ip address 1.2.3.254 24
# 配置R1和R3的telnet功能(用于后续实验验证)
[R1]user-interface vty 0 4
[R1-ui-vty0-4]authentication-mode aaa
[R1-ui-vty0-4]quit
[R1]aaa
[R1-aaa]local-user test password irreversible-cipher Huawei@123
Info: Add a new user.
[R1-aaa]local-user test service-type telnet
[R1-aaa]local-user test privilege level 15
[R3]user-interface vty 0 4
[R3-ui-vty0-4]authentication-mode aaa
[R3-ui-vty0-4]quit
[R3]aaa
[R3-aaa]local-user test password irreversible-cipher Huawei@123
Info: Add a new user.
[R3-aaa]local-user test service-type telnet
[R3-aaa]local-user test privilege level 15
[R3-aaa]quit
# 测试当前联通性
[R1]ping 1.2.3.254
PING 1.2.3.254: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 1.2.3.254 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
[R2]ping 1.2.3.254
PING 1.2.3.254: 56 data bytes, press CTRL_C to break
Reply from 1.2.3.254: bytes=56 Sequence=1 ttl=255 time=40 ms
Reply from 1.2.3.254: bytes=56 Sequence=2 ttl=255 time=20 ms
Reply from 1.2.3.254: bytes=56 Sequence=3 ttl=255 time=20 ms
Reply from 1.2.3.254: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 1.2.3.254: bytes=56 Sequence=5 ttl=255 time=20 ms
--- 1.2.3.254 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/24/40 ms
因为当前R3没有配置到192.168.1.0/24网段的路由,R1无法访问R3。
实际情况下,R3也禁止配置到私网IP网段的路由。
步骤 3 假设该公司获得了1.2.3.10至1.2.3.20这段公网IP,现需要配置动态NAT
# 配置NAT地址池
[R2]nat address-group 1 1.2.3.10 1.2.3.20
nat address-group命令用来配置NAT地址池。1代表地址池的编号,地址池必须是一段连续的IP地址集合,当内部数据报文通过地址转换到达外部网络时,其源地址将被地址池转换为其他地址。
# 配置ACL
[R2]acl 2000
[R2-acl-basic-2000]rule 5 permit source any
# 在R2的GigabitEthernet0/0/1接口配置动态NAT
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
nat outbound命令用来将一个访问控制列表ACL和一个地址池关联起来,符合ACL中规定的地址可以使用地址池进行地址转换。当地址池中地址的数量足够时,可以添加no-pat参数,表示使用一对一的地址转换,只转换数据报文的地址而不转换端口信息。
# 测试联通性
[R1]ping 1.2.3.254
PING 1.2.3.254: 56 data bytes, press CTRL_C to break
Reply from 1.2.3.254: bytes=56 Sequence=1 ttl=254 time=60 ms
Reply from 1.2.3.254: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 1.2.3.254: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=5 ttl=254 time=20 ms
--- 1.2.3.254 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/32/60 ms
# R1通过telnet远程登录到R3(模拟TCP流量)
Press CTRL_] to quit telnet mode
Trying 1.2.3.254 ...
Connected to 1.2.3.254 ...
Login authentication
Username:test
Password:
# 查看R2上的NAT会话表
[R2]display nat session all
NAT Session Table Information:
Protocol : TCP(6)
SrcAddr Port Vpn : 192.168.1.1 62185 //转换前的源IP地址和源端口
DestAddr Port Vpn : 1.2.3.254 23
NAT-Info
New SrcAddr : 1.2.3.11 //转换后的源IP地址
New SrcPort : 49149 //转换后的源端口
New DestAddr : ----
New DestPort : ----
Total : 1
尽管此时R3没有到R1的路由条目,但是由于转换后的源地址为1.2.3.11,R3会将数据回复给该地址,R2收到后会根据NAT会话表中的数据重新转换为R1的地址并转发。所以此时R1可以主动发起到R3的访问。
步骤 4 假设R2的GigabitEthernet0/0/1的地址不是固定IP地址(DHCP动态获取或PPPoE拨号获取),此时需要配置Easy IP
# 删除上一步骤的配置
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]undo nat outbound 2000 address-group 1
# 配置Easy IP
[R2-GigabitEthernet0/0/1]nat outbound 2000
# 测试联通性
[R1]ping 1.2.3.254
PING 1.2.3.254: 56 data bytes, press CTRL_C to break
Reply from 1.2.3.254: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 1.2.3.254: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 1.2.3.254 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/30/30 ms
# R1通过telnet远程登录到R3(模拟TCP流量)
[R2]display nat session all
NAT Session Table Information:
Protocol : TCP(6)
SrcAddr Port Vpn : 192.168.1.1 58546 //转换前的源IP地址和源端口
DestAddr Port Vpn : 1.2.3.4 23
NAT-Info
New SrcAddr : 1.2.3.4 //转换后的源IP地址,R2的GigabitEthernet 0/0/1的IP地址
New SrcPort : 49089 //转换后的源端口
New DestAddr : ----
New DestPort : ----
Total : 1
步骤 5 假设R3要向公网提供网络服务(用telnet模拟),由于R3没有公网IP地址,故需要在R2的出接口上配置NAT Server
# 在R2上配置NAT Server
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1] nat server protocol tcp global current-interface 2323 inside 192.168.1.1 telnet
nat server命令用来定义一个内部服务器的映射表,外部用户可以通过地址和端口转换来访问内部服务器的某项服务。配置内部服务器可以使外部网络主动访问私网中的服务器。当外部网络向内部服务器的外部地址(global-address)发起连接请求时,NAT将该请求的目的地址替换为私网地址(inside-address)后,转发给私网内的服务器。
# R3通过telnet远程登录到R1
Press CTRL_] to quit telnet mode
Trying 1.2.3.4 ...
Connected to 1.2.3.4 ...
Login authentication
Username:test
Password:
# 查看R2上的NAT会话表
[R2]display nat session all
Protocol : TCP(6)
SrcAddr Port Vpn : 1.2.3.254 61359
DestAddr Port Vpn : 1.2.3.4 2323 //转换前的目的IP地址和目的端口
NAT-Info
New SrcAddr : ----
New SrcPort : ----
New DestAddr : 192.168.1.1 //转换后的目的IP地址,R1的地址
New DestPort : 23 //转换后的目的端口
Total : 1
R1的配置
#
sysname R1
#
aaa
local-user test password irreversible-cipher %^%#y'BJ=em]VY(E%IH!+,f~[(浏览器部落,专业提供软件下载)
local-user test privilege level 3
local-user test service-type telnet
#
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
#
telnet server enable
#
ip route-static 0.0.0.0 0.0.0.0 192.168.1.254
#
user-interface vty 0 4
authentication-mode aaa
#
return
R2的配置
#
sysname R2
#
acl number 2000
rule 5 permit
#
nat address-group 1 1.2.3.10 1.2.3.20
#
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 1.2.3.4 255.255.255.0
nat server protocol tcp global current-interface 2323 inside 192.168.1.1 telnet
nat outbound 2000
#
return
R3的配置
#
sysname R3
#
aaa
local-user test password irreversible-cipher %^%#s<>
local-user test privilege level 15
local-user test service-type telnet
#
interface GigabitEthernet0/0/0
ip address 1.2.3.254 255.255.255.0
#
telnet server enable
#
user-interface vty 0 4
authentication-mode aaa
#
return
……