设备连接方式如图所示,4台路由器运行OSPF,均创建Loopback0,IP地址为10.0.x.x/32,x为设备编号。
4台路由器构成一个组播网络,R1作为第一跳路由器连接组播源239.0.0.12,R4作为最后一跳路由器连接组播组239.0.0.12的接收者,为了能够让组播源的流量顺利被R4上的组播组成员接收,在每台路由器上均部署PIM-DM,并在R4的GE0/0/1接口上激活IGMPv2。
同时为了优化交换机S2上的组播流量转发行为,在S2上部署IGMP Snooping并手动指定其路由器接口、成员接口。

参考链接:http://e.huawei.com
实验任务:
①设备基础IP地址配置。
②配置R1、R2、R3、R4之间的OSPF,在互联接口、LoopbackO接口上激活OSPF。开启路由器的组播路由功能,部署PIM-DM,在相应接口上开启PIM-DM
③在R1上模拟组播源发送组播数据,观察各个路由器的PIM路由表。
④修改R3的GE0/0/1接口OSPF Cost值,影响断言机制选举结果,之后再次查看R2、R3的PIM路由表。
⑤在S2上配置IGMP Snooping,手动配置路由器端口、成员端口。
任务步骤:
①互联接口、环回口IP地址配置
设备命名
AR1:
<Huawei>system-view
Huawei\]sysname AR1
R2、R3相同操作,不再重复。
# 配置R1 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址
\[AR1\]interface GigabitEthernet 0/0/0
\[AR1-GigabitEthernet0/0/0\]ip address 10.0.12.1 24
\[AR1-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR1-GigabitEthernet0/0/1\]ip address 10.0.13.1 24
\[AR1-GigabitEthernet0/0/1\]interface LoopBack 0
\[AR1-LoopBack0\]ip ad 10.0.1.1 32
# 配置R2 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址
\[AR2\]interface GigabitEthernet 0/0/0
\[AR2-GigabitEthernet0/0/0\]ip address 10.0.12.2 24
\[AR2-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR2-GigabitEthernet0/0/1\]ip address 10.0.234.2 24
\[AR2-GigabitEthernet0/0/1\]interface LoopBack 0
\[AR2-LoopBack0\]ip address 10.0.2.2 32
# 配置R3 GE0/0/1接口、GE0/0/2接口、LoopBack0接口IP地址
\[AR3\]interface GigabitEthernet 0/0/1
\[AR3-GigabitEthernet0/0/1\]ip address 10.0.13.3 24
\[AR3-GigabitEthernet0/0/1\]interface GigabitEthernet 0/0/2
\[AR3-GigabitEthernet0/0/2\]ip address 10.0.234.3 24
\[AR3-GigabitEthernet0/0/2\]interface LoopBack 0
\[AR3-LoopBack0\]ip address 10.0.3.3 32
# 配置R4 GE0/0/0接口、GE0/0/1接口、LoopBack0接口IP地址
\[AR4\]interface GigabitEthernet 0/0/0
\[AR4-GigabitEthernet0/0/0\]ip address 10.0.234.4 24
\[AR4-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR4-GigabitEthernet0/0/1\]ip address 192.168.1.1 24
\[AR4-GigabitEthernet0/0/1\]interface LoopBack 0
\[AR4-LoopBack0\]ip address 10.0.4.4 32
# 在R1、R4上检查IP地址连通性


## **②配置OSPF**
使用Loopback0接口地址作为Router lD,在互联接口、Loopback0接口上激活OSPF。
# 配置R1
\[AR1\]ospf router-id 10.0.1.1
\[AR1-ospf-1\]area 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\]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
# 配置R2
\[AR2\]ospf router-id 10.0.2.2
\[AR2-ospf-1\]area 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\]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
# 配置R3
\[AR3\]ospf router-id 10.0.3.3
\[AR3-ospf-1\]area 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\]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
# 配置R4
\[AR4\]ospf router-id 10.0.4.4
\[AR4-ospf-1\]area 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\]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
# 在R1、R4上检查OSPF邻居状态


路由器之间的OSPF邻居已经全部正常建立。
# 在R4上查看OSPF路由表

R4上已经学习到全网的OSPF路由。
## **③部署PIM-DM**
在所有路由器上开启组播路由功能,在需要运行PIM-DM的接口下开启组播路由协议。
# 开启组播路由功能
\[AR1\]multicast routing-enable
\[AR2\]multicast routing-enable
\[AR3\]multicast routing-enable
\[AR4\]multicast routing-enable
# 在R1相应接口上开启PIM-DM
\[AR1\]interface GigabitEthernet 0/0/0
\[AR1-GigabitEthernet0/0/0\]pim dm
\[AR1-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR1-GigabitEthernet0/0/1\]pim dm
# 在R2相应接口上开启PIM-DM
\[AR2\]interface GigabitEthernet 0/0/0
\[AR2-GigabitEthernet0/0/0\]pim dm
\[AR2-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR2-GigabitEthernet0/0/1\]pim dm
# 在R3相应接口上开启PIM-DM
\[AR3\]interface GigabitEthernet 0/0/1
\[AR3-GigabitEthernet0/0/1\]pim dm
\[AR3-GigabitEthernet0/0/1\]interface GigabitEthernet 0/0/2
\[AR3-GigabitEthernet0/0/2\]pim dm
# 在R4相应接口上开启PIM-DM
\[AR4\]interface GigabitEthernet 0/0/0
\[AR4-GigabitEthernet0/0/0\]pim dm
\[AR4-GigabitEthernet0/0/0\]interface GigabitEthernet 0/0/1
\[AR4-GigabitEthernet0/0/1\]pim dm
# 在R1、R4上检查PIM邻居关系


R1与R2、R1R3、R4与R2及R3之间已经成功形成PIM邻居关系。
# 在R4的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
# 在R4上查看IGMP接口信息

默认IGMP版本为V2,R4为IGMP查询者。
## **④观察PIM路由表**
在R1上以Loopback0接口为源地址,向239.0.0.12发送ICMP数据包,模拟组播源,之后在4台路由器上查看PIM路由表。
# R1上模拟组播源,发送组播流量
\[AR1\]ping -a 10.0.1.1 -c 10 239.0.0.12
使用该命令实际上设备并不会对外发送组播流量,而是会触发PIM-DM的State-Refresh报文。
# PIM-DM State-Refresh报文内容

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

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

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

R2上并无下游接口。

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

R4的上游邻居为R3,自身为最后一跳路由器。
## **⑤修改IGP cost值,影响断言选举结果**
在R3上修改GE0/0/1接口的OSPF cost值,使得R3到达组播源地址的单播路由拥有更大的开销值,从而在断言选举中失败,让R2变为断言选举胜出者。
# 在R2、R3上查看前往组播源地址10.0.1.1的路由开销值


R2、R3前往10.0.1.1的路由开销值都为1。
# 修改R3上 GE0/0/1接口的OSPF cost
\[AR3\]interface GigabitEthernet 0/0/1
\[AR3-GigabitEthernet0/0/1\]ospf cost 2

此时R3前往10.0.1.1的路由开销值为2。
# 为了更好地观察现象,修改R2、R3的GE0/0/1接口和GE0/0/2接口Assert状态的超时时间为10s
\[AR2\]interface GigabitEthernet 0/0/1
\[AR2-GigabitEthernet0/0/1\]pim holdtime assert 10
\[AR3\]interface GigabitEthernet 0/0/2
\[AR3-GigabitEthernet0/0/2\]pim holdtime assert 10
# 在R1上开启**debugging pim join-prune receive**,观察剪枝过程
\