什么是IGMP协议?

Posted 养一只金毛呗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是IGMP协议?相关的知识,希望对你有一定的参考价值。

IGMP协议

定义

  • 组播组管理协议

功能

  • 管理主机加入和离开组播组
  • 维护本地组播组信息表

IGMPv1

主机加入

  1. 路由器向开启了IGMP的端口发送查询报文,询问该接口下有没有组播接收者
  2. 收到查询报文的主机,如果希望接收某个组的组播,则向路由器回复report报文,把希望加入的组播组地址通告给路由器;如果不希望接收任何组播,则不回复
  3. 收到report报文后,路由器就会在本地建立组播组信息表,记录该组的(*、G)表项,后续将会转发该组组播

主机离开

  • 默默离开
  • 当路由器在后续的查询报文中没有收到某个组的Report报文时,路由器将会把该组的(*、G)表项删除,不再转发该组组播

查询器选举

  • 一个网段中只能有一个路由器负责处理组播,该路由器就是查询器
  • IGMPv1没有查询器选举机制,只能依靠上层组播路由协议选举

成员报告抑制机制

  • 主机以组播224.0.0.1的地址发送report报文,该报文也会发送至其他主机
  • 收到该report报文的主机会启动计时器(10秒);在该计时器时间内,如果本机也希望加入该组播组,不会重复发送report报文

主机希望加入某个组播组,不用等到路由器发送查询报文,会直接向路由器发送Report报文

IGMPv2

主机加入

  • 路由器会周期性向开启了IGMP的接口发送普遍查询报文
  • 其他和IGMPv1一致

主机离开

  1. 主机主动向路由器发送Leave报文,通告希望离开的组播组地址
  2. 路由器收到leave报文后,会发送指定组查询报文,询问该网段内是否还有主机希望接收该组的组播
  3. 如网段内还有该组接收者,则该接收者会向路由器回复membership-report报文,通告路由器本机还希望接收该组播;如果不希望接收该组播,则不回复
  4. 如接收到membership-report报文,则不对组播组信息表做任何操作;如没有接收到任何报文,则删除该组播组信息

查询器选举

  • 自动选举
  • IP地址小的优先

成员报告抑制机制

  • 与IGMPv1一致

IGMPv3

主机上维护的组播信息

  • 组地址 、过滤模式 、源列表
  • 主机通过发送membership-report报文向路由器通告本机当前组播信息状态、过滤模式变化、源列表变化

路由器维护的组播信息

  • 组状态(组地址、组定时器、过滤模式、源列表)
  • 源列表(源地址、源定时器)

主机加入

  1. 路由器发送普遍查询报文
  2. 收到普遍查询报文的主机,如果希望加入某个组播组,就会发送membership-report报文;报文格式会包含组地址、源过滤模式、源列表
  3. 路由器收到report报文后,会根据报文的汇总信息,生成相应的组播信息表项

主机离开

  • 离开某个组播源

    1.主动向路由器发送membership-report报文、报文会包含希望变更的组播组地址、离开的源地址
    2.路由器收到该报文后,会发送指定组查询报文,询问是否还有其他主机希望继续接受该组播源在该组播地址发送的组播
    3.如果未收到回复,路由器则在组状态中删除该组播源;如果收到,则不做任何操作
    
  • 离开某个组播组

    1.主动向路由器发送membership-report报文;报文包含希望离开的组播组和TO_IN(NULL)消息
    2.路由器收到该报文,会发送指定组查询报文,询问是否还有其他主机希望继续接收该组播
    3.如果未收到回复,路由器则删除该组播组的信息记录;如果收到,则不做任何操作
    

取消成员报告抑制机制

IGMP Snooping

  • 用于在交换机上建立二层组播信息

  • 二层交换机在不使能IGMP Snooping的情况下,默认把组播报文当做广播处理

  • 工作原理:

    1.开启IGMP Snooping后,交换机会把收到普遍查询报文的接口设置为路由器接口
    2.交换机只会把从路由器接口收到的组播报文转发至成员端口;从非路由器端口收到的组播报文丢弃
    3.交换机从某个端口收到IGMP Report报文后,就自动吧该端口加入到组播转发表的成员端口
    4.交换机只会把Report报文从路由器端口转发,所以其他主机不会收到Report报文,不会触发成员报告抑制机制
    

