PS:本篇仅挑选作者认为重要的模块,并不全面仅供复习参考,具体请自行查阅相关书籍。设有H3CNE-H3CTE学习博客专栏,敬请关注。
组播网络中,组播接收者需要加入组播组,路由器需要管理和维护组播组
为防止形成链路层广播,网络中的二层交换设备也需要了解网段内的组播组和组播成员信息
组播组管理协议工作机制:
1.主机加入和离开组播组
2.路由器维护组播组
3.查询器选举机制
4.成员报告抑制机制
IGMPv1的协议消息:
(1)普遍组查询
(2)成员报告
路由设备------------------------------PC
周期性发普遍组查询
PC若确实加入了某个组播组,则回复成员报告
查询器选举机制:如果在网段内有多台路由设备发普遍子查询,从中选一台发普遍子查询,该台设备称为查询器。(IGMPv1自己无法选择,需要上层组播路由协议帮v1选)
成员报告抑制机制:
路由设备-----------------交换机---------接收者A
--------接受者B(都加入组播组228.1.1.1)
路由设备只需要端口下有位于某组播组的接受者即可,并不需要知道接收者数目。
假设路由设备周期性发普遍组查询,接收者A先发送成员报告,此成员报告B也会收到。接收者B收到接收者A的成员报告后,就不会再返回成员报告。
IGMPv1的这些工作机制,IGMPv2都有。
IGMPv1的缺陷:接收者 离开 组播组 不会主动通知路由设备(默默离开)
路由设备发送了3个普遍组查询后都没收到接收者的成员报告,则会将其从接收者条目中删除掉!
IGMPv2和v1相比:
(1)v2可以自己选择查询器
(2)增加了离开组过程 ,接收者发leave消息,,路由设备之后发指定组查询(询问是否还有其他接收者位于该组播组),如果还 有接收者位于该组播组,返回成员报告,路由设备不维护接收者列表。
目前大部分应用都是基于IGMPv3
IGMPv3概述:
1.IGMPv3增加了对源过滤的支持:
IGMPv3主机不仅可以选择接收某个组播组的数据,还可以选择接收或拒绝某些源发送到这个组播组的组播数据
3.IGMPv3定义了新的报文类型和格式
4.IGMPv3 Report报文目的组播地址变为224.0.0.22
5.IGMPv3取消成员报告抑制机制
IGMPv3消息 两大类:
1.查询消息:普遍组查询,指定组查询,指定源组查询
2.成员报告消息:实现加入和离开功能
IGMPv3过滤模式和源列表:
1.IGMPv3主机为接口上每一个组播组都维护一个表项信息,其格式为:(组地址,过滤模式,源列表)
2.过滤模式包含INCLUDE和EXCLUDE两种类型:
(1)INCLUDE模式表示只接收来自于在源列表中列出的组播源发送的组播数据包
(2)EXCLUDE模式表示只接收来自于不在源列表中列出的组播源发送的组播数据包
3.源列表包含0个或多个IP单播地址,通常用集合形式来表示
IGMPv3主机侧维护的组状态:
IGMPv3组播组有当前状态、过滤模式改变以及源列表改变三种状态,对应的组记录也有三种类型
1.当前状态记录
2.过滤模式变化记录
3.源列表变化记录
主机维护过程中可能会发生:
1.表项内容不变
2.过滤模式变化
3.源列表变化
(1)当主机接口维护的组状态发生变化时,会主动发送组记录类型为过滤模式变化或源列表变化的Membership Report报文
(2)当接收到Membership Query报文时,会响应组记录类型为当前状态的Membership Report报文
IGMPv3路由器侧维护的组状态:
路由器为接口上的每一个组播组维护一个状态,该状态包含组过滤模式和源列表以及定时器
1.组状态格式为(组地址,组定时器,过滤模式,源记录列表)
2.源记录格式为(源地址,源定时器)
每个组播组只对应一种过滤模式
1.对于INCLUDE模式,源记录列表包含该接口网段的主机需要接收的组播源列表,表示为:INCLUDE(S,G)
2.对于EXCLUDE模式,源记录列表包含两类源列表,第一类与过滤模式相反,是主机需要接收的组播源列表S1;第二类是主机不需要接收的组播源列表S2,表示为:EXCLUDE(S1,S2,G)
不同版本的互相兼容:
默认情况下,2层交换机是无法识别IGMP消息的,收到组播,当广播处理
因此,需要开启IGMP监听协议(snooping),即2层交换机能识别途径它的IGMP消息,并建立组播交换表
一个组播MAC可以对应多个端口
不同VLAN组播点播处理: