【计算机网络】RIP路由协议实验

一:实验目的

1:掌握在路由器上配置RIPv2。

二:实验仪器设备及软件

硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为:三层交换机1台、路由器2台。

软件:wireshark软件、记事本、Chrome浏览器等。

三:实验方案

【实验的网络拓扑图】

四:实验步骤

1:按照拓扑图配置PC1和PC2的IP地址、子网掩码、网关,并测试他们的连通性。此外,记录路由表信息。

由于两台主机在不同的网段,因此初始时没有连通性。

在路由器上执行show ip route命令,可以得到初始时的路由表。

2:三层交换机的基本配置。

三层交换机的基本配置过程,如下图所示。主要创建了VLAN 10和VLAN 50的虚拟端口,并配置了相应的IP地址。

3:路由器1的基本配置。

路由器1的基本配置过程,如下图所示。主要给端口配置了相应的IP地址。

4:路由器2的基本配置。

路由器2的基本配置过程,如下图所示。

5:交换机配置RIPv2路由协议。

    三层交换机的RIPv2路由协议配置过程,如下图所示。主要开启了RIP进程,声明了本设备的直连网段和RIP发布网段地址。

6:路由器1配置RIPv2路由协议。

    路由器1的RIPv2路由协议配置过程,如下图所示。

7:路由器2配置RIPv2路由协议。

路由器2的RIPv2路由协议配置过程,如下图所示。

8:验证三台路由设备的路由表,查看是否自动学习了其他网段的路由信息。

    检查三层交换机的路由表,结果如下图所示。可以发现,增加了2条R标签项的路由记录,由路由器1和路由器2传输其路由信息得到。

检查路由器1的路由表,结果如下图所示。可以发现,增加了2条R标签项的路由记录,由三层交换机和路由器2传输其路由信息得到。

检查路由器2的路由表,结果如下图所示。可以发现,增加了2条R标签项的路由记录,由三层交换机和路由器1传输其路由信息得到。

9:测试网络的连通性。

【1】将此时的路由表与步骤1的路由表进行比较,有什么结论?

每个路由设备的路由表,都增加了2条R标签项的路由记录。

结论:配置RIPv2后,路由表将逐渐学习并添加其他通过RIP广播的网络的条目。随着RIPv2的运行,路由器能够动态地了解到更多远程网络的信息,这些信息是通过与邻居路由器的交互获得的。

【2】分析traceroute PC1/PC2的结果。

    在PC1上执行traceroute PC2的结果,如下图所示。

可以看到从PC1到PC2的过程中经过了3次跳转,分别是10.206.50.1、10.206.10.1和10.206.20.2。

【3】进行拔线实验,通过wireshark测试报文变化的时间差,路由有没有出现毒性反转现象?

毒性反转是距离向量路由协议中的一种机制,用于防止路由循环。毒性反转的工作原理是:当一台路由器从某个邻居学到一个路由后,它会通过将该路由的距离设置为无穷大来“中毒”反向广播给该邻居,告知该路由不再可用。

拔线实验的执行过程如下:

(1)记录拔线前的状态:捕获并记录拔线操作之前的RIP消息,注意路由表中的路由距离。

(2)拔线:从网络中拔掉一条关键的连接线。

(3)观察反应:继续使用Wireshark记录拔线后的RIP消息。

分析捕获数据的过程如下:

(1)查找毒性反转消息:毒性反转通常体现为某条路由的距离被设置为16(在RIP中,16表示不可达)。在RIP更新包中查找目标网络的条目,看是否该网络的度量值变为16。

(2)比较时间差:观察从拔线到路由更新消息的发送这段时间内的延迟。分析路由器响应网络变化的速度,特别是路由器发送带有毒性反转条目的路由更新的速度。

(3)评估路由更新的广播:检查路由器是否对所有邻居广播了更新的路由信息,包括毒性反转的信息。

【4】捕获数据包,分析RIP封装结构。RIP包在PC1/PC2上能捕获到吗?如希望2台主机都能捕获到RIP包,请描述实现方法。

