
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并手动指定其路由器接收、成员接口
实验任务
- 设备IP地址配置
- 配置AR1、AR2、AR3、AR4之间的OSPF,在互联接口、Loopback接口上激活OSPF
- 开启路由器的组播路由功能,部署PIM-DM,在相应接口上开启PIM-DM
- 在AR1上模拟组播源发送组播数据,观察各个路由器的PIM路由表
- 修改AR3的GE0/0/0接口OSPF Cost值,影响断言机制选举结果,之后再次查看AR2、AR3的PIM路由表
- 在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]