OPNET工程:作业11_采用RIP进行路由https://download.csdn.net/download/Cx2008Lxl/79477993
在这项实验室作业中,将详细研究在各种配置状况下路由信息协议(RIP)的性能。特别地,将详细研究在使用RIP路由的一个网络中路由变化有多快地进行传播。另外,将实践创建复杂的OPNET仿真模型,配置RIP,失效和恢复网络中的链路,修改统计收集模式,输出OPNET报告。
本节难点:问题1、3、6、7。需掌握IP地址分配表、路由表的查看步骤;掌握RIP协议路由环路现象产生的原因;RIP触发扩展、水平分割、毒性逆转的区别。
目录
-
步骤与结果
1. 创建仿真模型
创建一个新项目和一个名为RIP Normal的空场景。
2. 创建网络拓扑
如图5.1。并在网络中所有活跃接口上部署IPv4地址(下拉菜单:Protocols->IP->Addressing->Auto – Assign IPv4 Addresses)。然后配置RIP为网络中所有接口上的一个路由协议(下拉菜单:Protocols->IP->Routing->Configure Routing Protocols)。
3. 设置RIP通告模式为No Filtering
在网络中所有路由器接口(IF0~IF11)上,设置RIP通告模式为No Filtering,如图5.2。
4. 禁用RIP仿真效率模式
通过设置全局属性Simulation Efficiency…RIP Sim Efficiency为Disabled,禁用RIP仿真效率模式,如图5.3。
5. 配置仿真输出IP地址分配
如步骤4,同样设置全局仿真属性IP…IP Interface Addressing Mode为Auto Addressed/Export,配置仿真输出IP地址分配。
6. 配置路由表输出时间
通过设置各Router属性,配置所有路由器在仿真时间400s处和仿真结束处输出它们的路由表,如图5.4。
7. 仿真15min,并收集如下仿真结果
① 类RIP中的全局统计量Traffic Received (bits/sec),收集模式为all values,如图5.5。
② 类RIP的全局统计量Convergence Duration,收集模式为all values,画线风格为discrete,如图5.6。
8. 配置其他RIP场景。
1)复制场景RIP Normal,命名新场景为RIP with Failure。并添加一个Failure/Recovery对象到工作空间中。配置该对象,使仿真到300s处让节点Router 1和Router 6之间的链路失效,并在仿真时间500s时恢复那条链路,如图5.7。
2)复制场景RIP with Failure,命名新场景为RIP Triggered,并设置所有路由器的IP Routing Protocols…RIP Parameters…Interface Information…Triggered Extension的属性值为Enabled,激活RIP触发扩展模式,如图5.8。
3)复制RIP Triggered场景,命名新场景为RIP with Split Horizon,并设置所有路由器的所有接口激活水平分割RIP通告模式,如图5.9。
4)复制场景RIP Triggered场景,并命名新场景为RIP with Poison Reverse,配置所有路由器的所有接口上激活带有毒性反转的水平分割RIP通告模式,如图5.10。
9. 执行所有场景仿真15min。
-
问题与解答
1. 通过检查带有输出IP地址(由仿真创建的)的文件,详细研究场景RIP with Failure的网络中的IP地址分配。
查看RIP with Failure场景下输出的IP地址分配GDF文件(Assignment11-RIP with Failure-DES-1-ip_addresses.gdf),IP地址表如表5.1。
节点 | 接口 | IP | 连接链路 | 节点 | 接口 | IP | 连接链路 |
Host1 | IF0 | 192.0.10.2/24 | Router1 <-> Host1 | Router4 | IF10 | 192.0.1.2/24 | Router3 <-> Router4 |
Host2 | IF0 | 192.0.6.1/24 | Router2 <-> Host2 | IF11 | 192.0.9.1/24 | Router4 <-> Router5 | |
Host3 | IF0 | 192.0.4.1/24 | Router8 <-> Host3 | Router5 | IF10 | 192.0.9.2/24 | Router4 <-> Router5 |
Host4 | IF0 | 192.0.2.1/24 | Router7 <-> Host4 | IF11 | 192.0.8.2/24 | Router5 <-> Router6 | |
Router1 | IF4 | 192.0.12.1/24 | Router1 <-> Router2 | Router6 | IF4 | 192.0.8.1/24 | Router5 <-> Router6 |
IF10 | 192.0.11.1/24 | Router6 <-> Router1 | IF10 | 192.0.3.2/24 | Router7 <-> Router6 | ||
IF11 | 192.0.10.1/24 | Router1 <-> Host1 | IF11 | 192.0.11.2/24 | Router6 <-> Router1 | ||
Router2 | IF4 | 192.0.7.2/24 | Router2 <-> Router3 | Router7 | IF4 | 192.0.3.1/24 | Router7 <-> Router6 |
IF10 | 192.0.12.2/24 | Router1 <-> Router2 | IF10 | 192.0.2.2/24 | Host4 <-> Router7 | ||
IF11 | 192.0.6.2/24 | Router2 <-> Host2 | IF11 | 192.0.5.1/24 | Router7 <-> Router8 | ||
Router3 | IF10 | 192.0.7.1/24 | Router2 <-> Router3 | Router8 | IF10 | 192.0.5.2/24 | Router7 <-> Router8 |
IF11 | 192.0.1.1/24 | Router3 <-> Router4 | IF11 | 192.0.4.2/24 | Router8 <-> Host3 |
2. 详细研究仿真结果,并显示如下统计量的图形:
1)针对RIP Normal、RIP with Failure和RIP Triggered场景,在独立的平板中画出RIP Traffic Received (bits/sec)。如图5.11。
2)针对上面三种场景,在相同的平板中以堆叠统计模式画出RIP...Convergence Duration。如图5.12。
3)针对RIP with Split Horizon和RIP with Poison Reverse场景,在相同的平板中以堆叠统计模式画出RIP ... Convergence Duration。如图5.13。
3. 详细研究RIP Normal场景中所有路由器上仿真结東时的路由表,并回答如下问题:
1)从Host 2到Host 3传输的报文,走哪条路由?这条路由的长度是多少?
2)从Hast 4到 Host 1传输的报文,走哪条路由?这条路由的长度是多少?
查看RIP Normal仿真结束时,各路由器的路由表,如表5.2~表5.9。
1)解答:
① 从IP分配表(表5.1)可知,Host2的IP为192.0.6.1/24,Router2的IF11接口IP为192.0.6.2/24。因此第一跳为Router2。
② Host3的IP为192.0.4.1/24。因此Destination的网络号为192.0.4.0/24。从表5.3可知,下一跳Router1,从IF10端口转发出去。
③ 从表5.2可知,下一跳为Router6,从IF10端口转发出去。
④ 从表5.7可知,下一跳为Router7,从IF10端口转发出去。
⑤ 从表5.8可知,下一跳为Router8,从IF11端口转发出去。
⑥ 从表5.9可知,Router8为最后一跳,并会从Router8的IF11端口转发出去,Host3可以接收到。
由上述分析可知,从Host2到Host3的路由为:Host2 -> Router2 -> Router1 -> Router6 -> Router7 -> Router8 -> Host3。一共5跳。
2)解答:
① 从IP分配表(表5.1)可知,Host4的IP为192.0.2.1/24,Router7的IF10接口IP为192.0.2.2/24。因此第一跳为Router7。
② Host1的IP为192.0.10.2/24。因此Destination的网络号为192.0.10.0/24。从表5.8可知,下一跳Router6,从IF4端口转发出去。
③ 从表5.7可知,下一跳为Router1,从IF11端口转发出去。
④ 从表5.2可知,Router1为最后一跳,并会从Router1的IF11端口转发出去,Host1可以接收到。
由上述分析可知,从Host4到Host1的路由为:Host4 -> Router7 -> Router6 -> Router1 -> Host1。一共3跳。
表5.2 Router1仿真结束时路由表
表5.3 Router2仿真结束时路由表
表5.4 Router3仿真结束时路由表
表5.5 Router4仿真结束时路由表
表5.6 Router5仿真结束时路由表
表5.7 Router6仿真结束时路由表
表5.8 Router7仿真结束时路由表
表5.9 Router8仿真结束时路由表
4. 详细研究RIP with Failure场景中所有路由器上时间400s处的路由表,并回答如下问题:
1)从Host 2到Host 3传输的报文,走哪条路由?这条路由的长度是多少?
2)从Host 4到Host 1传输的报文,走哪条路由?这条路由的长度是多少?
查看RIP Normal仿真结束时,各路由器的路由表,如表5.2~表5.9。
1)解答:
① 从IP分配表(表5.1)可知,Host2的IP为192.0.6.1/24,Router2的IF11接口IP为192.0.6.2/24。因此第一跳为Router2。
② Host3的IP为192.0.4.1/24。因此Destination的网络号为192.0.4.0/24。从表5.11可知,下一跳Router3,从IF4端口转发出去。
③ 从表5.12可知,下一跳为Router4,从IF11端口转发出去。
④ 从表5.13可知,下一跳为Router5,从IF11端口转发出去。
⑤ 从表5.14可知,下一跳为Router6,从IF11端口转发出去。
⑥ 从表5.15可知,下一跳为Router7,从IF10端口转发出去。
⑦ 从表5.16可知,Router8为最后一跳,并会从Router8的IF11端口转发出去,Host3可以接收到。
由上述分析可知,从Host2到Host3的路由为:Host2 -> Router2 -> Router3 -> Router4 -> Router5 -> Router6 -> Router7 -> Router8 -> Host3。一共7跳。
2)解答:
① 从IP分配表(表5.1)可知,Host4的IP为192.0.2.1/24,Router7的IF10接口IP为192.0.2.2/24。因此第一跳为Router7。
② Host1的IP为192.0.10.2/24。因此Destination的网络号为192.0.10.0/24。从表5.16可知,下一跳Router6,从IF4端口转发出去。
③ 从表5.15可知,下一跳为Router5,从IF4端口转发出去。
④ 从表5.14可知,下一跳为Router4,从IF10端口转发出去。
⑤ 从表5.13可知,下一跳为Router3,从IF10端口转发出去。
⑥ 从表5.12可知,下一跳为Router2,从IF10端口转发出去。
⑦ 从表5.11可知,下一跳为Router1,从IF10端口转发出去。
⑧ 从表5.10可知,Router1为最后一跳,并会从Router1的IF11端口转发出去,Host1可以接收到。
由上述分析可知,从Host4到Host1的路由为:Host4 -> Router7 -> Router6 -> Router5 -> Router4 -> Router3 -> Router2 -> Router1 -> Host1。一共7跳。
表5.10 Router1仿真结束时路由表
表5.11 Router2仿真结束时路由表
表5.12 Router3仿真结束时路由表
表5.13 Router4仿真结束时路由表
表5.14 Router5仿真结束时路由表
表5.15 Router6仿真结束时路由表
表5.16 Router7仿真结束时路由表
表5.17 Router8仿真结束时路由表
5. 针对RIP Normal、RIP with Failure和RIP Triggered各场景,在RIP所接收流量总量之间有什么区别?如何解释这些区别?
从图5.11可看出,RIP with Failure在300s和500s处发生了路由信息的变更,更新的路由信息在每30s发送的RIP路由表更新消息中被传递出去,但是RIP协议收敛速度慢,且坏消息传递的慢。RIP Triggered为RIP触发更新,当路由发生变化时,会及时将消息广播出去,其他相邻路由器会立马收到更新消息,而不用等待每30s,避免了在广播坏消息前,其他相邻路由器先广播了可达的路由信息,导致计数到无穷大现象。
6. 针对RIP Normal、RIP with Failure和RIP Triggered各场景,在路由表收敛时长之间有什么区别?如何解释这些区别?
从图5.12可见,RIP Normal的收敛时长约为12.6s。
在RIP with Failure场景中,300s时Router1与Router6之间的链路发生了故障,此时的收敛时长约为18.3s,可见,当网络中链路发生故障后,RIP协议收敛速度很慢,因为当链路故障时,若其他路由器在直连路由器广播前先广播了路由消息,则会互相同步路由表一直计数到16才会让另外的路由器知道故障消息,出现计数到无穷大现象。
在RIP Triggered场景中,300s链路故障时收敛速度约为3.3s,可见收敛时长大幅降低。因为触发同步模式无需等待30s的RIP固定广播间隔,而是当发生路由变更后立刻广播RIP消息,能一定程度上避免非直连路由器先广播路有消息,导致计数无穷大的发生。但是立刻的时间也是不固定的,因此也无法完全避免该现象。
7. 针对RIP with Failure、RIP with Split Horizon和RIP with Poison Reverse各场景,在路由表收敛时长之间有什么区别?如何解释这些区别?就对好消息和坏消息响应的快速性方面,如何排序没有水平分割的RIP、带有水平分割的RIP以及带有毒性反转的RIP?
从图5.12可见,RIP with Failure在300s故障时收敛时长约为18.3s,500s恢复收敛时长约为27.1s。从图5.13可见,RIP with Split Horizon在300s故障时收敛时长约为4.9s,500s恢复收敛时长约为9.2s。RIP with Poison Reverse在300s约为3.3s,500s约为7.2s。
水平分割:若某个路由表项是从路由器某个端口学习到的,则以后从该端口广播路由信息时,会把该条路由表项从广播的路由表中去除。因此避免了出现故障时路由环路的产生而导致的计数到无穷大现象。因此故障的收敛时间大大缩小。
毒性逆转:若某个路由表项是从路由器某个端口学习到的,则以后从该端口广播路由信息时,仍会包含该条路由表项,但是将距离置为16。这样可以快速使其他接收到的路由器立刻抛弃该路由,而不是等待其老化时间(Age Out)到才删除,这样可以进一步加速路由的收敛。但是会路由消息更为庞大,增加了路由更新的负担。
由上述分析以及实验数据可知,收敛速度排序为:普通RIP < 水平分割RIP < 带毒性逆转的RIP。
-
总结
本实验仿真了RIP协议,研究了RIP协议的路由表,学习了RIP协议工作流程。此外,进一步仿真了RIP协议的触发扩展模式,该模式可以在路由变更后及时广播路由表,而不用等待30s的RIP更新间隔,一定程度上避免了路由环路产生,也是多台路由器下水平分割与毒性逆转的基础。但触发扩展仍可能产能路由环路。
最后,仿真了水平分割和毒性逆转。水平分割广播时删去了从该端口学到的路由表项,毒性逆转没有删去,但将距离标记为了16。多台路由器时,结合触发扩展模式,两种方式均能完全避免路由环路的产生。水平分割可以使更新的消息更小,减轻了网络的负担。毒性逆转网络负担较大,但通过将距离标记为16,在真正故障时,可使接收到消息的路由器立即删除该条表项,而不用等待老化时间,增快了收敛速度。这两种方式在RIP协议中具有极为重要的作用。
参考文献
[美]Adarshpal S. Sethi, Vasil Y.Hnatyshin. 计算机网络仿真OPNET实用指南[M]. 王玲芳, 母景琴, 译. 北京:机械工业出版社, 2014.