APP下载

NAPT技术对数据包分片的处理实验

2017-07-14李佩佩胡曦明

电脑知识与技术 2017年16期
关键词:传输层分片路由

李佩佩+胡曦明

摘要:NAPT(网络端口地址转换)使用传输层标示符来确定一个特定的数据包和私有主机之间的联系。那么对于不含标示符的数据包分片如何处理?在H3 Cloud Lab模拟器上进行仿真实验,对数据包进行分片,探究NAPT对分片的处理过程。实验发现地址转换设备记录并保存了数据包首片的标示符信息,以便对后续分片(不合标示符)的处理。

关键词:网络端口地址转换;分片;传输层;路由;MTU

1概述

局域网内的IP地址大多为私有地址,但私有地址只能在局域网内部网中使用,不能在Internet公网上使用,现行的路由器设置也不转发带有私有地址的数据包。当私有网络内的主机需要与位于Internet公网上的主机进行通讯时需要采用网络地址转换(NAT),将私有地址转换为合法公网地址,对外进行访问。

基本NAT将一组私有地址转换为一组公有地址,但IPv4下的公有地址有限,为了解决公有地址的不足,提高公有地址的利用率,提出了网络地址端口转换(Network Address PortTranslation,NAPT)技术。

2NAPT原理

NAPT基于传统的NAT,使用传输层标示符(TCP和UDP端口、ICMP查询标示符)来确定一个特定的数据包和私有主机之间的关联。当不同私有地址的应用程序采用的标示符信息相同时,进行标示符的改写,并将此记录保存,以便对私有主机正确应答。若不同私有主机的标示符信息不同,则保留其原有标示符信息,即NAPT使用“IP地址+标示符”的形式进行转换。这使得大量的内部主机(即好几千台)能够同时访问互联网,而使用的公有地址数量却很少,通常只需要一个。

3NAPT仿真实验

3.1实验拓扑

在思科模拟器Cisco Packet Tracer 5.3上搭建实验拓扑,如图1。Router0为网络地址转换设备,其左右两个IP地址分别为192.168.0.1和192.168.1.1,Routerl左右兩个IP地址分别为192.168.1.2和192.168.2.1,Server0的IP地址为192.168.2.2

3.2关键技术

搭建好实验拓扑后,进行配置并添加路由,其中网络地址转换设备Router0配置命令如下:

命令中overload关键词表明:虽然在路由器0串口处提供可转换的地址池192.168.1.10-192.168.1.12,但只能使用一个合法公有地址,即采用网络地址端口转换技术实现共享合法IP地址。配置完成后,进行ping命令测试,连通性正常。

3.3实验结果

为了清楚地查看端口转换情况,让私有主机pc0、pcl同时对服务器Server0进行访问,得到如下的网络地址端口转换关系,如图2。

通过以上基础实验,对网络端口地址转换技术进行学习与理解,可以看到当不同主机的tcp端口号在同一时刻相同时,端口号将被替换,由此证明NAPT依靠IP地址和标示符来对内网主机的请求进行正确应答。

3.4实验结论

NAPT使得一组主机可以共享唯一的外部地址,当位于内部网络中的主机通过NAT设备向外部主机发起会话请求时,NAT设备就会查询NAT表,看是否有相关会话记录,如果有相关记录,就会将内部IP地址及端口同时进行转换,再转发出去;如果没有相关记录,进行IP地址和端口转换的同时,还会在NAT表增加一条该会话的记录。外部主机接收到数据包后,用接受到的合法公网地址及端口作为目的IP地址及端口来响应,NAT设备接收到外部回来的数据包,再根据NAT表中的记录把目的地址及端口转换成对应的内部IP地址及端口,转发给该内部主棚.。

4NAPT对分片的处理实验

4.1实验背景

在前面,可以看到NAPT依靠IP地址和tcp/udD端口号对内网主机进行服务,但较大的数据包在传输时往往会被分片,这就导致了非首部分片不含端口号或标示符。那么转换设备在缺少端口号或标示符时如何工作?猜想有两种可能:①先在地址转换设备处重组,再进行转换,最后重新分片转发出去;②在第一个分片到达并转换以后,转换设备记录并保存第一个分片使用的标示符信息,使后续分片能够正常转换。为了查看网络端口地址转换对数据包分片,尤其是对不含标示符的分片的处理方式,展开探究实验。

4.2实验过程

4.2.1实验拓扑

由于Cisco Packet Tracer 5.3无法进行分片,在H3 CloudLab上搭建实验拓扑,如图3。

hostl的IP为192.168.1.2,Host2的IP为192.168.3.2,路由器MSR36-20_l左右两个端口地址为192.168.1.3和192.168.2.1,路由器MSR36-20_2左右两个端口地址为192.168.2.2和192.168.3.1。

4.2.2实验说明

路由器MSR36-20_1为地址转换设备,将192.168.1.2的网络地址重写为192.168.2.10,配置命令略。将路由器MSR36-20_2的左端口的mtu设置为200,使得返回的数据包被分片,以便查看路由器MSR36-20_1对回显应答的数据分片的处理是重组后重新分片还是直接进行转换并转发数据包到相应私有主机。

在hostl命令行输入ping 192.168.3.2-1 1500,可知应答的报文在MSR36-20_2的左端口被分片,分片大小(含数据链路层帧首部14个字节)不超过214个字节。在hostl和MSR36-20_1的路径上使用Wireshark抓包,得到图4。

可以看到MSR36-20_1并没有将数据包分片重组后重新分为1514和62字节,而依旧是MSR36-20_2分片后的状态。分析后得出结论:对于分片的处理,在第一个分片(包含tep pMdp端口号或ICMP标示符)到达以后,地址转换设备记录并保存第一个分片使用的端口号或ICMP标示符信息,以使后续分片能够正常进行网络地址端口转换。对于为什么不重组后再进行地址转换和转发,个人认为原因可能是:①每个分片到达的时间不确定,若要重组,等待时间可能较长,对用户来说,及时性较差,用户体验不好;②若在地址转换设备处重组,则需要较大的存储空间,对转换设备来说,工作量大且负担太重。

5结束语

NAPT技术将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。NAPT普遍用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT使得内网多台私有主机利用1个公有IP就可以同时和公共网络进行通信,对于私有IP上网、解决IP地址不足问题有很大帮助。最重要的是,即使是被分片的数据包,地址转换设备也可以正确进行转发。

猜你喜欢

传输层分片路由
上下分片與詞的時空佈局
分片光滑边值问题的再生核方法
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
CDN存量MP4视频播放优化方法
基于模糊二分查找的帧分片算法设计与实现
探究路由与环路的问题
物联网无线通信传输层动态通道保障机制
PRIME和G3-PLC路由机制对比
WSN中基于等高度路由的源位置隐私保护
eNSP在路由交换课程教学改革中的应用