
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并手动指定其路由器接收、成员接口
展开代码# 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为例)

使用各自的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

所有路由器开启组播路由功能,在需要运行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的查询者
在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路由表中没有下游接口的原因

再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为断言选举胜出者
为了优化交换机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 许可协议。转载请注明出处!