前面我们将IGMP协议和PIM-DM协议理论知识都学完了,现在开始进入实践,毕竟只有完成实践是最好的检验方式。IGMP是用于感知组播组成员,而PIM-DM是用于在域内构建组播分发树的的协议,本次实验使用这两项技术进行分析与实践。
一、拓扑结构
拓扑说明与一些注意事项。组播主要用于一些组播流量、IP电话、IPTV等,在ensp支持使用vlc播放器进行组播推流,因此首先需要安装vlc播放器。
然后将工具配置在ensp中,设置--工具设置--VLC选择安装完成后的软件路径。
拓扑:
这里只有一个组播源因此IGMP使用默认v2即可,AR2、3、4使用交换机连接触发断言机制,连接组播组成员的接口开启igmp,组播转发网络的接口都启用PIM DM,所有设备都在OSPF 1 的Area 0 区域,所有路由器开启组播路由功能。
二、基础网络配置
包括IP与路由互通配置,保证组播组成员与组播源能够互相ping通。
组播源设置使用MCS,设置ip地址以及组播组地址
AR1:
interface GigabitEthernet0/0/0
ip address 10.0.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.2.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.0.3.1 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.1.0 0.0.0.255
network 10.0.2.0 0.0.0.255
network 10.0.3.0 0.0.0.255
AR2:
interface GigabitEthernet0/0/0
ip address 10.0.6.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.2.2 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 172.16.0.254 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.2.0 0.0.0.255
network 10.0.6.0 0.0.0.255
network 172.16.0.0 0.0.0.255
AR3:
interface GigabitEthernet0/0/0
ip address 10.0.6.3 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.0.3.3 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.3.0 0.0.0.255
network 10.0.6.0 0.0.0.255
AR4:
interface GigabitEthernet0/0/0
ip address 10.0.6.4 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.7.4 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 192.168.1.254 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.6.0 0.0.0.255
network 10.0.7.0 0.0.0.255
network 192.168.1.0 0.0.0.255
AR5:
interface GigabitEthernet0/0/0
ip address 10.0.7.5 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.7.0 0.0.0.255
测试网络连通性:
三、组播配置
其实组播配置也不难。
-
所有路由器开启组播路由功能 -
组播转发网络接口开启PIM DM -
连接组播组成员的接口开启igmp enable
这里先把配置配上,然后组播源再开始播放视频推流进行抓包查看现象。
# AR1
multicast routing-enable # 全局开启组播路由功能
#
interface GigabitEthernet0/0/0
ip address 10.0.1.2 255.255.255.0
pim dm # 启用PIM DM模式
#
interface GigabitEthernet0/0/1
ip address 10.0.2.1 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 10.0.3.1 255.255.255.0
pim dm
# AR2
multicast routing-enable # 全局开启组播路由功能
#
interface GigabitEthernet0/0/0
ip address 10.0.6.2 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 10.0.2.2 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 172.16.0.254 255.255.255.0
igmp enable # 开启igmp功能,默认为igmp v2
# AR3
multicast routing-enable # 全局开启组播路由功能
#
interface GigabitEthernet0/0/0
ip address 10.0.6.3 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 10.0.3.3 255.255.255.0
pim dm
# AR4
multicast routing-enable # 全局开启组播路由功能
#
interface GigabitEthernet0/0/0
ip address 10.0.6.4 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 10.0.7.4 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 192.168.1.254 255.255.255.0
igmp enable
# AR5
multicast routing-enable # 全局开启组播路由功能
#
interface GigabitEthernet0/0/0
ip address 10.0.7.5 255.255.255.0
pim dm
配置完成后暂时是没有什么表项和现象的,因为组播源没有开启播放,没有组播流量触发全网泛洪,组播组成员没有加组无法形成igmp组表项和igmp路由表项。
四、开启组播功能
可以在下面的接口开启抓包观察下现象。
首先可以观察到连接组播组成员的接口发送的普遍组查询报文,每隔60s左右发送一次,向下行接口发往224.0.0.1.
组播源配置:设置完成路径和组播组ip,点击一下组播组MAC地址自动生成,最后点击运行。
通过抓包查看到组播源向组播组224.1.1.1通过UDP推送流量。
在AR2的G0/0/0口查看到了断言报文以及状态刷新报文,通过查看发现AR2和AR3都发送了断言报文,但是由于AR3的IP地址优先,因此AR3下行接口作为winner发送状态刷新报文。
组播组成员加组:
通过抓包查看到组播组成员发送的组成员关系报告,需要加入源为10.0.1.1的组播组224.1.1.1.
AR4查看igmp组表项和igmp路由表项。
这里还有一个剪枝报文的前面没有抓包到,算了。由于组播转发网络开启PIM DM,每个路由器都会维护PIM路由表项即使不转发组播流量,然后从第一跳组播路由器会定期发送状态刷新报文全网泛洪。
组播分发树SPT:
本文由 mdnice 多平台发布