IGMP 基本机制
IGMP(Internet Group Management Protocol)因特网组管理协议,是 TCP/IP 协议族中负责IPv4 组播成员管理的协议,用来在 IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
普通组查询报文地址:224.0.0.1(针对网络中所有主机与路由器)
IGMPv2 中成员离开组报文发送地址224.0.0.2
IGMP 版本 V1
1
IGMPv1 报文格式
版本字段包含IGMP版本标识,因此设置为1。
类型
成员关系查询 (0x11)
成员关系报告 (0x12)
组地址
当一个成员关系报告正被发送时,组地址字段包含组播地址。
当用于成员关系查询时,本字段为0
2
IGMPv1报文
普通组查询报文:查询器向共享网络上的所有主机与路由器发送查询报文(目标地址224.0.0.1),用于了解那些组播组存在成员。
成员报告报文:主机向查询器发送的报告报文,用于申请加入某个组播组或应答查询报文。
3
IGMPv1 工作机制
1、查询器周期性向目标 224.0.0.1 发送普通组查询报文。
2、接收到查询报文的主机,本地启动一个最大响应时间(0-10S)。
3、响应时间到期,主机就会向查询器发送一个 report 报文,其他主机收到这个报文后,停止计时器,不在向查询器发送相同组的 report 报文 。
4、查询器收到主机的 report 报文后,则由组播路由协议生成该组播组的的路由表项。
5、网段一旦有该组的组播数据流时,就会像该网段转发。
4
IGMPv1 成员加入与离开
成员加入:
新成员加入无需等待普通组查询报文,主动发送组播组的加入报文(成员报告报文)
成员离开:
IGMPv1 无离开组报文,主机离开后只是不对查询器的查询报文做响应。
IGMP 版本 V2
1
IGMPv2 报文格式
类型
成员关系查询(0x11)
常规查询:用于确定哪些组播组是有效的,即该组是否还有成员在使用,常规查询地址由全零表示
指定组查询:用于查询特定的组播组是否还有组成员
版本2成员关系报告(0x16)
版本1成员关系报告(0x12)
离开组消息(0x17)
2
IGMPv2 报文
组地址
在成员查询消息中,发送一个常规查询时组地址域设为0,当发送一个特定组查询时,则应设置组的地址。
在成员报告或离开组的消息中,组的地址域保留了要报告或要离开的地址。
最大响应时间
IGMPv2 对普通组查询报文最大响应时间做了改进,可人为改动,取值范围(0-25S),用于控制组成员对查询报文的响应速度。
3
IGMPv2 查询器选举
计时器为查询间隔的两倍
IGMPv2 离开组机制
1、主机需离开组播组时,会发送一个 leave 报文。
2、查询器收到后,会触发一个特定组查询报文,查询该组是否还存在有其他接收者。
3、特定组查询报文默认每秒发一次,发送两次。
4、如果特定组查询报文发送后,接收到主机的报告报文,则组播路由器继续维护该组成员关系。
5、如果特定组查询报文发送后,在最大响应时间(2S)到期后,未收到主机报告报文,则删除该组组播路由表项。
IGMP 版本 V3
IGMPv3 除了支持原特定组播外,其工作原理与 IGMPv2 相比,并没有本质的改变,只是在某些地方做了改进和优化。
优化点:
1、向后兼容 IGMPvl 和 IGMPv2
2、主机可以定义要接收的组播源地址
3、在 IGMPv3 中,取消了前面版本中的响应抑制功能
4、关系成员报告报文发送给目的地址 224.0.0.22
1
IGMPv3 工作机制
2
IGMP 版本比较
IGMP snooping
IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。
由于 IGMP 报文是封装在 IP 报文内,属于三层协议报文,而二层设备不处理报文的三层信息,所以这个过程它并不知道,而且通过对数据链路层数据帧的源 MAC 地址的学习也学不到组播 MAC 地址(数据帧的源MAC 地址不会是组播 MAC 地址)。这样当二层设备在接收到一个目的 MAC 地址为组播 MAC 地址的数据帧时,在以前学习的 MAC 地址表中就不会找到对应的表项。那么这时候,它就会采用广播方式发送接收到的组播报文,这样一来不但会造成带宽的极大浪费,而且影响网络安全。
运行 IGMP Snooping 的路由器收到主机和上游设备之间传递的 IGMP 消息时,路由器的 IGMP Snooping 模块分析消息携带的信息,根据这些信息建立和维护二层组播转发表,转发表中包括 VLAN 的编号,组播组地址,路由器端口(相当于上游端口),组播组成员端口(相当于下游端口)。当路由器接收到组播报文时,依据报文所属 VLAN 和报文的目的地址(即组播组地址)查找是否存在匹配的转发表项。
如果存在,则将报文发送到所有组播组成员端口。如果不存在,则丢弃该报文或将报文在 VLAN 内广播。对于不存在匹配的转发表项的组播报文,缺省情况下在VLAN内广播,也可以通过配置丢弃一切未知组播报文。
本文作者:小王sir
HCIE-R&S
多年互联网从业经验,
曾负责湖北高校大型网络项目实施与管理;
并辅导院校学生参与湖北省计算机网络大赛
获一等奖以及新华三网络大赛获一等奖。
授课内容:
路由与交换HCIA、HCIP、HCIE、H3CNE、H3CSE
掌握技巧:
熟练掌握TCP/IP协议,
精通VLAN、生成树、OSPF、IS-IS、BGP协议;
熟悉组播、QOS、MPLS、VPN、IPV6等协议
熟悉cisco、华为、神州数码等网络产品配置。
项目经验:
中国联通武汉高校网络项目实施与管理
湖北青年职业学院校园网络建设与管理
华山医院哈佛楼无线改造项目
上海格致中学校园网改造项目
教学理念:
以学生为本、知识传授、能力培养、素质提高、协调发展