分享
 
 
 

Cisco IOS Cookbook 中文精简版第二十一章 NAT

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

21.1. 配置基本NAT功能

提问 在路由器上启用基本的NAT功能

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#Access-list 15 permit 192.168.0.0 0.0.255.255

Router(config)#ip nat inside source list 15 interface FastEthernet0/0 overload

Router(config)#interface FastEthernet0/2

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface Ethernet0/0

Router(config-if)#ip address 172.16.1.5 255.255.255.252

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 例子中的配置实现了对地址段192.168.0.0/16访问外部网络重写为172.16.1.5的功能,基本的地址翻译功能

21.2. 动态分配外部地址

提问 从某个特定的地址池来动态分配地址

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#access-list 15 permit 192.168.0.0 0.0.255.255

Router(config)#ip nat pool NATPOOL 172.16.1.100 172.16.1.150 netmask 255.255.255.0

Router(config)#ip nat inside source list 15 pool NATPOOL

Router(config)#interface FastEthernet 0/0

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet 0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface Ethernet1/0

Router(config-if)#ip address 172.16.1.2 255.255.255.0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 ip nat inside source list 15 pool NATPOOL 定义了翻译出去的地址池,假如地址池可以地址用完新的翻译将不成功,假如加上了overload参数将会从第一个地址开始翻译进行复用。另外这里的地址池并不一定要和outside端口的地址在同一网段,只要有相应的路由就可以

21.3. 静态分配外部地址

提问 翻译某些特定的内部地址为特定的外部地址

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#ip nat inside source static 192.168.1.15 172.16.1.10

Router(config)#ip nat inside source static 192.168.1.16 172.16.1.11

Router(config)#interface FastEthernet 0/0

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet 0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface Ethernet1/0

Router(config-if)#ip address 172.16.1.2 255.255.255.0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 静态地址翻译

21.4. 地址静态和动态翻译结合

提问 静态和动态地址翻译相结合

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#access-list 15 deny 192.168.1.15 0.0.0.0

Router(config)#access-list 15 deny 192.168.1.16 0.0.0.0

Router(config)#access-list 15 permit 192.168.0.0 0.0.255.255

Router(config)#ip nat inside source static 192.168.1.15 172.16.1.10

Router(config)#ip nat inside source static 192.168.1.16 172.16.1.11

Router(config)#ip nat pool NATPOOL 172.16.1.100 172.16.1.150 netmask 255.255.255.0

Router(config)#ip nat inside source list 15 pool NATPOOL overload

Router(config)#interface FastEthernet0/0

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface Ethernet0/0

Router(config-if)#ip address 172.16.1.2 255.255.255.0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 这里的控制列表把所要静态内部地址排除了,当然这一步也不是必须的,因为静态翻译的优先级要高于动态翻译的,不过静态翻译的外部地址必须要从动态翻译的地址池中排除。

21.5. 使用Route Maps来进行翻译规则控制

提问 使用Route Maps来进行更好的静态地址翻译

回答

Router1#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#interface FastEthernet0/0

Router(config-if)#ip address 172.16.1.5 255.255.255.252

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#interface FastEthernet0/1

Router(config-if)#ip address 172.16.2.5 255.255.255.252

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#interface FastEthernet0/2

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#ip nat inside source route-map ISP-1 interface FastEthernet0/0 overload

Router(config)#ip nat inside source route-map ISP-2 interface FastEthernet0/1 overload

Router(config)#route-map ISP-1 permit 10

Router(config-route-map)#match interface FastEthernet0/0

Router(config-route-map)#exit

Router(config)#route-map ISP-2 permit 10

Router(config-route-map)#match interface FastEthernet0/1

Router(config-route-map)#exit

Router(config)#end

Router#

注释 适用于多个outside端口的情况

21.6. 同时两个方向地址翻译

提问 同时对内部地址和外部地址进行翻译

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#access-list 15 deny 192.168.1.15

Router(config)#access-list 15 permit 192.168.0.0 0.0.255.255

Router(config)#access-list 16 deny 172.16.5.25

Router(config)#access-list 16 permit 172.16.0.0 0.0.255.255

Router(config)#ip nat pool NATPOOL 172.16.1.100 172.16.1.150 netmask 255.255.255.0

Router(config)#ip nat pool INBOUNDNAT 192.168.15.100 192.168.15.200 netmask 255.255.255.0

Router(config)#ip nat inside source list 15 pool NATPOOL overload

Router(config)#ip nat inside source list 16 pool INBOUNDNAT overload

Router(config)#ip nat inside source static 192.168.1.15 172.16.1.10

Router(config)#ip nat outside source static 172.16.5.25 192.168.15.5

Router(config)#ip route 192.168.15.0 255.255.255.0 Ethernet0/0

Router(config)#interface FastEthernet 0/0

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet 0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#interface Ethernet0/0

Router(config-if)#ip address 172.16.1.2 255.255.255.0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 暂无

21.7. 网络前缀重写

提问 简单的改变某个网络段的前缀

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#ip nat outside source static network 172.16.0.0 172.17.0.0 /16 no-alias

Router(config)#ip route 172.16.0.0 255.255.0.0 Ethernet1/0

Router(config)#ip route 172.17.0.0 255.255.0.0 Ethernet1/0

Router(config)#interface FastEthernet 0/0

Router(config-if)#ip address 10.1.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface Ethernet1/0

Router(config-if)#ip address 172.16.1.6 255.255.255.252

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#end

Router#

注释 适用于两个网络互访而地址段冲突的情况

21.8. 使用NAT来进行服务器负荷分担

提问 多个服务器使用同一IP地址从而实现应用的负荷分担

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#interface FastEthernet0/0

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#interface FastEthernet0/1

