我是艺博东 ,一个正在努力学IT的码农;好了,话不多说,我们直接进入正文。
文章目录
一、拓扑
二、基本配置与分析
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
PC-2
PC-1 加组
AR-1 接口 G0/0/0 抓包
查表,
发现没有相关的路由信息。
dis igmp interface g0/0/0
发现最后一行没有查询者被选择,也就是说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
AR-1 接口 G0/0/0 抓包
[AR-1]dis pim routing-table
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
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
优先级改为了10(默认优先级为1),又抢夺回来了。
AR-1、AR-2都会产生( * ,G)表项。
[AR-1]dis pim neighbor
30S一发
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的切换时间)。
AR-1的g0/0/0接口undo shutdown
查询器又回来了。
三、小结
组播组:接收同一个组播地址的设备。
如何区分不同的组播组?根据组播地址来区分。
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内还是会继续发送该组流量,导致业务控制不够及时。
做人,人品为先,才能为次;做事,明理为先,勤奋为次。
好了这期就到这里了,如果你喜欢这篇文章的话,请点赞评论分享收藏,如果你还能点击关注,那真的是对我最大的鼓励。谢谢大家,下期见!