实验目的是对NAT的应用,关于NAT的应用有如:(1)内部网络通过一个或者几个公网IP上网(2)外部网络访问虚拟的服务器地址,上面的实验就是讲这部分内容 (3)当网络合并时,两个内部网络都是私有地址或者是相册的地址的私有网络时,也要用到NAT。
一。拓朴介绍
通过R3访问R1上的V-server:1.1.1.127虚拟服务器地址,对应真实的服务器地址为:1.1.1.1 1.1.1.2 1.1.1.3
二。基本配置:
R1:
int s1/0
ip add 12.1.1.1 255.255.255.0
lo 0
int s1/0
ip add 12.1.1.1 255.255.255.0
lo 0
ip add 1.1.1.1 255.255.255.0
ip add 1.1.1.2 255.255.255.0 se
ip add 1.1.1.3 255.255.255.0 se
ho R1
router ospf 1
router-id 1.1.1.1
net 1.1.1.0 255.255.255.0 a 0
net 12.1.1.0 255.255.255.0 a 0
ho R1
router ospf 1
router-id 1.1.1.1
net 1.1.1.0 255.255.255.0 a 0
net 12.1.1.0 255.255.255.0 a 0
R2
int s1/0
ip add 12.1.1.2 255.255.255.0
ip add 12.1.1.2 255.255.255.0
ip nat in
int s1/1
ip add 23.1.1.2 255.255.255.0
int s1/1
ip add 23.1.1.2 255.255.255.0
ip nat out
ho R2
router ospf 1
router-id 2.2.2.2
net 2.2.2.0 255.255.255.0 a 0
net 12.1.1.0 255.255.255.0 a 0
net 23.1.1.0 255.255.255.0 a 0
ho R2
router ospf 1
router-id 2.2.2.2
net 2.2.2.0 255.255.255.0 a 0
net 12.1.1.0 255.255.255.0 a 0
net 23.1.1.0 255.255.255.0 a 0
ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type rotary
ip nat inside destination list 1 pool toser
access-list 1 permit 1.1.1.127
ip nat inside destination list 1 pool toser
access-list 1 permit 1.1.1.127
//分析:因为从R3登陆过来的请求时:目的IP :1.1.1.127 源IP为:23.1.1.3,所以我们要把对目的IP进行转换,即用到ip nat inside desstination
R3
int s1/0
ip add 23.1.1.3 255.255.255.0
ho R3
router ospf 1
router-id 3.3.3.3
net 3.3.3.0 255.255.255.0 a 0
net 23.1.1.0 255.255.255.0 a 0
ip add 23.1.1.3 255.255.255.0
ho R3
router ospf 1
router-id 3.3.3.3
net 3.3.3.0 255.255.255.0 a 0
net 23.1.1.0 255.255.255.0 a 0
三。监视和配置测试配置
1。在R2上配置ip nat 时使产生信息
R2(config)#ip nat inside destination list 1 pool toser ?
R2(config)#ip nat inside destination list 1 pool toser
% Pool toser is not a rotary-type pool, unexpected behavior may result.
//我们现在的地址池没有使用type rotary,即轮流分配机制,可能会发生问题
*Jun 20 00:26:54.191: ipnat_add_dynamic_cfg_common: id 2, flag 5, range 1
% Pool toser is not a rotary-type pool, unexpected behavior may result.
//我们现在的地址池没有使用type rotary,即轮流分配机制,可能会发生问题
*Jun 20 00:26:54.191: ipnat_add_dynamic_cfg_common: id 2, flag 5, range 1
//从上面可以看出,我们采用动态NAT分配
*Jun 20 00:26:54.191: id 2, flags 0, domain 0, lookup 1, aclnum 1, aclname 1, mapname idb 0x00000000
*Jun 20 00:26:54.191: id 2, flags 0, domain 0, lookup 1, aclnum 1, aclname 1, mapname idb 0x00000000
//ID 2 我们使用到了ACLnum 1 aclname 1 没有route-map.
*Jun 20 00:26:54.195: poolstart 1.1.1.1 poolend 1.1.1.3
*Jun 20 00:26:54.195: poolstart 1.1.1.1 poolend 1.1.1.3
//地址池从1.1.1.1 ----1.1.1.3
R2(config)#ip nat inside destination list 1 pool toser ?
R2(config)#
R2(config)#ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 ?
type Specify the pool type
<cr>
R2(config)#ip nat inside destination list 1 pool toser ?
R2(config)#
R2(config)#ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 ?
type Specify the pool type
<cr>
R2(config)#ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type ?
match-host Keep host numbers the same after translation
rotary Rotary address pool
match-host Keep host numbers the same after translation
rotary Rotary address pool
//存在两种方式,一种是基于Host 二种是采用轮流机制
R2(config)#$ toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type rotary
R2(config)#
*Jun 20 00:28:24.235: ipnat_addrpool_notify_api: id 2, flags 11, range 0
*Jun 20 00:28:24.235: ipnat_addrpool_notify_api: id 2, flags 11, range 1
R2(config)#$ toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type rotary
R2(config)#
*Jun 20 00:28:24.235: ipnat_addrpool_notify_api: id 2, flags 11, range 0
*Jun 20 00:28:24.235: ipnat_addrpool_notify_api: id 2, flags 11, range 1
2。当R3 多次telnet 1.1.1.127时,R2采用轮流分配
*Jun 20 00:35:14.951: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [0]
*Jun 20 00:35:15.167: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:15.359: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [1]
*Jun 20 00:35:15.359: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [2]
*Jun 20 00:35:15.383: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [3]
*Jun 20 00:35:15.455: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:15.527: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [2]
R2(config)#
*Jun 20 00:35:15.599: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [6]
R2(config)#
*Jun 20 00:35:22.919: NAT: expiring 1.1.1.127 (1.1.1.1) tcp 23 (23)
*Jun 20 00:35:23.111: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [0]
*Jun 20 00:35:23.207: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:23.351: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [1]
*Jun 20 00:35:23.351: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [2]
*Jun 20 00:35:23.423: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [3]
*Jun 20 00:35:23.567: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:23.663: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:23.735: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [4]
*Jun 20 00:35:23.735: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [5]
R2(config)#
*Jun 20 00:35:23.759: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [6]
*Jun 20 00:35:23.855: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [7]
*Jun 20 00:35:24.047: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [3]
R2(config)#
*Jun 20 00:35:25.611: NAT: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [4]
*Jun 20 00:35:25.831: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [8]
*Jun 20 00:35:25.855: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [9]
*Jun 20 00:35:25.903: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [5]
R2(config)#
*Jun 20 00:35:36.231: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [0]
*Jun 20 00:35:36.455: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:36.783: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [1]
*Jun 20 00:35:36.807: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [2]
*Jun 20 00:35:36.831: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [3]
*Jun 20 00:35:36.855: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:36.951: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:36.951: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [4]
*Jun 20 00:35:36.955: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [5]
*Jun 20 00:35:36.955: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [6]
*Jun 20 00:35:44.695: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [0]
*Jun 20 00:35:44.887: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:44.983: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [1]
*Jun 20 00:35:44.983: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [2]
*Jun 20 00:35:45.055: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [3]
*Jun 20 00:35:45.127: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:45.179: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:45.319: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [4]
*Jun 20 00:35:45.319: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [5]
*Jun 20 00:35:45.323: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [6]
*Jun 20 00:35:14.951: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [0]
*Jun 20 00:35:15.167: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:15.359: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [1]
*Jun 20 00:35:15.359: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [2]
*Jun 20 00:35:15.383: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [3]
*Jun 20 00:35:15.455: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:15.527: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [2]
R2(config)#
*Jun 20 00:35:15.599: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [6]
R2(config)#
*Jun 20 00:35:22.919: NAT: expiring 1.1.1.127 (1.1.1.1) tcp 23 (23)
*Jun 20 00:35:23.111: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [0]
*Jun 20 00:35:23.207: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:23.351: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [1]
*Jun 20 00:35:23.351: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [2]
*Jun 20 00:35:23.423: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [3]
*Jun 20 00:35:23.567: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:23.663: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:23.735: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [4]
*Jun 20 00:35:23.735: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [5]
R2(config)#
*Jun 20 00:35:23.759: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [6]
*Jun 20 00:35:23.855: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [7]
*Jun 20 00:35:24.047: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [3]
R2(config)#
*Jun 20 00:35:25.611: NAT: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [4]
*Jun 20 00:35:25.831: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [8]
*Jun 20 00:35:25.855: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.3 [9]
*Jun 20 00:35:25.903: NAT*: s=1.1.1.3->1.1.1.127, d=23.1.1.3 [5]
R2(config)#
*Jun 20 00:35:36.231: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [0]
*Jun 20 00:35:36.455: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:36.783: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [1]
*Jun 20 00:35:36.807: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [2]
*Jun 20 00:35:36.831: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [3]
*Jun 20 00:35:36.855: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:36.951: NAT*: s=1.1.1.1->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:36.951: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [4]
*Jun 20 00:35:36.955: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [5]
*Jun 20 00:35:36.955: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.1 [6]
*Jun 20 00:35:44.695: NAT: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [0]
*Jun 20 00:35:44.887: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [0]
*Jun 20 00:35:44.983: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [1]
*Jun 20 00:35:44.983: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [2]
*Jun 20 00:35:45.055: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [3]
*Jun 20 00:35:45.127: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [1]
*Jun 20 00:35:45.179: NAT*: s=1.1.1.2->1.1.1.127, d=23.1.1.3 [2]
*Jun 20 00:35:45.319: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [4]
*Jun 20 00:35:45.319: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [5]
*Jun 20 00:35:45.323: NAT*: s=23.1.1.3, d=1.1.1.127->1.1.1.2 [6]
//从红色的显示部分可以看出,内部的地址采用轮流分配的原则
//主要是ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type rotary命令中的type rotary 的作用
//主要是ip nat pool toser 1.1.1.1 1.1.1.3 netmask 255.255.255.0 type rotary命令中的type rotary 的作用
3。在R3 telnet 1.1.1.127时,R2上的NAT 映射表
R3#telnet 1.1.1.127
Trying 1.1.1.127 ... Open
Password required, but none set
Trying 1.1.1.127 ... Open
Password required, but none set
[Connection to 1.1.1.127 closed by foreign host]
查看R2上的NAT 转换
R2(config)#do sh ip nat tr
Pro Inside global Inside local Outside local Outside global
tcp 1.1.1.127:23 1.1.1.3:23 23.1.1.3:18003 23.1.1.3:18003
Pro Inside global Inside local Outside local Outside global
tcp 1.1.1.127:23 1.1.1.3:23 23.1.1.3:18003 23.1.1.3:18003
//可以看出是基于TCP的连接
R1(config-if)#
*Jun 20 00:48:29.999: IP: tableid=0, s=23.1.1.3 (Serial1/0), d=1.1.1.2 (Loopback0), routed via RIB
*Jun 20 00:48:30.003: IP: s=23.1.1.3 (Serial1/0), d=1.1.1.2, len 44, rcvd 7
*Jun 20 00:48:30.007: IP: tableid=0, s=1.1.1.2 (local), d=23.1.1.3 (Serial1/0), routed via FIB
*Jun 20 00:48:30.011: IP: s=1.1.1.2 (local), d=23.1.1.3 (Serial1/0), len 44, sending
//基实在R1上看到的,还是外部主机的请求,而外部主机请求即是请求的虚拟的IP地址 1.1.1.127.
出自 51CTO.COM博客
*Jun 20 00:48:29.999: IP: tableid=0, s=23.1.1.3 (Serial1/0), d=1.1.1.2 (Loopback0), routed via RIB
*Jun 20 00:48:30.003: IP: s=23.1.1.3 (Serial1/0), d=1.1.1.2, len 44, rcvd 7
*Jun 20 00:48:30.007: IP: tableid=0, s=1.1.1.2 (local), d=23.1.1.3 (Serial1/0), routed via FIB
*Jun 20 00:48:30.011: IP: s=1.1.1.2 (local), d=23.1.1.3 (Serial1/0), len 44, sending
//基实在R1上看到的,还是外部主机的请求,而外部主机请求即是请求的虚拟的IP地址 1.1.1.127.
转载于:https://blog.51cto.com/lanyue24/30990