4.NAT的工作原理: 当内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包的报头,获取该数据包的源IP信息,并从它的NAT映射表中找出与该IP匹配的转换条目,用所选用的内部全局地址(全球唯一的IP地址)来替换内部局部地址,并转发数据包。 当外部网络对内部主机进行应答时,数据包被送到NAT路由器上,路由器接收到目的地址为内部全局地址的数据包后,它将用内部全局地址通过NAT映射表查找出内部局部地址,然后将数据包的目的地址替换成内部局部地址,并将数据包转发到内部主机。 5.NAT配置中的常用命令: ip nat {insideoutside}:接口配置命令。以在至少一个内部和一个外部接口上启用NAT。 ip nat inside source static local-ip global-ip:全局配置命令。在对内部局部地址使用静态地址转换时,用该命令进行地址定义。 access-list access-list-number {permitdeny} local-ip-address:使用该命令为内部网络定义一个标准的IP访问控制列表。 ip nat pool pool-name start-ip end-ip netmask netmask [type rotary]:使用该命令为内部网络定义一个NAT地址池。 ip nat inside source list access-list-number pool pool-name [overload]:使用该命令定义访问控制列表与NAT内部全局地址池之间的映射。 ip nat outside source list access-list-number pool pool-name [overload]:使用该命令定义访问控制列表与NAT外部局部地址池之间的映射。 ip nat inside destination list access-list-number pool pool-name:使用该命令定义访问控制列表与终端NAT地址池之间的映射。 show ip nat translations:显示当前存在的NAT转换信息。 show ip nat statistics:查看NAT的统计信息。 show ip nat translations verbose:显示当前存在的NAT转换的具体信息。 debug ip nat:跟踪NAT操作,显示出每个被转换的数据包。 Clear ip nat translations *:删除NAT映射表中的所有内容.
三.实验设备 Cisco路由器两部,带超级终端的PC机三台,Cisco集线器两台。
四.实验步骤 (一)静态NAT,单向动态NAT和PAT:
1、配置路由器端口的IP地址,并在RouterB和RouterC上配置到202.116.78.0网段的静态路由。 2、在RouterA上分别为RouterB和RouterC配置一条到达内部全局地址的静态路由。完成配置后使用show ip route,show interface,show running-configuration查看路由配置的正确性。 RouterA#config t RouterA(config)#ip route 202.116.65.0 255.255.255.0 202.116.64.1 RouterA(config)#ip route 202.116.67.0 255.255.255.0 202.116.66.1 3、在RouterA的f0端口配置ACL过滤掉所有私有地址。 (1)静态NAT: 以RouterB为例 RouterB#config t RouterB(config)# ip nat inside source static 10.0.1.2 202.116.65.1 RouterB(config)#int f0 RouterB(config-if)#ip nat inside RouterB(config-if)#int s0 RouterB(config-if)#ip nat outside 查看静态NAT的配置: RouterB#show ip nat translations RouterB#show ip nat statistics RouterB#show ip nat translations verbose RouterB#debug ip nat 检验静态NAT: 在Host_1上ping 202.116.65.1是否成功? 在Host_3上ping Host_1是否成功? 现在再由Host_1 ping 202.116.65.1是否成功? 为什么? (2)动态NAT(先删除静态NAT的配置): 以RouterB为例NAT RouterB#config t RouterB(config)# ip nat pool CISCO 202.116.65.1 202.116.65.254 netmask 255.255.255.0 RouterB(config)# access-list 1 permit 10.0.1.2 0.0.0.255 RouterB(config)#ip nat inside source list 1 pool CISCO RouterB(config)#int f0 RouterB(config-if)#ip nat inside RouterB(config-if)#int s0 RouterB(config-if)#ip nat outside 用(1)中的命令查看动态NAT的配置。 检验动态NAT。 (3)PAT(删除所有NAT配置,保留ACL的配置): 以RouterB为例 RouterB(config)#int loop0 RouterB(config-if)#ip address 202.116.65.1 255.255.255.0 RouterB(config-if)#no shut RouterB(config)#ip nat inside source list 1 interface loop0 overload