组播实验--IGMP、IGMP_Snooping及PIM-DM协议
2026-02-08
网络
00
请注意,本文编写于 55 天前,最后修改于 5 天前,其中某些信息可能已经过时。

目录

实验任务
实验步骤
1、设备IP地址配置
2、配置OSPF
3、部署PIM-DM
4、观察PIM路由表
5、修改OSPF cost值,影响断言选举结果
6、配置IGMP Snooping

​ 4台路由器之间运行OSPF路由协议,均创建Loopback0,IP地址为10.0.x.x/32。4台路由器之间构成一个组播网络,AR1作为第一跳路由器连接组播源239.0.0.12,AR4作为最后一跳路由器连接组播组239.0.0.12的接收者,为了能够让组播源的流量顺利被AR4上的组播组成员接收,在每台路由器上部署PIM-DM,并在AR4的GE0/0/1接收上激活IGMPv2

​ 同时为了优化交换机LSW2上的组播流量转发行为,在S2上部署IGMP Snooping并手动指定其路由器接收、成员接口

实验任务

  1. 设备IP地址配置
  2. 配置AR1、AR2、AR3、AR4之间的OSPF,在互联接口、Loopback接口上激活OSPF
  3. 开启路由器的组播路由功能,部署PIM-DM,在相应接口上开启PIM-DM
  4. 在AR1上模拟组播源发送组播数据,观察各个路由器的PIM路由表
  5. 修改AR3的GE0/0/0接口OSPF Cost值,影响断言机制选举结果,之后再次查看AR2、AR3的PIM路由表
  6. 在S2上配置IGMP Snooping,手动配置路由器端口、成员端口

实验步骤

1、设备IP地址配置

展开代码
# AR1配置 [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ip address 10.0.13.1 24 [AR1-GigabitEthernet0/0/0]q [AR1]interface GigabitEthernet 0/0/1 [AR1-GigabitEthernet0/0/1]ip address 10.0.12.1 24 [AR1-GigabitEthernet0/0/1]q [AR1]interface LoopBack 0 [AR1-LoopBack0]ip address 10.0.1.1 32 [AR1-LoopBack0]q [AR1] # AR2配置 [AR2]interface GigabitEthernet 0/0/0 [AR2-GigabitEthernet0/0/0]ip address 10.0.12.2 24 [AR2-GigabitEthernet0/0/0]q [AR2]interface GigabitEthernet 0/0/1 [AR2-GigabitEthernet0/0/1]ip address 10.0.234.2 24 [AR2-GigabitEthernet0/0/1]q [AR2]interface LoopBack 0 [AR2-LoopBack0]ip address 10.0.2.2 32 [AR2-LoopBack0]q [AR2] # AR3配置 [AR3]interface GigabitEthernet 0/0/0 [AR3-GigabitEthernet0/0/0]ip address 10.0.13.3 24 [AR3-GigabitEthernet0/0/0]q [AR3]interface GigabitEthernet 0/0/1 [AR3-GigabitEthernet0/0/1]ip address 10.0.234.3 24 [AR3-GigabitEthernet0/0/1]q [AR3]interface LoopBack 0 [AR3-LoopBack0]ip address 10.0.3.3 32 [AR3-LoopBack0]q [AR3] # AR4配置 [AR4]interface GigabitEthernet 0/0/0 [AR4-GigabitEthernet0/0/0]ip address 10.0.234.4 24 [AR4-GigabitEthernet0/0/0]q [AR4]interface GigabitEthernet 0/0/1 [AR4-GigabitEthernet0/0/1]ip address 192.168.1.1 24 [AR4-GigabitEthernet0/0/1]q [AR4]interface LoopBack 0 [AR4-LoopBack0]ip address 10.0.4.4 32 [AR4-LoopBack0]q [AR4]

在AR1、AR4上检测连通性(以AR1为例)

2、配置OSPF

​ 使用各自的Loopback 0 接口地址作为Router ID,在互联接口、Loopback 0接口上激活OSPF

展开代码
# AR1配置 [AR1]ospf 1 router-id 10.0.1.1 [AR1-ospf-1]area 0 [AR1-ospf-1-area-0.0.0.0]network 10.0.12.1 0.0.0.0 [AR1-ospf-1-area-0.0.0.0]network 10.0.13.1 0.0.0.0 [AR1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0 [AR1-ospf-1-area-0.0.0.0]q [AR1-ospf-1]q [AR1] # AR2配置 [AR2]ospf 1 router-id 10.0.2.2 [AR2-ospf-1]area 0 [AR2-ospf-1-area-0.0.0.0]network 10.0.12.2 0.0.0.0 [AR2-ospf-1-area-0.0.0.0]network 10.0.234.2 0.0.0.0 [AR2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0 [AR2-ospf-1-area-0.0.0.0]q [AR2-ospf-1]q [AR2] # AR3配置 [AR3]ospf 1 router-id 10.0.3.3 [AR3-ospf-1]area 0 [AR3-ospf-1-area-0.0.0.0]network 10.0.13.3 0.0.0.0 [AR3-ospf-1-area-0.0.0.0]network 10.0.234.3 0.0.0.0 [AR3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0 [AR3-ospf-1-area-0.0.0.0]q [AR3-ospf-1]q [AR3] # AR4配置 [AR4]ospf 1 router-id 10.0.4.4 [AR4-ospf-1]area 0 [AR4-ospf-1-area-0.0.0.0]network 10.0.234.4 0.0.0.0 [AR4-ospf-1-area-0.0.0.0]network 192.168.1.1 0.0.0.0 [AR4-ospf-1-area-0.0.0.0]network 10.0.4.4 0.0.0.0 [AR4-ospf-1-area-0.0.0.0]q [AR4-ospf-1]q [AR4]

​ 查看AR4的OSPF邻居关系、OSPF路由表

展开代码
<AR4>display ospf peer brief

展开代码
<AR4>display ospf routing

3、部署PIM-DM

​ 所有路由器开启组播路由功能,在需要运行PIM-DM的接口上开启组播路由协议

展开代码
# AR1配置 [AR1]multicast routing-enable # 开启组播路由功能 [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]pim dm [AR1-GigabitEthernet0/0/0]q [AR1]interface GigabitEthernet 0/0/1 [AR1-GigabitEthernet0/0/1]pim dm [AR1-GigabitEthernet0/0/1]q [AR1] # AR2配置 [AR2]multicast routing-enable [AR2]interface GigabitEthernet 0/0/0 [AR2-GigabitEthernet0/0/0]pim dm [AR2-GigabitEthernet0/0/0]q [AR2]interface GigabitEthernet 0/0/1 [AR2-GigabitEthernet0/0/1]pim dm [AR2-GigabitEthernet0/0/1]q [AR2] # AR3配置 [AR3]multicast routing-enable [AR3]interface GigabitEthernet 0/0/0 [AR3-GigabitEthernet0/0/0]pim dm [AR3-GigabitEthernet0/0/0]q [AR3]interface GigabitEthernet 0/0/1 [AR3-GigabitEthernet0/0/1]pim dm [AR3-GigabitEthernet0/0/1]q [AR3] # AR4配置 [AR4]multicast routing-enable [AR4]interface GigabitEthernet 0/0/0 [AR4-GigabitEthernet0/0/0]pim dm [AR4-GigabitEthernet0/0/0]q [AR4]interface GigabitEthernet 0/0/1 [AR4-GigabitEthernet0/0/1]pim dm [AR4-GigabitEthernet0/0/1]q [AR4]

​ 在AR1、AR4上检查PIM邻居关系

展开代码
<AR1>display pim neighbor

这时候,AR1与AR2、AR1与AR3、AR4与AR2、AR4与AR3之间都已经成功形成PIM关系

​ 在AR4的GE0/0/1接口上开启IGMP,并配置静态组播组模拟组播接收者

展开代码
[AR4]interface GigabitEthernet 0/0/1 [AR4-GigabitEthernet0/0/1]igmp enable [AR4-GigabitEthernet0/0/1]igmp static-group 239.0.0.12 [AR4-GigabitEthernet0/0/1]q [AR4]

​ 在AR4上查看IGMP接口信息

展开代码
<AR4>display igmp interface GigabitEthernet 0/0/1

默认IGMP的版本为V2,AR4为IGMP的查询者

4、观察PIM路由表

​ 在AR1上以Loopback 0接口为源地址,向239.0.0.12发送ICMP数据包,模拟组播源,之后再4台路由器上查看PIM路由表

展开代码
# AR1上模拟组播源,发送组播流量 <AR1>ping -a 10.0.1.1 -c 10 239.0.0.12

PIM Start-Refresh报文内容

State-Refresh 报文中会携带组播源地址(10.0.1.1),组播组地址(239.0.0.12),下游设备 收到后会创建(S,G)表项,并继续向下游发送State-Refresh报文

在设备上查看Start-Refresh报文发送情况

展开代码
<AR1>display pim control-message counters message-type state-refresh interface GigabitEthernet 0/0/1

当已发送(sent)个数不为0时,再去查看下游的(S,G)表项,否则将无法看到内容。 PIM-SM 并无State-Refresh 报文,因此无法使用该方式触发生成组播路由表

​ 查看4台路由器的PIM路由表

展开代码
<AR1>display pim routing-table

AR1上(S, G)表项的入接口为Loopback0,因为组播源为设备直连,所以PRF邻居为NULL。 下游接口为GE0/0/1、GE0/0/0,AR1将组播流量转发给AR3、AR2

AR2上并没有下游接口

AR3的下游接口为GE0/0/1

​ R2、R3的下游接口与R4的上游接口在同一个网段,此时触发断言机制,R2、R3通过各自的 GE0/0/1接口发送断言报文进行选举,R2、R3到达组播源的单播路由拥有相同的路由优先级、单播路由开销值,但是R3的GE0/0/1接口拥有更大的IP地址(10.0.234.3大于10.0.234.2),因此R3在断言选举中胜出,继续向R4转发组播流量,而R2不再从自己的 GE0/0/1接口转发组播流量,这是R2的PIM路由表中没有下游接口的原因

5、修改OSPF cost值,影响断言选举结果

​ 再AR3上修改GE0/0/0接口的OSPF Cost值,使得AR3到达组播源地址的单播路由拥有更大的开销值,从而在断言选举中失败,让AR2变为断言选举胜出者

​ 在AR2、AR3上查看前往组播地址10.0.1.1的路由开销值

展开代码
<AR2>display ip routing-table 10.0.1.1

AR2、AR3到达10.0.1.1的路由开销值都为1

​ 修改AR3上的GE0/0/1接口的OSPF Cost值

展开代码
[AR3]interface GigabitEthernet 0/0/0 [AR3-GigabitEthernet0/0/0]ospf cost 2 [AR3-GigabitEthernet0/0/0]q [AR3]

​ 在AR3上查看前往组播源地址10.0.1.1的路由开销值

展开代码
<AR3>display ip routing-table 10.0.1.1

现在AR3到达10.0.1.1的路由开销值为2

​ 为了更好的观察现象,修改AR2、AR3的GE0/0/1接口Assert状态的超过时间为10s

展开代码
[AR2]interface GigabitEthernet 0/0/1 [AR2-GigabitEthernet0/0/1]pim holdtime assert 10 [AR2-GigabitEthernet0/0/1]q [AR2] [AR3]interface GigabitEthernet 0/0/1 [AR3-GigabitEthernet0/0/1]pim holdtime assert 10 [AR3-GigabitEthernet0/0/1]q [AR3]

​ 在AR1上开启debugging pim join-prune receive,观察剪枝过程

展开代码
<AR1>terminal debugging Info: Current terminal debugging is on. <AR1>terminal monitor Info: Current terminal monitor is on. <AR1>debugging pim join-prune receive <AR1>

​ 在AR1上重新触发组播流量

展开代码
<AR1>ping -a 10.0.1.1 -c 10 239.0.0.12

​ 重新查看AR2、AR3的PIM的路由表

展开代码
<AR2>display pim routing-table

现在AR3上没有下游接口,AR2为断言选举胜出者

6、配置IGMP Snooping

​ 为了优化交换机LSW2对组播流量的转发行为,在LSW2上开启IGMP Snooping,并手动配置路由器端口、成员端口

展开代码
# 在全局、VLAN1开启IGMP Snooping [LSW2]igmp-snooping enable [LSW2]vlan 1 [LSW2-vlan1]igmp-snooping enable [LSW2-vlan1]q # 手动配置路由器端口 [LSW2]interface GigabitEthernet 0/0/1 [LSW2-GigabitEthernet0/0/1]igmp-snooping static-router-port vlan 1 [LSW2-GigabitEthernet0/0/1]q [LSW2] # 手动配置GE0/0/10为组播组239.0.0.12的成员端口 [LSW2]interface GigabitEthernet 0/0/10 [LSW2-GigabitEthernet0/0/10]l2-multicast static-group group-address 239.0.0.12 vlan 1 [LSW2-GigabitEthernet0/0/10]q [LSW2]

本文作者:zzz

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!