协议分析10 RIP

更好的阅读体验:

  1. https://type.dayiyi.top/index.php/archives/248/
  2. https://blog.dayi.ink/?p=98
  3. https://cnblogs.cn/rabbit-dayi
  4. https://cmd.dayi.ink/nKnLEJJuQACUW2qAPCjbAQ

让我R.I.P,吧,11个作业。

插电,开机

步骤和要求

1)选择样例中的RIPv1&v2,打开网络拓扑;(可以自己设计拓扑或在样例的基础上修改)
2)启动设备;
3)从任意路由器端口启动wireshark,捕获报文。
4)将其中的路由器端口shutdown,过一段时间再undo shutdown,观察RIP报文的变化。
2、分析其中的RIP报文。
四、实验报告
分别针对RIPv1和RIPv2,回答下面的问题:
1、验证RIP协议的版本、使用的传输层协议及端口号、各种定时器的设置时间等。
2、给出协议报文截图并进行分析RIP协议工作过程。
1)RIP定时更新过程
2)RIP发现拓扑结构变化后的更新过程
3)RIP慢收敛的过程
附华为相关配置命令:
rip split-horizon   配置水平分割 (RIP 2 默认打开)
rip poison-reverse  配置毒性逆转

实验过程:

好有目的性,好评

我这里找了AR1抓包

跟交换机的那个接口

开始抓包后

停止设备:

开机:

RIPV1


40多个估计差不多了

WOW

它把包,发到了FF:FF:FF:FF:FF:FF

然后就不管了。

请求包

Routing Information Protocol 
    Command: Request (1) # 命令:请求(1),表示这个RIP消息是一个请求,用于从其他路由器获取路由信息。
    Version: RIPv1 (1) # 版本:RIPv1(1)
Address not specified, Metric: 16 # 地址未指定,度量值为16,估计可以拿全部的包
    Address Family: Unspecified (0) # 地址族:未指定(0),表示这个请求不是针对特定类型的地址(如IP地址)。
    Metric: 16 # 度量值:16,距离无穷大

回应包

#udp包
User Datagram Protocol, Src Port: 520, Dst Port: 520
    Source Port: 520 #源端口
    Destination Port: 520 #目的端口
    Length: 52 #长度
    Checksum: 0x515f [unverified] #checksum
    [Checksum Status: Unverified]
    [Stream index: 0]
    [Timestamps]
    UDP payload (44 bytes)
    
Routing Information Protocol
    Command: Response (2) # 命令类型:回应(2)
    Version: RIPv1 (1) # 版本:RIPv1(1)
    IP Address: 10.0.1.0, Metric: 1 
        Address Family: IP (2) # 地址族:IP(2)
        IP Address: 10.0.1.0 # IP地址:10.0.1.0,具体的网络地址。
        Metric: 1 # 度量值:1
    IP Address: 10.0.14.0, Metric: 16
        Address Family: IP (2) # 地址族:IP(2)
        IP Address: 10.0.14.0 # IP地址:10.0.14.0,具体的网络地址。
        Metric: 16 # 度量值:16

1、验证RIP协议的版本、使用的传输层协议及端口号、各种定时器的设置时间等。

  • 版本:RIPV1
  • 传输层协议:UDP
  • 端口号:520
  • 计时器:差不多30s

如果想了解更多关于华为路由器的RIP协议配置和定时器设置,建议查阅华为路由器的官方文档或咨询华为技术支持。

sys
display rip

  • Update time(更新时间):30秒,表示每30秒发送一次更新的路由信息。
  • Age time(老化时间):180秒,表示当一条路由信息在180秒内没有收到更新时,将被视为过时并从路由表中删除。
  • Garbage-collect time(垃圾回收时间):120秒,表示在路由信息过时后,等待120秒后将其从路由表中删除。
  • Triggered updates sent(触发更新发送次数):2次,表示在发生路由变化时,会立即发送更新的路由信息。

2、给出协议报文截图并进行分析RIP协议工作过程。

已经分析啦