组播VLAN

  • 路由器只在组播VLAN内复制数据,减轻路由器负担,节省网络带宽资源
  • 二层交换机在该组播Vlan的所有子Vlan中复制组播报文

相关命令

[h3c]igmp							//进入IGMP视图
[h3c]igmp version 'version'			//配置IGMP版本
[h3c-GigabitEthernet0/0]igmp enable	//接口开启IGMP

组播概述

定义

  • 点到多点的通讯模式

组播关注的问题

  • 如何标识接收者:组播地址
  • 组播数据如何转发:组播分发树
  • 组播转发路径如何建立:组播路由
  • 终端设备如何加入/离开组播组:IGMP
  • 组播组成员信息如何维护:IGMP

解决方案

  • 组播地址:标识组播接收者
  • 组播分发树:定义组播数据转发方式
  • 组播路由协议:建立组播转发路径
  • IGMP:定义终端设备加入/离开组播组,维护组播组成员信息

组播地址

地址范围

  • 224.X.X.X-239.X.X.X

地址分类

  • 本地协议预留地址:224.0.0.0-224.0.1.255
  • 用户组播地址:224.0.2.0-238.255.255.255
  • 本地管理地址:239.0.0.0-239.255.255.255
  • 组播MAC地址:01-00-5E-XX-XX-XX

因为组播IP地址第5-9位不映射到组播MAC地址,所以某些组播IP对应的组播MAC会有重复,通过组播IP来判断是否是本机所需要的组播报文

组播模型

ASM

  • 任意信源组播
  • 不区分组播源,所有组播源共享同一个组播信息表

SSM

  • 指定信源组播
  • 区分组播源,每个组播源维护独立的组播信息表

IRF

定义

  • 智能弹性架构
  • H3C的堆叠技术
  • 通过把多台交换机虚拟成一台逻辑设备来提高可靠性和性能

优势

  • 大幅简化配置管理
  • 提高整体设备性能
  • 设备扩展简便
  • 大幅提高设备可靠性
  • 消除逻辑环路,不需要运行任何防环机制

工作流程

  1. 建立物理连接
  2. 通过向所有逻辑堆叠口发送Hello报文来收集堆叠组的拓扑信息
  3. 选举Master设备:选举失败的设备会自动重启,重启完成后成为Slave设备
  4. 进入到IRF的维护阶段

Master设备选举规则

  1. 优先级大的优先,优先级默认为1
  2. 系统运行时间长的优先
  3. MAC地址小的优先

IRF堆叠协议热备份

  • 堆叠组内的所有交换机会自动同步配置文件,但是成员交换机允许过程中产生缓存表项并不包含在配置文件中
  • 热备份机制会自动吧运行过程中的缓存表项进行同步,比如邻居表、协议路由表、ARP表等。

IRF形成的必要条件

  1. 堆叠口中的物理接口必须使万兆以上的接口
  2. 一台设备上最多有2个堆叠口
  3. 一台设备的1号堆叠口必须连接到另一台设备的2号堆叠口
  4. 一台设备上的2号堆叠口对应的物理口的ID必须大于1号堆叠口对应的物理口的ID
  5. 所有堆叠的物理设备的操作系统必须一致

配置步骤

  1. 更改设备编号
  2. 保存配置,手动重启更改了设备ID的交换机
  3. 手动Shutdown要加入到堆叠口中的物理口
  4. 创建虚拟堆叠口,并加入相应的物理口
  5. 手动开启物理口
  6. 保存配置
  7. 激活IRF配置

相关命令

[h3c]irf-port 'member-id/port-id'					//创建IRF堆叠口
[h3c-irf-port1/1]port group interface 'port-id'		//物理口加入到堆叠口
[h3c]irf member 'member-id' renumber 'new-member-id'//更改IRF设备ID
[h3c]irf-port-configuration active					//激活IRF配置

以上是关于什么是IGMP协议?的主要内容,如果未能解决你的问题,请参考以下文章

在 无线路由 设置里 禁用 IGMP

第7章 网络层协议_IGMP协议

IGMP协议

IGMP协议原理

网络层IGMP协议

IGMP协议