华为 组播之IGMPv1

我是艺博东 ,一个正在努力学IT的码农;好了,话不多说,我们直接进入正文。

文章目录

一、拓扑

华为 组播之IGMPv1

二、基本配置与分析

AR-1

[Huawei]sysname  AR-1
[AR-1]
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]ip address 1.1.1.1 24
[AR-1-GigabitEthernet0/0/0]q
[AR-1]multicast routing-enable 
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]igmp enable 
[AR-1-GigabitEthernet0/0/0]igmp version 1

PC-1
华为 组播之IGMPv1
PC-2

华为 组播之IGMPv1
PC-1 加组
华为 组播之IGMPv1

AR-1 接口 G0/0/0 抓包

华为 组播之IGMPv1
查表,
华为 组播之IGMPv1
发现没有相关的路由信息。

dis igmp interface g0/0/0
华为 组播之IGMPv1
发现最后一行没有查询者被选择,也就是说AR-1不是发送通用组查询报文的路由器,只有查询者被选举出来之后,查询者才会发普遍组组查询报文;由于AR-1不是查询者,那么它就不会发报告报文,同时这个接口又没有启用PIM协议,所以也不会产生的 ( * ,G)表项。

因此,有以下几个特点

1、IGMPv1,没有查询者选举机制。
2、什么是IGMP查询者呢?当一个网段存在多台路由器时,负责向该网段发送普通组查询的路由器。
3、IGMPv1需要PIM协议的DR选举机制来协助查询者的选举,因此启用IGMPv1的接口还需启用PIM协议。由PIM协议选举出该网段上的DR,由DR充当IGMPV1的查询器。

PIM DR 选举机制

1、根据PIM协议中hello中携带的优先级选举DR,优先级越大,优先成为DR。
2、优先级相同,则比较接口IP地址的大小,地址大的优先成为DR。
3、PIM DR具有抢夺性。
4、DR失效后,会重新选举新的DR充当IGMPv1的查询器。

AR-1

[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]undo igmp enable 
[AR-1-GigabitEthernet0/0/0]pim dm 
[AR-1-GigabitEthernet0/0/0]igmp enable 

[AR-1]dis igmp interface g0/0/0

华为 组播之IGMPv1
AR-1 接口 G0/0/0 抓包
华为 组播之IGMPv1
[AR-1]dis pim routing-table
华为 组播之IGMPv1
华为 组播之IGMPv1
AR-1

igmp timer query 10 修改IGMP普通组查询报文的发送间隔,IGNPv1,IGNPv2,IGMPv3适用。

[AR-1-GigabitEthernet0/0/0]igmp timer query 10

AR-2

[Huawei]sysname AR-2
[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]ip address  1.1.1.6 24
[AR-2-GigabitEthernet0/0/0]q
[AR-2]multicast routing-enable 
[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]pim dm 
[AR-2-GigabitEthernet0/0/0]igmp enable 
[AR-2-GigabitEthernet0/0/0]igmp version 1
[AR-2-GigabitEthernet0/0/0]quit
[AR-2]int g0/0/0	
[AR-2-GigabitEthernet0/0/0]igmp timer query 10

[AR-2]dis igmp interface g0/0/0
华为 组播之IGMPv1
AR-1

pim hello-option dr-priority 10 修改PIM协议hello报文的DR优先级。

[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]pim hello-option dr-priority 10

[AR-1]dis igmp interface g0/0/0
华为 组播之IGMPv1
优先级改为了10(默认优先级为1),又抢夺回来了。

AR-1、AR-2都会产生( * ,G)表项。

[AR-1]dis pim neighbor
华为 组播之IGMPv1
30S一发
华为 组播之IGMPv1

AR-1

[AR-1]int g0/0/0	
[AR-1-GigabitEthernet0/0/0]pim timer hello 10
[AR-1-GigabitEthernet0/0/0]pim hello-option holdtime 30

AR-2

[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]pim hello-option holdtime 30
[AR-2-GigabitEthernet0/0/0]pim timer hello 10

AR-1的g0/0/0接口shutdown之后, 经过30S,AR-2会成为DR(就是DR的切换时间)。

华为 组播之IGMPv1

AR-1的g0/0/0接口undo shutdown

华为 组播之IGMPv1
查询器又回来了。

三、小结

组播组:接收同一个组播地址的设备。

如何区分不同的组播组?根据组播地址来区分。

ASM 组成员无法对组播源做出选择时,我们应该部署ASM服务模型。
SSM 组成员可以对组播源做出选择时,我们可以部署SSM服务模型。

ASA 只通过组播地址来唯一的区分不同的组播业务,即不同的组播业务需要分配不同的组播地址,会造成组播地址浪费,但对组成员的能力要求不高,容易部署和维护。接收者只需要事先知道自己要加入的组播地址即可。

SSM 通过组播地址和组播源的地址来唯一的区分不同的组播业务,那么可以实现组播地址重复利用。即同一个组播地址可以使用不同的组播源来提供不同的组播业务。组成员需要事先知道源和组地址的对应关系。

单播以太网数据帧:
SMAC:发送该数据帧的3层接口的MAc地址。
DMAC:根据DIP地址通过ARP协议 解析而来。

SMAC DMAC 1.1.1.1 239.1.1.1

TCP/IP模型 决定所有IP报文都必须封装成帧才能在链路上转发。

四、通用组查询报文

(1)由路由器周期性发送,默认每隔60s发送一次。通过IP报文封装,SIP为路由器接口地址,DIP 为224,0.0.1(代表链路上的所有路由器和主机)

(2)通用组查询报文 group address 为0.0.0.0 ,代表针对所有组播组发起组成员查询。

(3)当组成员接收到通用组查询报文后,随机延时一个0-10s的时间后,发送成员报告报文,SIP为主机自身接口IP,DIP为该主机所属的组播组地址。
group address为主机所属的组播组地址。

(4)随机延时时间为0-10s之间一个值,10s称为最大响应时间,实现组成员报告抑制机制,IGMPv1无法修改该时间值。

(5)为什么要设计最大响应时间呢?避免同组的成员重复发送成员报告报文,减少路由器负担。由于组成员报告延时时间不一致,谁先超时谁发报告。

(6)路由器接收到成员报告之后,将创建 ( * ,G)表项,并将收到该成员报告的接口做该( * ,G)表项的下游接口,未来路由器收到发向该组的组播报文就向该下游接口复制一份,从而发给成员主机所在的网段。

(7)IGMPv1没有设计离组机制,成员离组不会发送任何通知,默默离开。如果该组最后一个成员离开,路由器在130s内接收不到该组的报告报文,则认为该组不再存在成员,将( * ,G)表项的下游接口删除,停止向该网段发送该组的组播报文。但130s内还是会继续发送该组流量,导致业务控制不够及时。

做人,人品为先,才能为次;做事,明理为先,勤奋为次。


华为 组播之IGMPv1

好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!

上一篇:USACO2021DECBronze 题解


下一篇:JavaScrip笔记1