一文带你搞懂什么是IGMP
一、IGMPv1
IGMP是Internet Group Management Ptotocol的简称,被称为互联网组办理协议,是TCP/IP协议族中卖力IPV4组播成员办理的协议。
IGMP的作用:
1. IGMP用来在吸收者主机和与其直接相邻的组播路由器之间创建和维护组播构成员干系。
2. IGMP经过在吸收者主机和组播路由器之间交互IGMP报文完成构成员办理功效,IGMP报文封装在IP报文中。
IGMP的版本:
IGMP有三个版本,用于IPv4中一个网段内运转与构成员和路由器之间的协议:
IGMPv1
IGMPv2
IGMPv3
用于IPV6中运转与构成员和构成员路由器之间的协议:
MLDv1,同等于IGMPv2
MLDv2,同等于IGMPv3
IGMPv1报文:
–广泛组查询报文
–成员报告报文
广泛组查询报文:
1.路由器周期发送,默许每距离60s发送一次,经过IP报文封装,SIP为路由器接口IP地点,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.路由器收到成员报告报文今后,将主动创建(*,G)表项,并将收到该成员报告报文的接口作为该(*,G)报文的卑劣接口,将去路由器收到发向该组的组播报文就复制一份,从该卑劣接口发送出去,吸收者就从互联该接口的构成员路由器收到了该组播报文。
6.IGMPv1没有计划离组机制,成员离组不会发送任何关照给构成员路由器,假如该组中最初一个构成员分开大概仅有一个构成员由于某种妨碍离开该组播组,将招致路由器在130s【两个广泛组查询报文发送时间+最大克制延时(60s*2+10s)】内无法吸收就职何构成员的报文,当超时今后,路由器将删除关于构成员(*,G)表项的卑劣接口,中止向该网络发送关于该组播组的组播报文。
注:由于在超时之前,组播路由器并没有收到该组播构成员发送的报告报文,无法触发删除关于该组播组的(*,G)表项。因此,当组播路由器收到发往关于该组播组的组播报文时,仍旧会将组播报文从该组播构成员关联的卑劣接口发送出去,形成组播流量糜费,斲丧链路带宽。(在130s内照旧会持续发送组播流量,形成组播流量的糜费,链路带宽的糜费)。
通常情况下,组播路由器会周期性发送广泛组查询报文,但是在IGMPv1中,组播路由器默许情况下不会发送广泛组查询报文。
没有开启PIM协议:
不会发送构成员报告报文的缘故是,在IGMPv1中,默许没有查询者,仅有查询者才干发送广泛组查询报文(经过display igmp interface下令可以查察),仅有当查询被推举出来今后才会发送广泛组查询报文,而IGMPv1并没有查询器推举机制,以是该组播路由器并不晓得本人是查询者。
什么是查询者?
–当一个网段存在多台路由器时,卖力向该网段发送广泛组查询报文的路由器。
在IGMPv1中必要PIM协议的DR推举机制来帮助查询器的推举,因此启用IGMPv1的接口还需启用PIM协议,经过PIM协议推举出在该网段上的DR,然后由DR充任IGMPv1的查询者。
在接口下使能PIM协议:
接口使能PIM协议后:
PIM DR怎样推举?
1.依据PIM协议中hello包中携带的优先级推举DR,优先级越大的成为DR。
2.优先级相反,则比力接口IP地点的轻重,IP地点大的成为DR。
广泛组查询报文示例:
当构成员收到该广泛组查询报文后,会随机延时1-10s,以本身接口IP地点为源,本身到场的组播组地点为目标发送成员报告报文。
成员报告报文示例:
在收到了构成员发送的成员报告报文,组播路由器会主动天生关于该卑劣接口收到构成员报告报文的(*,G)表项。
示例图:
为什么产生的是(*,G)表项?
由于构成员发送的成员报告报文中没有协议组播源信息,那么也就分析,任何一个组播报文发送者都有约莫成为组播的发送源,以是用“ * ” 来标识,“ * ” 代表随意。
–IGMPv1的广泛组查询报文缺省60s发送一次,可以在接口下经过igmp timer query下令变动,V1,V2,V3都可以变动。
–经过变动查询器发送广泛组查询报文的时间,可以控制广泛组查询报文及其构成员报告报文的发送频率,以此提高收敛速率,但随之也会增长装备包袱。
PIM的hello包中默许协议的优先级为1,且DR是可以被抢占的。
–可以经过pim hello-option dr-priority下令修正优先级。
–非查询器收到成员报告报文也会天生(*,G)表项。
为什么仅有查询器才发送广泛组查询报文?
仅有查询器发送广泛组查询报文,如此可以变小链路带宽糜费,也减小了构成员的包袱,假如其他组播路由器也发送广泛组查询报文,那么将招致收到广泛组查询报文的主机都要回应成员报告报文,当组播路由器的数目增长,会招致主机包袱增重。
假如DR没效,其他组播路由器要多久才干检测到DR妨碍,并接替DR地点?
–PIM的hello发送周期为30s,holdtime为105s,也就是说,105s后假如没有收到其他组播路由器发送的PIM hello,那么这时该组播路由器将颠末DR的推举成为新的DR,并默许以30s为周期发送PIM hello。
–PIM hello也可以在接口下经过pim timer hello下令变动,hold time可以在接口下经过pim hello option holdtime变动。
总结IGMP的特点:
IGMPv1一共有两种报文,普查报文和成员报告报文,没有离组报文。
IGMPv1仅有一种机制,呼应克制机制,没有离组机制。
IGMPv1的缺陷:
1.IGMPv1没有查询器推举机制,必要PIM的DR来充任IGMPv1的查询器。
2.IGMPv1没有离组机制,对流量的控制性不佳。