2、1)RIP定时更新过程

按时间推断差不多是30s一个。

  • 定期更新:RIP路由器每隔30秒向它的所有邻居发送完整的路由表。这被称为定时更新。这样做是为了维护网络中所有路由器的路由信息的最新状态。

  • 跳数计算:在更新的过程中,每经过一个路由器,跳数加一。RIP规定路由的最大跳数为15,超过15则认为目的地不可达。

  • 路由信息整合:当一个路由器接收到邻居路由器的路由表时,它会将这些信息与自己的路由表进行比较和整合,更新自己的路由表。

路由表

sys
dis ip routing-table

可以看到这4个是RIP更新的。

2、2)RIP发现拓扑结构变化后的更新过程

发现路由器寄了的时候,会直接广播相关的路由信息

当路由器又好了的时候,又广播可以了。目前距离是1:

  • 触发更新:当路由器发现拓扑变化(如某个路由变得不可达或有更好的路径)时,它会立即生成一个触发更新消息,而不是等待下一个定期更新。

  • 更新邻居:这个触发更新消息被发送给所有邻居路由器,通知他们有关这些变化。

  • 邻居路由器处理:接收到触发更新的路由器会立即更新其路由表,并可能触发它们自己的触发更新。

rip split-horizon   配置水平分割  (RIP 2 默认打开)
rip poison-reverse  配置毒性逆转

这两个命令没成功用上

2、3)RIP慢收敛的过程

计数到无穷:RIP使用计数到无穷的方法来解决路由环路问题。当路由器无法到达某个网络时,它会将该网络的跳数设置为16(认为是无穷大)。

慢速更新:由于RIP使用定期更新和触发更新,当网络拓扑发生变化时,这些信息需要一定时间才能传播到所有路由器。这导致RIP在适应网络变化方面相比较其他协议(如OSPF或EIGRP)较慢,这种现象被称为慢收敛。

霍尔定律:这种慢收敛可能导致临时的路由环路和不稳定,直到所有路由器的路由表都收敛到新的稳定状态。这个收敛过程可能需要几分钟的时间。

分割水平(Split Horizon)
定义:分割水平规则指出,路由器不应该将任何路由信息发送回它原来学习到该信息的接口。简而言之,就是“不要将信息发送回源头”。

毒性逆转(Poison Reverse)
定义:毒性逆转是分割水平的一个增强。当路由器通过一个接口学习到某个路由,且该路由变得不可达时,路由器会通过同一个接口宣告这个路由为“毒性”(即设置度量值为无穷大,通常为16)。

比如寄了就会直接拉到16:

而且速度蛮快的。

启动差不多40s

差不多重新建树大概20s,也挺慢

RIPV2

调到version2

4个都要

sys
rip
version 2

让R3寄掉

先看现在的路由表

然后让他寄掉(关机)

消失了。

再开机:

又回来了。

包:


这里还是1

下一个就是16了。

请求

Routing Information Protocol
    Command: Request (1)
    Version: RIPv2 (2) 
    Address not specified, Metric: 16
        Address Family: Unspecified (0)
        Route Tag: 0
        Netmask: 0.0.0.0
        Next Hop: 0.0.0.0
        Metric: 16 #这个还是16,剩下的都是0

回应

Routing Information Protocol 
    Command: Response (2) # 命令:响应(2)
    Version: RIPv2 (2) # 版本:RIPv2(2)

    IP Address: 10.0.3.0, Metric: 1 # IP地址:10.0.3.0,度量值:1。
        Address Family: IP (2) # 地址族:IP(2),表示该路由条目用于IP网络。
        Route Tag: 0 # 路由标签:0,通常用于区分不同来源的路由信息。
        IP Address: 10.0.3.0 # IP地址:10.0.3.0,标识目的网络的IP地址。
        Netmask: 255.255.255.0 # 网络掩码:255.255.255.0,用于确定网络地址的范围。
        Next Hop: 0.0.0.0 # 下一跳:0.0.0.0,表示直接连接的网络,不需要通过其他路由器。
        Metric: 1 # 度量值:1,表示到达该网络的跳数或成本,这里是最低成本。

    IP Address: 10.0.123.0, Metric: 16 
        Address Family: IP (2) # 地址族:IP(2),同上。
        Route Tag: 0 # 路由标签:0,同上。
        IP Address: 10.0.123.0 # IP地址:10.0.123.0,标识另一个目的网络。
        Netmask: 255.255.255.0 # 网络掩码:255.255.255.0,同上。
        Next Hop: 0.0.0.0 # 下一跳:0.0.0.0
        Metric: 16 # 度量值:16,不可达的标志。
