实验1:IP分组交付和ARP协议
【实验目的】
1、掌握IP子网划分技术、IP地址分配原则,以及特殊IP地址的特征和作用
2、理解掌握直接交付与间接交付IP分组过程中的路由选择、ARP解析和以太网封装技术
3、分析子网划分对IP分组交付的影响
【预备知识】
1、IP地址、MAC地址、子网和掩码的概念 2、掩码运算:确定IP网络(或子网)及其范围 3、以太网原理和帧结构
【实验原理】
IP子网中使用一个32比特的掩码来标识一个IP地址的网络/子网部分和主机部分。将IP地址和掩码进行“位与”运算后可以得到该IP地址所在IP子网的子网地址,结合掩码中0比特个数可以确定该IP子网的IP地址空间范围。根据IP地址所在IP子网的子网地址及其掩码,可以判断这些IP地址是否属于同一个IP子网。
IP地址空间中定义了一些特殊地址:
网络/子网地址:标识一个IP网络或子网。
直接广播地址:表示该分组应由特定网络上的所有主机接收和处理。
受限广播地址:表示该分组应由源所在网络或子网上的所有主机接收和处理。 本网络上本主机地址:表示主机自己。 环回地址:用来测试机器的协议软件。
IP分组被交付到最终目的地有两种不同的交付方式:直接交付和间接交付。交付时首先通过路由选择技术确定交付方式:如果IP分组的目的与交付者在同一个IP网络上,就直接交付该分组至目的站点;如果IP分组的目的与交付者不在同一个IP网络上,就间接交付该分组至下一个路由器(即下一跳站点)。 在以太网上,IP分组是封装在以太帧中发送的,因此发送时除了要有接收站的IP地址(IP分组中的目的IP地址)外,还需要接收站的MAC地址(以太网帧中的目的MAC地址)。ARP协议(RFC 826)实现了IP地址(逻辑地址)到MAC地址(物理地址)的动态映射,并将所获得的映射存放在ARP高速缓存表中。
不同的交付方法将导致不同的ARP解析操作,获取不同的目的物理地址。直接交付时,交付者直接将IP分组交付给该分组的目的站点,因此交付者使用ARP协议找出IP分组中目的IP地址对应的物理地址。间接交付时,交付者需要将IP分组交付给下一跳站点,而不是该IP分组的目的端,因此交付者使用ARP协议找出下一跳站点IP地址对应的物理地址。
IP网络是一个逻辑网络,一个物理网络可以被逻辑划分成若干个IP网络。两个IP网络之间的通信必须经由路由器中继,未经路由器互连的两个IP网络即使在同一物理网中也不能通信。主机的默认网关地址就是连接该主机所在IP网络的路由器接口的IP地址。
2
【实验内容】
Ethernet1(VMnet1) F0/0 PC1 PC2 R1 子网C: 192.168.12.0/30 PPP S1/0 S1/0 R2 PC3 PC4 F0/0 Ethernet2(VMnet2) 子网A:192.168.11.0/24 子网B:192.168.22.0/24 R1 F0/0 = 192.168.11.254,S1/0 = 192.168.12.1 R2 F0/0 = 192.168.22.254,S1/0 = 192.168.12.2
实验拓扑中VMware虚拟机PC1、PC2、PC3和PC4分别位于由提供集线器功能的虚拟网卡VMnet1和VMnet2模拟实现的两个以太网Ethernet1和Ethernet2中,这两个以太网对应的IP子网A和子网B分别连在Dynamips软件模拟实现的路由器R1和R2的F0/0接口上。R1和R2之间通过PPP链路互联。R1、R2、PC2、PC3和PC4的网络连接均已配置。
实验者首先在PC1上配置其网络连接,并配合通信测试命令(ping)来检验特殊IP地址的用途以及IP子网设置对同一物理网内计算机间通信的影响,从而理解并掌握子网地址、子网广播地址和主机地址的概念、特征与用途。
然后在PC1上使用ping命令分别进行IP子网内通信和IP子网间通信,通过ARP缓存表操作命令、Dynamips软件的分组捕获功能以及Wireshark软件的捕获分组查看功能,分析IP分组的直接交付、间接交付操作和路由器的作用,掌握ARP协议的工作原理,以及IP分组投递过程中源/目的IP地址与源/目的MAC地址的特征,理解IP子网对IP分组交付的影响。
【实验步骤】
1、依次启动VMware Workstation中TCPIP组内的虚拟机PC1、PC2、PC3和PC4,使用ipconfig命令查看并记录这4台PC的网络连接信息,在PC1上ping PC2的IP地址,记录并分析ping的结果。 2、设置PC1的子网掩码为255.255.255.0,然后将其IP地址分别设为192.168.11.0、192.168.11.255,记录并分析设置结果。 3、根据实验拓扑中的各子息以及步骤1中记录的PC2、PC3、PC4的网络连接信息,配置PC1的IP地址、子网掩码和默认网关,使得PC1能够ping通PC2,并在PC1上分别ping PC3和PC4的IP地址,记录并分析ping的结果。 4、在PC1上分别ping以下8个IP地址:0.0.0.0、255.255.255.255、192.168.11.0、192.168.11.255、127.0.0.0、127.0.0.1、127.0.0.10、127.255.255.255,记录并分析ping的结果。 5、启动Dynamips Server,然后运行lab1.net,在Dynagen窗口中提示符“=>”后依次输入以下命令启动路由器R1和R2,并进入其CLI:
=> start R1 => start R2 => con R1 => con R2
3
6、分别在R1的CLI提示符“R1>”后以及R2的CLI提示符“R2>”后输入“show arp”命令查看并记录两台路由器当前的ARP缓存表,例:
R1> show arp R2> show arp 7、在Dynagen窗口中提示符“=>”后依次输入以下命令捕获子网A、子网B和子网C中的分组:
=> capture R1 f0/0 a.cap => capture R2 f0/0 b.cap
=> capture R2 s1/0 c.cap PPP 8、分别在PC1、PC2、PC3、PC4上使用命令“arp -d *”清空四台PC上的ARP缓存表,然后使用命令“arp -a”查看并记录清空操作后的ARP缓存表。 9、在PC1上ping PC2的IP地址,记录ping回应信息。ping结束后分别在PC1、PC2、PC3、PC4上使用命令“arp -a”、在R1和R2的CLI上使用命令“show arp”查看并记录四台PC和两台路由器的ARP缓存表。 10、在PC1上ping PC3的IP地址,记录ping回应信息。ping结束后分别在PC1、PC2、PC3、PC4上使用命令“arp -a”、在R1和R2的CLI上使用命令“show arp”查看并记录四台PC和两台路由器的ARP缓存表。 11、在PC1上ping PC4的IP地址,记录ping回应信息。ping结束后分别在PC1、PC2、PC3、PC4上使用命令“arp -a”、在R1和R2的CLI上使用命令“show arp”查看并记录四台PC和两台路由器的ARP缓存表。 12、在PC1上ping子网A内一台不存在主机的IP地址,记录ping回应信息。ping结束后在PC1上使用命令“arp -a”查看并记录其的ARP缓存表。 13、在Dynagen窗口中提示符“=>”后依次输入以下命令停止捕获子网A、子网B和子网C中的分组:
=> no capture R1 f0/0 => no capture R2 f0/0 => no capture R2 s1/0 14、用Wireshark软件查看并分析捕获的分组文件(a.cap、b.cap和c.cap)中的ARP和ICMP分组,查看过滤条件为“arp || icmp”(在Wireshark主窗口界面“过滤工具栏”的“Filter:”域中输入)。 15、实验结束后,按照以下步骤关闭实验软件、上传实验数据、还原实验环境: (1)关闭R1、R2的CLI窗口,在Dynagen窗口中提示符“=>”后依次输入以
下命令关闭Dynagen窗口,然后再关闭Dynamips Server窗口: => stop /all => exit (2)将PC1的网络连接设置为“自动获得IP地址”,然后依次关闭PC1、PC2、
PC3和PC4,关闭VMware窗口; (3)运行lab1.net所在目录下的“reset.bat”文件。
4
【实验数据和结果分析】
1、记录实验中PC1、PC2、PC3和PC4的网络连接。 PC1 步骤1 步骤3 PC2 IP地址 子网掩码 默认网关 PC3 PC4 【分析】PC1在步骤1和步骤3中是否与PC2、PC3、PC4在一个IP子网中?为什么?
2、记录实验中PC1的ping通信结果。 步骤 目的主机 1 PC2 PC2 3 PC3 PC4 0.0.0.0 255.255.255.255 192.168.11.0 192.168.11.255 4 127.0.0.0 127.0.0.1 127.0.0.10 127.255.255.255 9 PC2 10 PC3 11 PC4 12 本子网内不存在的主机 PING回应信息 能否通信 说明:因Dynamips软件模拟问题,在步骤10和步骤11中R2不会转发PC1
发给PC3和PC4的第1个ping测试请求报文,故实验中请忽略该报文。 【分析】PC1在什么情况下能与PC2、PC3、PC4通信?
3、记录实验中PC1、PC2、PC3、PC4、R1和R2的ARP缓存表项: 步骤6:使用“show arp”命令查看R1和R2当前的ARP缓存表 Interface IP地址 MAC地址 R1 R2 步骤8:使用“arp –a”命令查看清空操作后PC1~PC4的ARP缓存表 Interface IP地址 MAC地址 PC1 PC2 PC3 PC4 步骤9:PC1 ping PC2后,R1、R2和PC1~PC4的ARP缓存表 IP地址 MAC地址 Interface R1 5
R2 PC1 PC2 PC3 PC4 步骤10:PC1 ping PC3后,R1、R2和PC1~PC4的ARP缓存表 Interface IP地址 MAC地址 R1 R2 PC1 PC2 PC3 PC4 步骤11:PC1 ping PC4后,R1、R2和PC1~PC4的ARP缓存表 Interface IP地址 MAC地址 R1 R2 PC1 PC2 PC3 PC4 步骤12:PC1 ping本子网内一台不存在的主机后,PC1的ARP缓存表 Interface IP地址 MAC地址 PC1 说明:如果某个步骤中某设备的ARP缓存表为空,则填写“无”。如果某个步
骤中某设备有多条ARP缓存表项,则要填写每一条表项。 【分析】
1)每台PC的ARP缓存表中能否有其它IP子网中PC的地址映射?为什么? 2)在实验中PC2的ARP缓存表中能否会有其默认网关192.168.11.254的地址映射?为什么?
3)如果步骤11中出现了某条ARP表项消失的情况,原因可能是什么? 4、记录步骤9、步骤10、步骤11、步骤12中捕获的分组信息: 步骤 :PC1 ping 子网A 以太帧头 ARP请求 ARP分组 以太帧头 ARP响应 ICMP回送请求 ICMP回送应答
源地址 发方MAC 发方IP 源MAC 发方MAC 发方IP 源MAC 源IP 源MAC 源IP 6
目的MAC 目标MAC 目标IP 目的MAC 目标MAC 目标IP 目的MAC 目的IP 目的MAC 目的IP ARP分组 以太帧头 IP分组头 以太帧头 IP分组头
子网B ICMP回送请求 ICMP回送应答 PPP帧头 IP分组头 PPP帧头 IP分组头 以太帧头 ARP请求 ARP分组 以太帧头 ARP响应 ICMP回送请求 ICMP回送应答 ARP分组 以太帧头 IP分组头 以太帧头 IP分组头 地址 源IP 地址 源IP 子网C 源地址 发方MAC 发方IP 源MAC 发方MAC 发方IP 源MAC 源IP 源MAC 源IP 目的MAC 目标MAC 目标IP 目的MAC 目标MAC 目标IP 目的MAC 目的IP 目的MAC 目的IP 目的IP 目的IP 说明:MAC和IP地址可用对应的设备标识填写(如“R1 f0/0”、“PC1”),如
果无对应的设备标识,则填写16进制MAC地址或点分十进制IP地址; 如果某个步骤中某子网内没有捕获到相应类型的分组,则填写“无”。 【分析】
1)4个步骤中是否在子网A、B和C中都有ARP分组?为什么?
2)4个步骤中PC1是否每次都发出了封装着ICMP报文的IP分组?为什么? 3)4个步骤中PC1是否每次都收到了封装着ICMP报文的IP分组?为什么? 4)如果PC1、PC2和路由器R1之间采用以太网交换机连接,那么在步骤9中R1能否捕获到PC1 ping PC2时产生的ARP请求分组、ARP响应分组以及ICMP回送请求报文和ICMP回送应答报文?为什么?
5)步骤10中路由器R1和R2在转发源为PC1、目的为PC3的IP分组时,分别采用的是直接交付还是间接交付?为什么?
【实验结论】
1、根据步骤2和4,总结本实验中所有特殊IP地址的地址结构特征,以及它们在通信中的使用情况。
2、总结主机发送IP分组时的直接交付和间接交付操作过程,以及过程中ARP协议和ARP缓存表的具体操作步骤。 3、总结当源和目的主机间跨越多个IP网络时,它们的IP分组在交付过程中源和目的IP地址的变化情况,以及封装该分组的数据帧的源和目的MAC地址的变化情况。
7