NAT------网络地址转换

折月煮酒 提交于 2019-11-26 10:58:46

1.NAT常用情形:
1)没有足够的公网IP地址连接到Internet网络之上;
2)合并两个使用重复地址空间的内部网络;
3)使用单个IP地址支持基本的负载分担;
4)把个别IP地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备;

2. NAT网络地址转换的缺点:
1)NAT引起数据交互延时;
2)NAT导致无法进行端到端的IP跟踪,端到端应用失效(例如数字签名);
3)某些应用程序不支持NAT(例如IP组播,路由更新,DNS迁移);
4)NAT需要额外消耗CPU和内存;
5)NAT支持IP分段,但是不支持TCP分段;

3.NAT的部署(静态NAT、动态NAT):
静态NAT(一对一的地址转换);
动态NAT(多对一的地址转换PAT或多对多的地址转换);
部署环境如图所示:
在这里插入图片描述
如图R1、R2、R3构成了私网环境R3为边界并且R3、R4、R5模拟公网环境,拓扑具体的IPV4地址规划如下:
R1的 Loopback0的IPV4地址1.1.1.1/32;
R1的fastEthernet0/0的IPV4地址192.168.1.1/24;
R2的 Loopback0的IPV4地址2.2.2.2/32;
R2的fastEthernet0/0的IPV4地址192.168.1.2/24;
R3的 Loopback0的IPV4地址3.3.3.3/32;
R3的fastEthernet0/0的IPV4地址192.168.1.3/24;
R3的serial1/1的IPV4地址34.1.1.3/24;
R3的serial1/0的IPV4地址35.1.1.3/24;
R4的serial1/1的IPV4地址34.1.1.4/24;
R5的serial1/0的IPV4地址35.1.1.5/24;
1)静态NAT的应用,在边界R3上做静态NAT使内网R1可以访问公网R4的物理口地址:

R3(config)#ip nat inside source static 192.168.1.1 34.1.1.3     //注意内部私有地址与转换后公有地址的顺序                               
R3(config)#inter fastEthernet 0/0                               //注意启动NAT后,一定要定义边界路由器的接口上定义区域
R3(config-if)#ip nat inside                                     //定义内网区域
R3(config-if)#exit 
R3(config)#inter serial 1/1
R3(config-if)#ip nat outside                                    //定义外网区域
R3(config-if)#exit

测试:

R1#ping 34.1.1.4

在这里插入图片描述
通过命令 R3#show ip nat translations来查看转换后的映射关系:
在这里插入图片描述
*应用环境:内网中有需要外网访问的某些服务。
2)动态NAT
PAT,端口NAT,多对一的部署,通过端口号复用技术,个别厂商也称为超载。正常情况下只会使用1024以后的端口号,但是实验环境中使用ping测试时,会用到1024以下的端口号(实际上使用的是ICMP报文中的一个 identifier (BE)字段);在PAT中针对TCP或UDP存在端口号的报文,使用随机存在的高位端口进行标识,但若是出现多个不同私有IP地址访问外网时的随机高位端口号相同,则第一个生成的NAT转换映射使用该随机高位端口号,下一个使用附近的高位端口号。

R3(config)#access-list 1 permit 192.168.1.0 0.0.0.255                //利用访问控制列表ACL抓取需要转换的内网地址段   
R3(config)#ip nat inside source list 1 interface serial 1/1 overload //将内网源为ACL 1的地址转换为 serial 1/1口的IP地址,通过端口号区分不通内网设备

利用R1、R2设备进行测试,在R3上通过R3#show ip nat translations命令查看转换后的关系表:
在这里插入图片描述
多对多的地址转换(公网地址数量略少于内网用户数量时使用):

R3(config)#access-list 1 permit 192.168.1.0 0.0.0.255                //利用访问控制列表ACL抓取需要转换的内网地址段   
R3(config)#ip nat pool ccie 34.1.1.3 34.1.1.10 netmask 255.255.255.0
     R3(config)#inter fastEthernet 0/0                               //注意启动NAT后,一定要定义边界路由器各接口所处的区域
R3(config-if)#ip nat inside 
R3(config-if)#exit 
R3(config)#inter serial 1/1
R3(config-if)#ip nat outside 
R3(config-if)#exit
R3(config)#ip nat pool ccie 34.1.1.2 34.1.1.3 netmask 255.255.255.0 //定义地址转换池
R3(config)#ip nat inside source list 1 pool ccie                    //先到达的几个内网IP地址与地址池中的公网地址形成一对一的静态对应关系

测试:

R1#ping 34.1.1.4

在这里插入图片描述
R2#ping 34.1.1.4
在这里插入图片描述
利用R1、R2设备进行测试,在R3上通过R3#show ip nat translations命令查看转换后的关系表:
在这里插入图片描述
3)NAT的端口映射关系:
首先在内网R1上开启远程登录功能

R1(config)#username ccie privilege 15 password ccie   //定义登录的用户名及密码
R1(config)#line vty 0 4                               //开启R1的远程登录功能
R1(config-line)#login local 
R1(config-line)#exit 

内网边界R3上做端口静态映射:

R3(config)#ip nat inside source static tcp 192.168.1.1 23 34.1.1.3 23     //将34.1.1.3的23号端口映射为192.168.1.1的23号端口

测试:
R4上远程登录R3,看是否可以映射登录到R1上:
R4#telnet 34.1.1.3
在这里插入图片描述
R3上通过R3#show ip nat translations命令查看转换后的关系表:
在这里插入图片描述
总结:对于NAT的应用,我认为我们应该根据具体的场景来选择具体的方案也可结合起来使用(时刻要记着,内网去外网是先查路由表,再进行NAT转换同时会形成转换表,而外网访问内网是要先利用转换表进行转换再查看路由表进行转发的,所以使用NAT的适合你得考虑转换表是否存在),对于PAT以及NAT的端口映射我们应多多练习,一定要掌握它。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!