第四章 网络层协议的测试分析及NAT.docx
- 文档编号:10519270
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:23
- 大小:199.05KB
第四章 网络层协议的测试分析及NAT.docx
《第四章 网络层协议的测试分析及NAT.docx》由会员分享,可在线阅读,更多相关《第四章 网络层协议的测试分析及NAT.docx(23页珍藏版)》请在冰点文库上搜索。
第四章网络层协议的测试分析及NAT
第四章网络层协议的测试分析及NAT
4.1TCP/IP的网络层
TCP/IP协议体系中的网络层常常称为网际层(internetlayer)或IP层,其中最核心的协议是网际协议IP(InternetProtocol)。
IP协议是TCP/IP协议族中的主要网络层协议,与TCP协议结合组成整个因特网协议的核心。
与IP协议配套使用的还有四个协议:
地址解析协议ARP(AddressResolutionProtocol)、反向地址解析协议RARP(ReverseAddressResolutionProtocol)、因特网控制报文协议ICMP(InternetControlMessageProtocol)和因特网组管理协议(InternetGroupManagementProtocol)。
除了ARP和RARP,其它TCP/IP协议族中的协议,包括TCP、UDP、ICMP、IGMP等报文都以IP数据报格式传输。
当前IP协议有两种版本:
IPv4和IPv6,本章实验使用IPv4。
4.1.1网际协议IP
将若干网络互连就成为互联网,使用网络层IP协议,可以把高层的数据以IP数据报的形式通过互联网进行传输。
网际协议IP提供的基本服务有:
●提供无连接、不可靠、“尽力传递”的IP数据报传送。
无连接指IP协议并不在数据传输前先建立连接、并不为后续IP数据报维护任何状态信息,每个数据报的处理都是相互独立的。
不可靠指不保证每个IP数据报都能成功地到达目的地。
IP协议仅提供“尽力传递”的传输服务。
如果发生了某种错误,会丢弃该IP数据报、发送ICMP报文给源端,同时IP协议也不检查数据链路层是否丢弃过报文。
任何可靠性的要求必须由上一层来提供。
●为了克服各网络的数据链路层对帧大小的限制,IP协议提供IP数据报的分片及重组功能,以支持在各网络中由于不同MTU(最大传输单元,为帧中数据字段的最大长度)传输产生的问题,这使得很大的IP数据报能以分片在MTU较小的网络中传输。
网络层提供的最重要服务是在互联网络中进行路由选择。
在网络的中间结点(路由器)上,根据每个IP数据报中的目的IP地址进行路由选择,决定路径中的下一跳怎么走,从而在各个路由器中依次存储、转发,直至传到目的结点。
在发送端,高层协议将数据传给IP层,IP层将数据封装为IP数据报,并交给其下的数据链路层,组成帧后通过物理线路传送。
若目的主机直接连在本网中,可直接通过网络接口将IP数据报传给目的主机;若目的主机在远方网络中即不与源主机直接相连,则向路径中的下一路由器转发IP数据报。
一般来说,路由器中的路由表项主要有两个字段,一个是目的地址字段,另一个是到该目的地址经由的下一个路由器IP,即下一跳IP地址。
IP数据报在路由表中找到匹配项后向下一跳地址转发,被传送到下一个路由器,在下一路由器中重复此过程,又被传送到再下一个路由器,依此方法找路,直至最后传到目的主机。
搜索路由表进行IP寻路的过程如下:
(1)搜索路由表中目的地址字段与IP数据报目的IP地址完全匹配的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;
(2)若
(1)不成功,则搜索路由表中目的地址字段与IP数据报目的网络号相匹配的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;
(3)若
(2)不成功,则搜索路由表中目的地址字段为默认路由(“default”或0.0.0.0mask0.0.0.0sk__________________________________________________________________________________________________________________________)的表项,如果找到,则将IP数据报发给该表项指定的下一个路由器或直接连接的网络接口;;
(4)若以上都不成功,则说明该IP数据报不可投递,通常将一个“主机不可达”或“网络不可达”的ICMP出错报文发送给源结点产生这个IP数据报的应用进程。
4.1.2因特网控制报文协议ICMP
在网络体系结构的相关层次中,需要进行一些控制。
由于IP协议提供的是一种不可靠的、无连接的报文分组传送服务,协议自身没有内在机制来获取并处理差错信息,为了处理这些错误,在网络层加入了一类特殊用途的报文机制,即因特网控制报文协议ICMP。
它是一种差错和控制报文协议,主要完成差错控制与报警及测试等功能。
通常在目的主机接收分组或中继路由器转发分组发现问题后,会产生相应的ICMP报警报文反馈给源主机。
如果一个分组不能传送,ICMP报文便可以被用来警告发送端,说明网络、主机或端口不可达。
ICMP报文也可以用来进行测试,如经常使用的ping命令可以测试网络连通性,就使用了一种回送类型的ICMP报文。
ICMP报文被封装在IP数据报中发送,它在功能上属于网络层。
4.2IP数据报的格式
下面简单介绍IP数据报的格式,如图4.1所示。
IP数据报分为首部和数据部分。
首部的前一部分为固定部分,共20字节,是所有IP数据报必须具有的。
固定部分后是可变部分,为选项,其长度0-40字节可变,但很少用到。
●版本:
IP协议的版本号,现在为IPv4,故此字段值为0100。
●首部长度:
IP数据报头(包含选项部分)以双字(32位)数表示的长度。
一般的IP数据报头只有固定部分,无可变部分,此时其首部长度的双字数为5(即0101)。
图4.1IP数据报的格式
●服务类型(TOS):
包括一个3位的优先权子字段(忽略),4位的TOS子字段和1位未用位(须置0)。
4位的TOS分别代表:
最小延时、最大吞吐量、最高可靠性和最小费用。
4位中只能置其中一位,如4位均为0,则意味着是一般服务。
●总长度:
指整个IP数据报的长度,包括数据部分和首部,以字节为单位。
利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
由于该字段长为16位,所以IP数据报最长可达64KB。
总长度字段是IP首部中必要的内容,因为一些局域网(如以太网)传送帧时,如果帧中数据很少,需要在数据字段填充一些数据以达到帧数据字段的最小长度,如以太网最小帧中,数据字段长度必须达到46字节。
当IP数据很短、用帧封装必须填充凑满46字节时,如果没有该IP数据报总长度字段,那么接收结点的网络层就不知道这46字节中有多少是IP数据报的内容。
●标识:
唯一地标识主机发送的每一个IP数据报。
通常每发送一个IP数据报该值就会加1。
●标志:
由3位字段构成,其中最高位不使用,低两位的DF、MF标志位控制分片。
DF标志位指出数据包是否可进行分片。
MF标志位指出在一系列数据包分片中该IP数据包分片是否是最后的分片。
●片偏移:
13位字段,指出分片后某片数据在原IP数据报的数据字段中的相对位置,以支持目标结点的网络层在接收各分片后重建原IP数据报。
片偏移以8字节为偏移单位。
●生存时间TTL(Time-To-Live):
设置了IP数据报可以经过的最多路由器数目。
它指定了该IP数据报的生存时间。
TTL的初始值由源主机设定,一旦经过一个路由器,它的值就被减1。
当该字段值为0时,路由器就丢弃该IP数据报,并发送ICMP报文通知源主机通知该数据报超时。
●协议:
指出在IP协议处理完成后,其后封装的IP数据报中的数据由哪种上层协议的实体来接收处理,常用的高层协议有:
1=ICMP,2=IGMP,3=TCP,17=UDP。
●首部校验和:
根据IP首部计算的检验和,这里仅对首部、不对后面的数据进行校验,以减少每次在路由器中的计算工作量和计算时间。
IP数据报中数据的校验会在高层协议ICMP、IGMP、UDP、TCP处理时才进行,那时它们在各自的首部字段中均包含有同时覆盖其首部和数据的检验和码。
为了计算IP数据报首部的校验和,首先把校验和字段置0,然后对首部中以16位字为单位进行二进制反码累加,最后结果取反后存放在校验和字段中。
当某结点收到IP数据报后,同样对首部中的每个16位字进行二进制反码求和。
由于接收方在计算过程中包含了发送方放在首部中的校验和,因此如果在传输没发生差错的情况下,接收方计算的校验和结果应为全1,否则认为出错(即校验和错误),丢弃收到的数据报。
此处不生成差错报告报文,差错由之后的上层去发现数据报是否丢失并进行重传。
●源IP地址和目的IP地址:
每一个IP数据报都包含这两个字段。
●选项:
是数据报中一个0~40字节的可变长字段。
目前这些选项定义如下:
⏹安全和处理限制(用于安全领域)
⏹记录路径(让每个路由器都记录下它的IP地址)
⏹时间戳(让每个路由器都记录下它的IP地址和时间)
⏹宽松的源站选路(为数据报指定一系列必须经过的IP地址)
⏹严格的源站选路(与宽松源站选路类似,但要求只能经过这些指定的地址,不能经过其它地址)。
这些选项很少被使用,并非所有的主机和路由处理都支持这些选项。
选项字段以32位的双字作为边界,在必要时必须插入值为0的填充字节,这样才能保证IP首部长度始终是32位双字的整数倍(这是首部长度字段所要求的)。
4.3ICMP数据报格式
ICMP数据报被封装在IP信包中,IP首部位于ICMP数据报之前,如图4.2所示。
此时IP首部的协议字段值为1,说明该IP信包的数据部分是一个ICMP报文。
ICMP数据报的前4个字节的格式是统一的,共有三个字段:
即类型、代码和校验和。
类型字段用于标识ICMP数据报的用途,代码字段用于进一步区分某种类型中的几种不同的情况,校验和字段用来校验整个ICMP报文。
接着的标识符和序列号字段与具体的ICMP报文类型有关,再后面是数据部分,其长度取决于ICMP的类型。
ICMP的类型、代码字段与ICMP数据报类型的对应关系,见表4.1所示。
其中最常用的几种ICMP报文类型有:
3(终点不可达)、11(TTL超时)、8或0(回送请求或回答)。
图4.2ICMP数据报的格式
表4.1类型、代码字段与ICMP数据报类型的对应关系
类型
代码
描述
类型
代码
描述
00
00
EchoReply
04
00
SourceQuench
03
00
NetworkUnreachable
05
00
RedirectdatagramsfortheNetwork
01
HostUnreachable
01
RedirectdatagramsfortheHost
02
ProtocolUnreachable
02
RedirectdatagramsfortheTypeofServiceandNetwork
03
PortUnreachable
03
RedirectdatagramsfortheTypeofServiceandHost
04
FragmentationneededandDF(Don'tFragment)set
08
00
EchoRequest
05
Sourceroutefailed
09
00
RouterAdvertisement
06
DestinationNetworkunknown
10
00
RouterSolicitation
07
DestinationHostunknown
11
00
TTLCountExceeded
08
SourceHostisolated
01
FragmentReassemblyTimeExceeded
09
CommunicationwithDestinationNetworkAdministrativelyProhibited
12
00
ParameterProblem
10
CommunicationwithDestinationHostAdministrativelyProhibited
13
00
TimestampRequest
11
NetworkUnreachableforTypeOfService
14
00
TimestampReply
12
HostUnreachableforTypeOfService
17
00
AddressMaskRequest
13
CommunicationAdministrativelyProhibitedbyFiltering
18
00
AddressMaskReply
14
HostPrecedenceViolation
15
PrecedenceCutoffinEffect
4.4NAT
NAT(NetworkAddressTranslation,网络地址转换)允许一个单位内部网络中的一些使用本地IP地址的主机在和外界通信时,将其本地地址转换成有效的外部全局地址,即以公用IP地址出现在Internet上,它是一种把内部私有网络地址翻译成合法的公用IP地址的技术。
简单的说,NAT就是在内部网络中使用内部IP地址,而当内部结点要与外部世界进行通信时,就在网关(一般为出口路由器)处,将传输的IP数据报的首部中的内部IP地址替换为公用的全局IP地址,从而在外部公网(Internet)上可以正常路由。
NAT可以使内部网络中的多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。
通过这种方法,一个单位可以只申请一个合法的公用IP地址,就把整个内部局域网中的计算机接入Internet。
这时,NAT屏蔽了内部网络,所有内部网上的计算机对于公共网络来说都是不可见的,而内部网计算机用户通常不会意识到NAT的存在,如图4.3所示。
这里的内部地址,是指在内部网络中分配给各结点的私有IP地址,这个地址只能在内部网络中使用,不能在外部互联网上路由。
虽然内部地址可以随意选用,但通常一般使用保留IP地址,其地址范围如下:
10.0.0.0~10.255.255.255,172.16.0.0~172.31.255.255,192.168.0.0~192.168.255.255。
NAT将这些无法在外部互联网上使用的保留IP地址翻译成可以在互联网上使用的全局IP地址。
全局IP地址是合法的IP地址,它由ICANN(因特网名字与号码指派机构)、CNNIC(中国互联网络信息中心)或ISP(网络服务提供商)分配,是全球统一的可寻址的地址。
图4.3NAT
NAT功能通常被集成到路由器、防火墙、网关、代理服务器中或单独做成NAT服务器。
比如Cisco路由器中已经加入这一功能,网络管理员只需使用路由器IOS命令配置NAT功能,就可以在路由器上处理IP信包时实现对IP信包首部中的内部网络IP地址的转换。
又如在防火墙设备中做进NAT功能后,可以将内部网络中的WEBServer地址(如192.168.1.1)映射为外部地址(如202.96.23.11),外部访问202.96.23.11地址实际上就是访问内部网络中的192.168.1.1。
通过软件的方法也可以实现NAT这些功能,如NAT集成在代理服务器软件中。
目前在PC机的Windows2000等OS上也已能实现NAT功能。
NAT有三种类型:
静态NAT、动态地址NAT、网络地址端口转换NAPT。
●静态NAT设置起来最为简单和最容易实现,内部网络中的每个主机IP都在NAT上被永久映射成相应的外部网络上的合法IP地址。
而动态地址NAT则是在NAT的地址池里储存若干外部网络用的合法IP地址,每次当内部网络中的主机要访问外网时,NAT采用动态分配的方法从地址池中取出一个外网合法IP地址映射给内部网络中的主机。
NAPT则是把内部网络中的各个IP地址皆映射为同一个NAPT设备外网侧用的合法的全局IP地址、映射同时并配以不同端口号。
根据不同的需要,三种NAT方案各有利弊。
●静态NAT一般使用于NAT拥有许多外部地址的场合,静态NAT可以为内网中的每个主机IP都永久映射一个相应的外网上的合法IP。
但由于静态NAT采用的是永久的固定映射方法,某种程度上讲不太安全。
●动态地址NAT采用动态映射方法转换IP地址,每当内网中一主机要访问外网时,NAT为该内网主机临时映射分配一个外部IP地址,用户断开时,这个IP地址就会被释放归还给NAT地址池。
对于NAT拥有外部地址不多、且内网用户并不同时访问外网的场合,可以采用动态NAT。
同时,由于同一台内网主机每次访问外网时临时映射分配的外部IP地址一般都不相同,因而具有一定的隐蔽性和安全性。
●网络地址端口转换NAPT(NetworkAddressPortTranslation)是使用最多的一种NAT地址转换方式。
NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。
NAPT与静态、动态地址NAT不同,它将内部的各个IP地址都映射为同一个NAPT设备外网侧IP地址、映射同时并配以不同端口号。
在Internet环境中使用NAPT时,在外部世界看来,所有从该单位内部网向外发出的不同信息流看起来好像都来源于同一个NAPT设备外网侧IP地址,只不过源端口号各不相同。
从外网发回该IP地址相应端口的信包,在NAPT设备上根据信包里不同的目的端口号又可以分流──转换成内网中各个不同的IP私用地址,这使NAPT在中小型企业内使用起来非常实用,单位通过从ISP申请到一个IP地址,可将内部网中许多台使用私用地址的机器向外通过NAPT接入Internet进行访问。
以下以使用最多的NAPT为例,简单介绍NAPT地址翻译处理过程:
每一个连接可以由4个值来描述:
源IP,源端口,目的IP,目的端口。
每当内网中的主机要与外部Internet中某目的机器连接通信时,NAPT设备都要更换传输信包中的IP地址和端口号。
当NAPT设备收到内网主机向外发送的信包时,会首先在自己的NATtable中寻找对应的内网源IP和端口号,如果找不到,就会在NATtable中新建一个记录,记录中包含原来的源IP和端口号,以及新的源IP和端口号,新的源IP即为NAPT设备外网侧的IP地址,新的源端口号则由NAPT分配一个。
具体处理流程为:
✧从内网侧接口接收到内网传来的信包
✧从NATtable中查询此信包的源IP和源端口号
✧如果NATtable有,将信包源IP和源端口号更换后传送出去
✧如果没有,建立一条新记录,并将信包源IP和端口号更换后传送出去
反过来,当NAPT设备收到从外网如Internet传来的信包后,处理流程为:
✧从外网侧接口接收到外网传来的信包
✧从NATtable的新的源IP和端口号栏目中查询此信包的目的IP和端口号
✧如果NATtable有,将信包目的IP和端口号更换后传给其对应的内网IP地址
✧如果没有,此信包则被拒绝进入内部网络
在NATtable中的每一条记录都有其生命期,每当收到内网主机向外连接的请求时,NAT设备都会重置生命期值,一旦生命期完结,NAT就会将此记录从NATtable中删除,这样可以限制该记录长期驻于NATtable中。
生命期的长度依各系统而不同,有的NAT系统是在TCP连接结束时就将其在NATtable中的记录删除,但这不适用于UDP传输时,因为它是无连接方式工作的。
4.5实验四网络层协议的测试分析及NAT
4.5.1实验目的
使用ITS-101协议分析仪,掌握不同网络拓扑结构下IP路由表的配置,学会利用ICMP测试IP数据报的TTL及传送路径,理解、懂得NAT的工作原理。
4.5.2实验准备
(1)实验设备
●掌宇TCP/IP通信协议实验系统一套;
●装有ITS-101软件的PC机6台。
(2)预备知识
●熟悉TCP/IP协议实验系统的组成,会运用HUBOX连线变换拓扑结构;
●熟悉ITS-101软件界面与操作方法;
●熟悉IP、ICMP数据报的结构及传输方法;
●熟悉NAT的工作原理。
4.5.3实验内容
一、IP数据报的静态路由
(1)将所有的ITS-101依次编号(如可自定义为ITS-1,ITS-2,……,ITS-6),并按图4.4所示的网络拓扑结构连接HUBOX。
图4.4网络拓扑结构
(2)点击主菜单“Tool”“NetworkConfiguration”,打开网络配置窗口,按照图4.4所示的网络拓扑结构,设置每台ITS-101的IP地址,子网掩码全部设为255.255.255.0。
并且将ITS-1和ITS-6的Host/Gateway选项设为“Host”模式,其他的设为“Gateway”模式。
(3)在网络配置窗口中,按表4.2设置每个ITS-101的RoutingTable。
表4.2ITS路由表设置
RoutingTable
Destination
Mask
Gateway
ITS-1
192.168.2.0
255.255.255.0
192.168.1.2
192.168.3.0
255.255.255.0
192.168.1.2
192.168.4.0
255.255.255.0
192.168.1.2
192.168.5.0
255.255.255.0
192.168.1.2
ITS-2
192.168.3.0
255.255.255.0
192.168.2.3
192.168.4.0
255.255.255.0
192.168.2.3
192.168.5.0
255.255.255.0
192.168.2.3
ITS-3
192.168.1.0
255.255.255.0
192.168.2.2
192.168.4.0
255.255.255.0
192.168.3.4
192.168.5.0
255.255.255.0
192.168.3.4
ITS-4
192.168.1.0
255.255.255.0
192.168.3.3
192.168.2.0
255.255.255.0
192.168.3.3
192.168.5.0
255.255.255.0
192.168.4.5
ITS-5
192.168.1.0
255.255.255.0
192.168.4.4
192.168.2.0
255.255.255.0
192.168.4.4
192.168.3.0
255.255.255.0
192.168.4.4
ITS-6
192.168.1.0
255.255.255.0
192.168.5.5
192.168.2.0
255.255.255.0
192.168.5.5
192.168.3.0
255.255.255.0
192.168.5.5
192.168.4.0
255.255.255.0
192.168.5.5
(4)开启每台ITS的以太网监听功能,从ITS-1的LAN1端口(192.168.1.1)发送一个ICMPEchoRequest(回送请求)数据报给ITS-6的LAN1端口(192.168.5.6),具体操作过程为:
图4.5发送ICMP报文
a.在ITS-1上打开IPDatagramSender界面,如图4.5(主菜单:
Sen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 网络层协议的测试分析及NAT 第四 网络 协议 测试 分析 NAT