Router(config-if)#ip address 192.168.2.1 255.255.255.0

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#ip nat pool WEBSERVERS 192.168.1.101 192.168.1.105 netmask 255.255.255.0 type rotary

Router(config)#access-list 20 permit host 192.168.1.100

Router(config)#ip nat inside destination list 20 pool WEBSERVERS

Router(config)#end

Router#

注释 这里不同点在于使用了rotary的参数和使用了destination而不是source在翻译规则中,当然这种是穷人的负载均衡解决方案

21.9. 基于状态的NAT切换

提问 在高可用性网络中部署NAT,这样一台设备坏掉的情况下另一台可以切换起到NAT作用

回答

RouterA

Router-A#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router-A(config)#access-list 11 permit any

Router-A(config)#ip nat pool NATPOOL 172.17.100.100 172.17.100.150 netmask 255.255.255.0

Router-A(config)#ip nat inside source list 11 pool NATPOOL mapping-id 1

Router-A(config)#interface FastEthernet0/0

Router-A(config-if)#ip address 192.168.1.3 255.255.255.0

Router-A(config-if)#ip nat inside

Router-A(config-if)#standby 1 ip 192.168.1.1

Router-A(config-if)#standby 1 preempt

Router-A(config-if)#standby 1 name SNATGROUP

Router-A(config-if)#exit

Router-A(config)#interface Serial0/0

Router-A(config-if)#ip address 172.17.55.2 255.255.255.252

Router-A(config-if)#ip nat outside

Router-A(config-if)#exit

Router-A(config)#ip nat Stateful id 1

Router-A(config-ipnat-snat)#redundancy SNATGROUP

Router(config-ipnat-snat-red)#mapping-id 1

Router(config-ipnat-snat-red)#exit

Router-A(config)#end

Router-A#

RouterB

Router-B#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router-B(config)#access-list 11 permit any

Router-B(config)#ip nat pool NATPOOL 172.17.100.100 172.17.100.150 netmask 255.255.255.0

Router-B(config)#ip nat inside source list 11 pool NATPOOL mapping-id 1

Router-B(config)#interface FastEthernet0/0

Router-B(config-if)#ip address 192.168.1.2 255.255.255.0

Router-B(config-if)#ip nat inside

Router-B(config-if)#standby 1 ip 192.168.1.1

Router-B(config-if)#standby 1 priority 90

Router-B(config-if)#standby 1 preempt

Router-B(config-if)#standby 1 name SNATGROUP

Router-B(config-if)#exit

Router-B(config)#interface Serial0/0

Router-B(config-if)#ip address 172.17.55.6 255.255.255.252

Router-B(config-if)#ip nat outside

Router-B(config-if)#exit

Router-B(config)#ip nat Stateful id 1

Router-B(config-ipnat-snat)#redundancy SNATGROUP

Router(config-ipnat-snat-red)#mapping-id 1

Router(config-ipnat-snat-red)#exit

Router-B(config)#end

Router-B#

注释 虽然说通过使用HSRP可以解决可用性的问题,但是不能同步NAT翻译表,从12.2(13)T以后思科引入了基于状态的NAT(SNAT),这样可以保持两台设备的翻译表同步,其要害命令为ip nat Stateful 要注重的是这里的Stateful是大写开头的,这里是区分大小写的。另外SNAT只和HSRP连用,不能跟VRRP或者GLBP一起作用。同时也可以使用多组HSRP的形式来保持负载均衡。

21.10. 调整NAT 时长

提问 调整NAT翻译表中条目的时长

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#ip nat translation tcp-timeout 500

Router(config)#ip nat translation udp-timeout 30

Router(config)#ip nat translation dns-timeout 30

Router(config)#ip nat translation icmp-timeout 30

Router(config)#ip nat translation finrst-timeout 30

Router(config)#ip nat translation syn-timeout 30

Router(config)#end

Router#

也可以限制翻译表的最大条目数

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#ip nat translation max-entries 1000

Router(config)#end

Router#

注释 缺省TCP为24小时,UDP为5分钟,DNS为1分钟

21.11. 修改FTP的TCP端口

提问 FTP服务器使用非正常端口

回答

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#access-list 19 permit 192.168.55.5

Router(config)#ip nat service list 19 ftp tcp port 8021

Router(config)#ip nat service list 19 ftp tcp port 21

Router(config)#end

Router#

注释 在12.2(4)T后思科引入了no-payload要害词来防止对数据包载荷的地址信息进行修改

Router#configure terminal

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#interface FastEthernet0/0

Router(config-if)#ip address 172.16.1.5 255.255.255.252

Router(config-if)#ip nat outside

Router(config-if)#exit

Router(config)#interface FastEthernet0/1

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#ip nat inside source static 192.168.1.10 172.16.1.5 no-payload

Router(config)#end

Router#

21.12. 检查NAT状态

提问 查看当前NAT信息

回答

Router#show ip nat translation

Router#clear ip nat translation *

Router#clear ip nat translation inside 172.18.3.2

Router#clear ip nat translation outside 192.168.1.10

Router#show ip nat statistics

Router#clear ip nat statistics

注释 Router#show ip nat translation

Pro Inside global Inside local Outside local Outside global

"Inside global" 为内部设备翻译的地址"Inside local"为内部设备的真实地址"Outside local" 为外部设备翻译的地址"Outside global" 为外部设备的真实地址,global addresses在outside, local addresses 在 inside.

<!--[if !supportLists]-->21.13. <!--[endif]-->NAT排错

提问 对NAT进行排错

回答

Router#debug ip nat

Router#debug ip nat detailed

Router#debug ip nat 15

Router#debug ip nat 15 detailed

注释 无

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有