南昌大学实验报告 学生姓名: 吴长福 学 号: 8000114105 专业班级: 卓越141班 实验类型:□ 验证 □ 综合 √设计 □ 创新 实验日期: 2016.12.01 实验成绩:
实验六 IGMP协议和RIP协议
【实验目的】 1. 掌握IGMP协议的报文格式 2. 掌握IGMP协议的工作原理 3. 理解多播组地址到以太网地址的映射 4. 掌握路由协议的分类,理解静态路由和动态路由 5. 掌握动态路由协议RIP的报文格式,工作原理及工作过程 6. 掌握RIP计时器的作用 7. 理解RIP的稳定性
【实验学时】 建议4学时
1、IGMP协议 【实验环境配置】 采用网络结构 说明:主机A、C、D的默认网关是172.16.1.1;主机E、F的默认网关是172.16.0.1。 【实验原理】 一、 IGMP报文格式
二、 IP多播 报文从一台计算机发送到一组特定的计算机上,叫做多播。例如,实时信息的交付(如新闻、股市行情等),软件更新,交互会议等。在因特网上进行多播就叫做IP多播。IP多播具有以下的一些特点: 多播使用组地址 IANA把D类地址空间分配用于IP组播地址。所以,IP组播值的范围是:224.0.0.0—239.255.255.255。为了更合理的利用有限的组播地址,IANA进一步对它进行了划分。如下图所示:
三、 IGMP使用规则 多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。使用规则如下: 1) 当第一个进程加入一个组时,主机就发送一个IGMP报告。 如果一个主机的多个进程加入同一组,只发送一个IGMP报告。 这个报告被发送到进程加入组所在的同一接口上。 2) 进程离开一个组时,主机不发送IGMP报告即便是组中的最后一个进程离开。 主机知道在确定的组中已不再有组成员后, 在随后收到的IGMP查询中就不再发送报告报文。 3) 多播路由器定时发送IGMP查询了解是否有任何主机包含有属于多播组的进程。 多播路由器必须向每个接口发送一个IGMP查询。因为路由器希望主机对它加入的每个多播组均发回一个报告,因此IGMP查询报文中的组地址被设置为0。 4) 主机通过发送IGMP报告来响应一个IGMP查询,对每个至少还包含一个进程的组均要发回IGMP报告。 使用这些查询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还包含一个主机的多播组。 当路由器收到要转发的多播数据报时,它只将该数据报转发到(使用相应的多播链路层地址)还拥有属于那个组主机的接口上。
【实验步骤】 练习一:观察IGMP报文 1. 在主机B的172.16.1.1对应的接口、172.16.0.1对应的接口分别启动网络协议分析器并设置过滤条件(提取IGMP)。 2. 在主机B上启动IGMP协议: 在主机B的命令行下使用“igmp_config”命令启动IGMP协议。 主机B的命令行下使用“igmp_config "172.16.1.1的接口名" route” 命令将172.16.1.1接口设置为“IGMP路由器”。 主机B的命令行下使用“igmp_config "172.16.0.1的接口名" route”命令将172.16.0.1接口设置为“IGMP路由器”。 3. 观察主机B上协议分析器所采集到的数据。 找到“成员关系查询”报文,并填写下表: 数据内容 含义 目的MAC地址 目的IP地址 TTL值 组地址 通过目的MAC地址和目的IP地址,简述组播IP地址到MAC地址的映射方式。
练习二:利用IGMP加入一个多播组 1. 在主机B、D、F上启动网络协议分析器并设置过滤条件(提取IGMP)。 2. 在主机A上运行“组播工具”(使用224.0.1.88作为多 播地址)。 3. 在主机B、D、F上观察协议分析器上采集到的数据。 4. 察看主机B的“路由和远程访问/IGMP/显示组表格”(在命令行方式下,输入“igmp_config showgrouptable”),理解“组播工具”使用IGMP协议加入一个多播组的过程。
练习三:多播通信 1. 在主机B、F上启动协议分析器并设置过滤条件(提取IGMP和UDP)。 2. 在主机A、C、E上启动“组播工具”,并加入到同一个多播组(如:224.0.1.88)。 察看主机B上的“路由和远程访问/IGMP/显示组表格”,记录其中条目。 3. 使用主机A发送数据。 4. 观察主机C、E上“组播工具”接收到的数据。 5. 主机E退出多播组。 察看主机B上的“路由和远程访问/IGMP/显示组表格”。其中是否含有主机E所加入的组的相关条目?为什么? 6. 主机A、C退出多播组。 察看主机B上的“路由和远程访问/IGMP/显示组表格”。其中是否含有主机A、C所加入的组的相关条目?为什么? 7. 主机B、F停止捕获数据,观察协议分析器所捕获的数据。 简述IGMP在多播通信过程中所起到的作用,绘制多播组成员和IGMP路由器的报文交互过程(包括IGMP和UDP)。
2、RIP协议 【实验环境配置】 采用如下网络结构 【实验原理】 一、 RIP报文格式
二、 静态路由 静态路由是一种特殊的路由,由网络管理员采用手工方法在路由器中配置而成。这种方法适合在规模较小、路由表也相对简单的网络中使用。它比较简单,容易实现;可以精确控制路由选择,改进网络的性能;减小路由器的开销,为重要的应用保证带宽。但对于大规模的网络而言,如果网络拓扑结构发生改变或网络链路发生故障,用手工的方法配置及修改路由表,对管理员会形成很大压力。 三、 距离矢量算法(DV算法) 下面对是对矢量算法的描述: 收到相邻路由器(其地址为X)的一个RIP报文: 1. 先修改此RIP报文中的所有项目:将“下一跳”字段中的地址都改为X,并将所有的“距离”字段的值加1。 2. 对修改后的RIP报文中的每一个项目,重复以下步骤: 如果 项目中的目的网络不在路由表中 将该项目添加到路由表中。 否则 如果 下一跳字段给出的路由器地址是同样的 将收到的项目替换原路由表的项目。 否则 如果 收到的项目中的距离小于路由表中的距离 更新路由表。 3. 若3分钟还没有收到相邻路由器的更新路由表,则将此相邻路由器记为不可达的路由器,即将距离置为16。 4. 返回。
四、 触发更新和水平分割 1、触发更新 触发更新的思想是当路由器检测到链路有问题时立即对问题路由进行更新。触发更新的作用是迅速传递路由故障、加速收敛、减少环路产生的机会。如果路由器使用触发更新,它可以在几秒钟内就在整个网络上传播路由故障信息,极大地缩短了收敛时间。不采用触发更新,可能要花费更多的时间才能够收敛。 2、水平分割 路由环路产生的另一个重要原因是不正确的路由信息通过获得这条信息的接口再发送回去,替代了新的正确的路由,这也导致了错误路由信息的循环往复。水平分割的规则是,当向某个网络接口发送RIP更新信息时,不包含从该接口得到的选路信息。这样做的目的是避免路由环路。
【实验步骤】 练习一:静态路由与路由表 1. 在路由器B或路由器E的Static设置方式,观察路由表输入格式,回答静态路由表是由哪几部分组成的? 静态路由表项组成:目的地址,子网掩码,下一跳。 2. 将主机A的默认网关设为172.16.0.1。用主机A依次ping 主机B(192.168.0.2)和主机C(192.168.0.3),观察现象,记录结果。 是否PING通 原因
主机A—主机B (192.168.0.2) 是 虽然主机A的网关不是路由B 的0/0地址,但是路由B添加了192.168.0.0的rip协议,表明要到达192.168.0.0网段的地址都可以从路由器B经过,所以A可以ping通B的0/0地址
主机A—主机C (192.168.0.3) 是 虽然主机A的网关不是路由B 的0/0地址,但是路由B添加了192.168.0.0的rip协议,表明要到达192.168.0.0网段的地址都可以从路由器B经过,所
以主机A想要发送请求给C,可以通过路由B进行转发请求。
3. 从主机A依次ping 主机B(192.168.0.2)、主机E(192.168.0.1)、主机E(172.16.1.1),观察现象,记录结果。 是否PING通 原因
主机A—主机B (192.168.0.2) 是 虽然主机A的网关不是路由B 的0/0地址,但是路由B添加了192.168.0.0的rip协议,表明要到达192.168.0.0网段的地址都可以从路由器B经过,所以A可以ping通B的0/0地址
主机A----主机E (192.168.0.1) 是 路由B和路由E是可通的,路由B根据RIP协议把主机A的请求转发给E(192.168.0.1)
主机A----主机E (172.16.1.1) 是 路由B和路由E是可通的,路由B根据RIP协议把主机A的请求转发给E(192.168.0.1),192.168.0.1和172.16.1.1是其两个端口地址,A发送的请求的目的地址又是172.16.1.1,故可以ping通.