IGMP基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IGMP基础相关的知识,希望对你有一定的参考价值。
IGMP基础IGMP消息封装在IP报文中,IGMP消息封装在IP报文中,且TTL字段值为1,表示IGMP消息只在本地网段传播。
IGMP版本:
1、 IGMPv1 版本(由 RFC 1112 定义)
2、 IGMPv2 版本(由 RFC 2236 定义)
3、 IGMPv3 版本(由 RFC 3376 定义)
IGMPv1报文类型:
1、 普遍组查询报文(General Query):查询器向共享网络上所有主机和路由器发送的查询报文,用于了解哪些组播组存在成员。
2、 成员报告报文(Report):主机向组播路由器发送的报告消息,用于申请加入某个组播组或者应答查询报文。
IGMPv1查询器选举:
当一个网段内有多个组播路由器时,需要选举出一个 IGMP 查询器,由查询器发送查询报文,负责该网段的组成员关系查询。
在 IGMPv1 中,由组播路由协议 PIM 选举出唯一的组播信息转发者(Assert Winner 或 DR)作为 IGMPv1 的查询器。
PIM选择DR规则:
1、 DR优先级较高者获胜(网段中所有PIM路由器都支持DR优先级)。
2、 如果DR优先级相同或该网段存在至少一台PIM路由器不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。
IGMPv1查询和响应过程:
1、查询器每隔60s向网络中发起查询,目的地址为224.0.0.1(所有设备),组播地址为0.0.0.0,所以也叫普遍组查询。
2、组成员收到信息后启动定时器(0-10s)。
3、最先定时器超时的组成员回应报告报文(目的地址为加入的组播地址,组地址字段为加入的组播地址)。
4、其他组成员侦听到此报告报文后就停止计时器,抑制报告报文的发送,这样可以让查询器只收到一份报告报文,减少网段上的流量。
5、查询器收到报告报文后,了解本网段上的组成员,并由组播路由协议生成(*,G)表项,一旦有G的目的地址到达路由器,就向该网段转发。
IGMPv1新成员加入过程:
1、新成员侦听到网段中有没有想要加入组的数据报文。
2、若有,就不做任何动作,开始接受组播数据;若没有,就发送一个以目的地址和组地址字段为要加入组的组播地址的report报文,请求加入该组。
3、路由器收到report请求报文后,了解到本网段出现了新的组成员,所以生成(*,G)表项,当G的组播流量到达时,就向该网段转发。
IGMPv1组成员离开:
1、IGMPv1为默默的离开,没有定义组成员离开的报文。
2、当离开的组成员收到路由器发来的查询报文时,就不会做出响应。
3、如果路由器在查询时间超时(130s)后收不到任何查询报文的响应信息,就认为该网段上没有该组的组成员,删除对应组的组播转发表项。
IGMPv2报文类型:
1、 普遍组查询报文;(与IGMPv1一样)
2、 成员报告报文;(与IGMPv1一样)
3、 特定组查询报文(Group-Specific Query):查询器向共享网段内指定组播组发送的查询报文,用于查询该组播组是否存在成员。
4、 成员离开报文(Leave):成员离开组播组时主动向路由器发送的报文,用于宣告自己离开了某个组播组。
IGMPv2查询器选举:
比较收到报文的源地址和自己接口地址大小,IP地址小的路由器成为查询器。
最大响应计时器:
1、普遍组查询最大响应计时器为0-10s。
2、特定组查询最大响应计时器为0-1s。
IGMPv2组成员关系查询和响应过程:
分为两种:
1、常规查询与响应是和IGMPv1是一样的。
2、指定组查询,查询特定组是否还有组成员,目的地址和组地址字段为特定组地址,指定组查询不是像IGMPv1一样是周期发送的,只有当最后一个响应者离开的时候发送。
指定组查询响应:因为特定组查询2次后(默认为2s)收不到响应信息就会删除组播转发表项,所以特定组查询的响应计时器为0-1s。
可以向下兼容IGMPv1的成员关系报告。
IGMPv2新成员加入组过程(与IGMPv1相似):
1、新成员侦听到网段中有没有想要加入组的数据报文。
2、若有,就不做任何动作,开始接受组播数据;若没有,就发送一个或者多个(IGMPv2的优化)以目的地址和组地址字段为要加入组的组播地址的report报文,请求加入该组。
3、路由器收到report请求报文后,了解到本网段出现了新的组成员,所以生成(*,G)表项,当G的组播流量到达时,就向该网段转发。
IGMPv2组成员离开过程:
1、当最后一个响应者的组成员要离开组的时候发送以目的地址为224.0.0.2,组播地址字段为离开组的组播地址的离开信息。
2、查询器收到离开信息之后,就会触发特定组的查询,在发送2次(每次1s)特定组的查询仍然没有收到回应消息时,就删除组播转发表项;如果收到回应消息,则表明网段里还有该组的组成员,不删除表项。
IGMP SSM Mapping:
通过在路由器上静态配置 SSM 地址的映射规则,将 IGMPv1 和 IGMPv2 报告报文中的
(*, G) 信息转化为对应的(S, G)信息,以提供 SSM 组播服务。缺省情况下, SSM 组地址范围为 232.0.0.0~232.255.255.255。
以上是关于IGMP基础的主要内容,如果未能解决你的问题,请参考以下文章