Routing Information Protocol
    Command: Response (2)
    Version: RIPv2 (2)
    IP Address: 10.0.3.0, Metric: 1
        Address Family: IP (2)
        Route Tag: 0
        IP Address: 10.0.3.0
        Netmask: 255.255.255.0
        Next Hop: 0.0.0.0
        Metric: 1
    IP Address: 10.0.123.0, Metric: 1
        Address Family: IP (2)
        Route Tag: 0
        IP Address: 10.0.123.0
        Netmask: 255.255.255.0
        Next Hop: 0.0.0.0
        Metric: 1 #度量值

UDP部分:

User Datagram Protocol, Src Port: 520, Dst Port: 520
    Source Port: 520
    Destination Port: 520
    Length: 52
    Checksum: 0x0551 [unverified]
    [Checksum Status: Unverified]
    [Stream index: 4]
    [Timestamps]
    UDP payload (44 bytes)

1、验证RIP协议的版本、使用的传输层协议及端口号、各种定时器的设置时间等。

根据上面的信息:

  • 版本:2
  • 传输:UDP
  • 端口:520
sys
dis rip

  • 定时器设置时间:
    • 更新时间(Update time):30秒,
    • 老化时间(Age time):180秒
    • 垃圾收集时间(Garbage-collect time):120秒

2、给出协议报文截图并进行分析RIP协议工作过程。

已经分析啦

2、1)RIP定时更新过程

RIP使用周期性更新来维护其路由表。每隔30秒(更新时间),RIP路由器会向所有RIP邻居发送整个路由表。
从提供的数据包中可以看到,RIP响应(Response)消息被定期发送到多播地址224.0.0.9。
RIP拓扑变化后的更新过程:

2、2)RIP发现拓扑结构变化后的更新过程

当RIP路由器检测到路由信息变化时(例如,链路故障或新路由的添加),它会立即发送触发更新(triggered update)。
这些更新不遵循正常的30秒周期,而是立即发送,以快速传播拓扑变化信息。

2、3)RIP慢收敛的过程

RIP是一种距离向量路由协议,其收敛过程相对较慢。这是因为更新是周期性的,且每次只传播到相邻路由器。
在某些情况下,例如“计数到无穷”问题,这可能导致路由环路和不稳定。

ripv1 ripv2

  • 子网掩码支持:RIPv1不支持子网掩码,它假设所有网络都在相同的子网上。RIPv2增加了对子网掩码的支持,这允许更有效地处理不同大小的子网和超网

  • 多播更新:RIPv1使用广播来发送整个路由表到所有网络设备,这可能会导致网络上不必要的流量。RIPv2改进了这一点,采用多播地址224.0.0.9发送更新,减少了不必要的网络流量和负载。

  • 路由认证:RIPv2引入了简单的密码认证机制,这可以提高路由更新的安全性。

  • 路由标记(Route Tagging):RIPv2支持路由标记,这使得它可以与其他不同类型的路由协议(如OSPF或BGP)更好地集成。路由标记可以用来表示路由信息的来源。

  • 更好的可扩展性和灵活性:由于支持子网掩码和路由标记

  • 支持可变长度子网掩码(VLSM):与RIPv1只支持固定长度子网掩码(FLSM)相比,RIPv2的支持可变长度子网掩码对于IP地址的有效使用和网络规划非常重要。

文件下载

https://p.dabbit.net/ctf/实验11.rar