一.基本概念
组播地址范围
IP组播常见模式分为ASM(任意组播源)与SSM(指定组播源)模式
组播MAC地址与单播MAC地址
IPv4的组播MAC地址(48bit)前24位为0x01005e,第25位固定为0,剩余23位可任意使用
组播IPv4到MAC的映射
组播IP前4位默认1110,之后5位映射可丢弃,低23位映射为组播mac地址的低23位。导致32个IP地址映射为同一个组播mac地址
什么是IGMP
IGMP(Internet Group Management Protocol)因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
人工配置组播信息的缺陷
由于接收者需要声明自己要接受哪个组的数据,路由器需了解哪些组播组存在的接收者。所有人工配置会导致实时性差、灵活性差、工作量大易出错等问题。
二.IGMP
IGMP作用
运行于主机与组播路由器之间 主机侧:通过IGMP协议向路由器通告组成员关系 路由器侧:通过IGMP协议维护组成员关系
IGMPv1工作机制
1.查询与响应
2.普遍组查询(General Query) 询问主机想加入哪个组(60s/次) 2)普遍组响应(Report)
告诉路由器要加入哪个网络 当同一个组主机A监听到同一组中的主机B已向路由器发送Report后,由于路由器只需知道有主机加入该组即可,所以主机A便不再发送Report,这种情况叫响应抑制机制。
3.成员加入(主动) 当路由器为发送General Query消息,且新接入主机要加入组时,新接入的主机D主动发送Report请求加入组播组
4.组成员离开---静默离开(仅v1存在的特性)
当路由器查询130s没有收到主机A的响应,则路由器认为A主机已不存在G1组中,A主机静默离开G1组,不发送离开Report
5.查询器选举(仅v1存在的特性) 由于自身没有选举机制,无法依据自身协议选举,所以要通过其他中间协议(如PIM)进行选举
6.地址结构 未使用默认时10s,不可该变对应静默离开时间的计算,两个路由器查询时间加该时间,(60s×2)+10s=130s
IGMPv2工作机制(最常用)
1.查询与响应(与v1一致)
2.成员加入(与v1一致)
3.组成员离开---主动离开 当主机B要离开G2组,主机B向路由器发送离开Report,路由器向G2组发送两次特定组查询,确认同组内是否还有其他主机,没有收到Report则认为G2组中已没有主机。
4.查询器选举 当路由器B与路由器A同时发送General Query,A、B路由器收到对方发送的查询消息,则Router ID小的最优先
5.地址结构 这里最大响应时间为10s,可改变
IGMPv3工作机制
1.查询与选举(于v1一致)
2.成员加入(与v1一致)
3.成员离开(与v2一致)
4.查询器选举(与v2一致)
5.针对SSM模型新功能 SSM(Source Specific Multicast)指定源组播
新加入一个字段可以指定接受或者拒绝某些组播源发送的数据,IN表示接受
IGMP Snooping工作机制
1)Snooping机制出现原因 由于组播地址在非成员group被泛洪,也就是当路由器接入交换机时会导致交换机将组播地址泛洪给直连的所有主机(组播二层泛洪),造成网络资源浪费,且存在安全隐患。
2)工作原理
第一步 路由器发送Query给主机B、C,交由CPU处理,通过交换机泛洪给了所有主机
第二部 主机A收到Query后不发Report,B、C正常通过交换机向CPU发Report,CPU将Report转发给路由器 通过以上两个步骤形成二层组播转发表,记录发送给同一个组播组MAC地址的端口号,当路由器再次向该group发送消息时,则会自动只向这个组播组MAC地址的端口发送消息