RIP数据包通常封装在UDP数据报中。RIP消息的结构如下:

  1. 命令:指示RIP包的类型,如请求(1)或响应(2)。
  2. 版本:RIP版本,通常为1或2。
  3. 必须为零的字段:用于对齐。
  4. 路由条目:包括网络地址、度量等信息。

    RIP包在PC1/PC2上能捕获到。

希望在2台主机都捕获到RIP包,可以采用以下方法:

(1)将PC设置为监听RIP广播和组播地址:在PC上配置一个网络接口以监听224.0.0.9(RIPv2的组播地址)。

(2)使用网络嗅探器在混杂模式下运行:在PC1和PC2上运行Wireshark或其他网络抓包工具,设置接口为混杂模式。混杂模式允许网络接口捕获通过它的所有流量。

(3)网络配置调整:如果PC1和PC2位于同一广播域内且网络中有路由器在使用RIP协议,那么只要将它们的网络接口设置为混杂模式,就有可能捕获到RIP数据包。如果不在同一广播域,需要在路由器或网络上设置端口镜像(SPAN)或网络分析口,将RIP流量复制到PC1和PC2所连接的端口。

五:实验结果及分析

1:查看交换机端口 0/1 所属 VLAN 应使用哪条命令?

命令为:show interface GigabitEthernet 0/1

在交换机上的执行结果,如下图所示。

2:如何查看 RIP 的版本号和发布到的网段?

    使用命令:show ip rip

3:RIPv1 的广播地址是什么?RIPv2 的组播地址是什么?

RIPv1的广播地址是255.255.255.255。

RIPv2的组播地址是224.0.0.9。

4:使用 10.10.X.0 的 IP 地址重做本次实验,注意网段间使用不同的子网掩码。当在 RIPv1 下设置不同网段时,配置后的端口实际上获得的子网掩码是什么?配合实验分析原因。

    RIPv1不支持子网掩码的传递,默认使用所在网络类别的标准子网掩码。在使用RIPv1的网络中,所有子网都必须使用相同的、基于类别的标准子网掩码,否则会导致子网掩码信息的不一致和路由错误。

5:RIPv1 必须使用自动汇总,不支持不连续网络,请实验验证。RIPv2 支持不连续网络吗?

    自动汇总是指RIPv1自动进行路由汇总到其类别地址,即自动将所有子网汇总到其主类网络地址(如A类、B类或C类)。因为RIPv1假设所有子网物理上连续且逻辑上属于同一个网络,所以RIPv1无法正确处理不连续网络。

RIPv1不支持不连续网络的实验验证:

(1)网络设置:配置一个模拟环境,其中包括几个RIPv1路由器,分布在不同的类别网络中。例如,一个网络段为10.0.2.0/24,另一个为10.0.3.0/24,它们之间通过一个B类地址(如172.16.0.0/16)的路由器连接。

(2)配置RIPv1:在所有路由器上启用RIPv1。

(3)观察路由表:检查路由表以验证路由器是否能正确学习和广播到不同的子网。

RIPv1不支持不连续网络的实验预期结果:由于RIPv1进行自动汇总,路由器将无法正确识别不连续网络。上述情况可能导致路由循环或某些网络不可达。

RIPv2 支持不连续网络。RIPv2允许手动配置路由汇总,并支持子网掩码。

6:RIPv1 对路由没有标记的功能,RIPv2 可以对路由打标记(tag),用于过滤和做策略。请在实验中观察和分析。

    标记(tag)允许管理员对路由信息进行额外的分类或标记,有助于在复杂的网络环境中进行路由信息的过滤和策略制定。

实验验证:

(1)配置RIPv2和路由标记。例如,路由器A可以对到达网络X的路由设置标记100。

    (2)设置路由接受/拒绝策略。在路由B上设置策略,仅接受带有标记100的路由更新。

    (3)流量转发策略。使用策略路由根据标记决定特定流量的转发路径。

    (4)观察和分析。使用Wireshark或类似工具捕获RIP更新,验证路由标记是否被正确传递。检查路由表,确认路由策略是否按预期工作。

六:实验总结及体会

1:RIP的封装结构如下。

2:RIPv1的设计限制会导致无法正确处理不同的子网掩码。这可能会导致路由循环、不可达的目的地或数据传输效率低下。

3:与RIPv1相比,RIPv2支持子网掩码的传递,因此可以处理不连续的子网和复杂的网络拓扑。

4:在进行拔线实验时,RIPv2展示了其在网络故障发生后的响应能力,及时更新和传播新的路由信息,减少了网络故障的影响。

### 将Simulink生成的A2L文件转换为CANape支持格式 #### 背景介绍 A2L文件由不同工具生成时,在格式表达上可能有所不同,但在参数类型和核心内容方面保持一致[^1]。对于Simulink生成的A2L文件而言,虽然其基本结构与其他工具(如CANape)生成的文件相似,但由于特定于Simulink的配置项存在差异,因此直接使用可能会遇到兼容性问题。 #### 解决方案概述 为了使Simulink生成的A2L文件能够在CANape中顺利读取并应用于实验数据采集或ECU标定工作,可以采取以下措施: - **调整文件格式**:通过修改某些字段来匹配CANape的要求; - **验证地址映射**:确保所有必要的内存地址已正确定义以便后续操作; - **测试与优化**:经过初步转换后需进一步调试直至完全适配目标环境。 #### 实际操作指南 ##### 修改文件头信息 首先应关注的是文件头部的信息声明部分。这包括但不限于`PROJECT`、`MODULE`等关键字下的描述语句。这些地方往往包含了版本号、创建者名称以及其他元数据,而这些都是影响跨平台互认的重要因素之一。 ```plaintext // Simulink原生风格 / begin PROJECT "MyProject" "" ... // CANape偏好形式 /begin PROJECT "MyProject_CANapeCompatible" ``` ##### 统一参数命名规则 接着是对内部变量名及其关联路径做适当简化处理,使之更贴近行业标准或是接收端系统的习惯做法。比如将复杂的MATLAB/Simulink路径替换为简洁明了的名字空间表示法。 ```plaintext // 原始路径示例 /A/module/submodule/signalName // 推荐改写方式 /module_signalName ``` ##### 补充缺失元素 最后也是最关键的一环就是补充那些原本不存在但却被期望存在的条目——特别是有关绝对物理位置的数据记录。因为只有当所有的测量点都能找到确切的位置参照时,整个文档才算真正意义上的完备可用。 ```plaintext // 添加缺少的关键字以指定位址 /address_extension UBYTE /memory_segment { name="FlashMemory"; long_identifier=""; address=0x8000; size=0x1000; } ``` 上述改动完成后,建议再次仔细校验新编写的A2L文本是否严格遵循官方发布的语法手册规定[^3],并通过实际加载到CANape环境中来进行最终确认。 #### 工具辅助方法 除了手动编辑外,还可以考虑借助一些自动化脚本或者是专门为此设计的应用程序来完成这项任务。例如Python结合正则表达式的批量查找替换功能就非常适合用来执行此类重复性的字符串模式变换作业。 ```python import re def convert_a2l_format(input_file, output_file): with open(input_file, 'r') as f_in: content = f_in.read() # 替换项目名称 content = re.sub(r'/begin\s+PROJECT\s+"([^"]*)"', r'/begin PROJECT "\g<1>_CANapeCompatible"', content) # 更简单的信号路径 content = re.sub(r'(/[\w]+)+', lambda m: '_'.join(m.group().split('/')[1:]) ,content) # 插入新的段落 additional_lines = """ /address_extension UBYTE /memory_segment { name="FlashMemory"; long_identifier=""; address=0x8000; size=0x1000; }""" if not '/address_extension' in content and not '/memory_segment' in content: content += '\n\n'+additional_lines with open(output_file, 'w') as f_out: f_out.write(content) convert_a2l_format('original.a2l','converted_for_canape.a2l') ``` 此代码片段展示了如何利用编程手段实现大部分所需更改,从而大大减少了人为干预的可能性及错误率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MorleyOlsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值