IGMP Snooping:

诞生原因:
由于IGMP报文是封装在IP报文内,属于三层协议报文,而二层设备不处理报文的三层信息,所以这个过程它并不知道,而且通过对数据链路层数据帧的源MAC地址的学习也学不到组播MAC地址(数据帧的源MAC地址不会是组播MAC地址)。这样当二层设备在接收到一个目的MAC地址为组播MAC地址的数据帧时,在以前学习的MAC地址表中就不会找到对应的表项。那么这时候,它就会采用广播方式发送接收到的组播报文,这样一来不但会造成带宽的极大浪费,而且影响网络安全。注意:对应224.xxx.xxx.xxx的报文时都直接回泛洪,因为只是协议报文。

IGMP Snooping ( Internet Group Management Protocol Snooping)是IPv4环境下,在二层交换机上提供的一种组播机制。通过侦听组播路由器和用户主机之间发送的IGMP协议报文,在交换机上创建二层组播转发表(组播组和该组播接收者的端口对应关系),当交换机转发组播报文时,报文按照交换机组播转发表转发。如果没有对应的组播转发表项,则泛洪到所有端口。否则,仅泛洪到有接收者的端口上去。

基本概念:

一、路由器端口:
路由器端口是指朝向组播路由器的端口,数据链路层组播设备从该端口接收组播报文。路由器端口分为如下两类:

  1. 动态路由器端口:能够接收到源地址不为0.0.0.0的IGMP Query(IGMP查询报文)报文或者PIM Hello报文的端口(端口开启了PIM)。动态路由器端口依赖于组播设备与主机之间交互的协议报文,动态维护。每个动态路由器端口启动一个路由器端口老化定时器,定时器超时则该路由器端口失效。
  2. 静态路由端口:用户使用配置命令指定的,不会老化。

二、组播组成员端口:
是指朝向组成员主机的端口,数据链路层组播设备从该端口发出组播报文。组播组成员端口简称为成员端口,分为如下两类:

  1. 动态成员端口:能够接收到IGMP Report(IGMP查询报文)报文的端口。动态成员端口依赖于组播设备与主机之间交互的协议报文,动态维护。每个动态成员端口启动一个成员端口老化定时器,定时器超时则该成员端口失效。
  2. 静态成员端口:用户使用配置命令指定的,不会老化。

出端口信息是二层组播转发表项中的一个重要信息,包括路由器端口和成员端口。总的来说,IGMP snooping将交换机的接口划分了路由器接口和组播组成员端口,并且都分为两种方式,第一种是静态,第二种是动态。

三、动态生成的组播转发表项(4部分内容):
包含路由器端口和组播转发表项,除此之外,每条表项还包括组播组地址和VLAN编号:

  1. 组播组地址:可以为组播IP地址,也可以为组播IP地址映射后的组播MAC地址。按照IP地址转发的模式可以避免MAC地址转发模式中的地址重复问题。
  2. VLAN编号,指定了二层广播域范围。如果使用了组播VLAN功能,入VLAN编号为组播VLAN的编号,出VLAN编号为主机所在的用户VLAN编号。否则入VLAN编号和出VLAN编号均为主机所在VLAN的编号。

运行机制:

  1. 当交换机收到IGMP通用查询报文时,如果收到通用查询报文的端口原来就是路由器端口,以太网交换机就重置该端口的老化定时器;如果收到通用查询报文的端口原来不是路由器端口,则交换机启动对该端口的老化定时器(老化时间为180秒或PIM Hello报文携带的Holdtime值,其中Holdtime缺省为105秒)。

  2. 当以太网交换机收到IGMP报告报文时,首先判断该报文要加入的IP组播组对应的MAC组播组是否已经存在。
    • 如果不存在则新建MAC组播组,并将接收报告报文的端口加入该MAC组播组中,同时启动该端口的老化定时器(健壮系数 × 普遍查询时间间隔 + 最大响应时间),将该端口所属VLAN下存在的所有路由器端口加入到此MAC组播转发表中,而且新建IP组播组,并将接收报告报文的端口加入到IP组播组中。
    • 如果该报文对应的MAC组播组已经存在,但是接收报告报文的端口不在该MAC组播组中,则将接收报告报文的端口加入MAC组播组中并启动该端口的老化定时器,然后判断此报文对应的IP组播组是否存在:如果不存在,则新建IP组播组并把接收报告报文的端口加入到IP组播组中,如果存在则将接收报告报文的端口加入到IP组播组中。
    • 如果该报文对应的MAC组播组已存在,并且接收报告报文的端口也已经存在于该MAC组播组,则仅重置接收报告报文的端口上的老化定时器(也可以理解为刷新)。

  3. 当以太网交换机收到对某IP组播组的离开报文,则会向接收此离开报文的端口发送所离开组的特定组查询报文,以确认此端口相连的主机中还有没有此组播组的其他成员,同时启动一个响应查询定时器(特定组查询消息发送时间间隔 × 健壮系数)。如果在该定时器超时的时候还没有收到该组播组的报告报文,则将该端口从相应MAC组播组中删去。如果MAC组播组没有组播成员端口时,交换机将通知组播路由器将该分支从组播树中删除。

  4. 快速离组机制:当一个交换设备的接口只连接一个设备的时候(access接口),当设备发送了离组报文的时候就会立刻关闭这个接口的相应流量转发,不会发送查询报文。

IGMP Snooping版本:
IGMP协议用于组成员关系管理,运行于三层组播设备和成员主机之间的网段,有v1、v2、v3三个版本(默认是版本2,只能处理IGMP版本1,2的报文,要对IGMPv3报文进行处理,只有配置版本3)。

在二层设备上配置IGMP Snooping版本,设备可以处理相应版本的IGMP报文。一般二层设备上配置和三层组播设备一致的版本。如果三层组播设备没有启用IGMP,则在二层设备上配置和成员主机相同或高于成员主机的版本。

同一VLAN内必须运行同一个版本的IGMP协议。如果VLAN内存在支持不同版本的主机,需要配置IGMP Snooping版本,使设备可以处理所有主机的报文。

华为设备相关配置:

一、快速离开配置:
[R1-vlan10]igmp-snooping prompt-leave //在对应vlan中进行配置,还可以在后面跟相应的策略,只针对对应的组播组进行控制,需要配置ACL进行配合。

二、IGMP snooping配置:
先配置全局,再配置相应的vlan。

  1. 执行命令igmp snooping enable,使能全局IGMP Snooping功能。
  2. 执行命令vlan vlan-id,进入VLAN视图。
  3. 执行命令igmp snooping enable,使能VLAN的IGMP Snooping功能。
    可以在系统视图下使用igmp snooping enable [ vlan { vlan-id1 [ to vlan-id2 ] } &<1-10> ]命令,使能多个VLAN的IGMP Snooping功能。

三、配置对应版本:

  1. 执行命令vlan vlan-id,进入VLAN视图。
  2. 执行命令igmp snooping version version,配置IGMP Snooping可以处理的IGMP版本。

IGMP Snooping proxy:

概念:
配置IGMP Snooping功能后,交换机对上游IGMP查询者的Query报文和下游主机的Report和Leave报文都不修改地转发。当网络中存在大量用户主机时,过量的IGMP报文给上游设备带来处理压力。配置IGMP Snooping Proxy功能后,交换机可以代替组播路由器向下游发送IGMP Query报文给接收者主机,也可以代替大量下游接收者主机向上游路由器发送IGMP Report和IGMP Leave报文,有效节约上游三层设备和本设备之间的带宽。

配置了IGMP Snooping Proxy功能的设备称为IGMP Snooping代理,在其上游设备看来,它就相当于一台主机;在其下游设备看来,它相当于一台查询器。

运行机制:

  1. IGMP普遍组查询报文:
    交换机向本VLAN内除接收接口以外的所有接口发送IGMP普遍组查询报文;同时根据本地维护的组成员关系生成报告报文,向所有路由器端口发送,不需要再等到主机回复进行转发。

  2. IGMP特定组查询报文/IGMP特定源组查询报文:
    若该组对应的转发表项中还有成员端口,则向所有路由器端口回复该组的报告报文,没有的话就不会做任何回应。这里的话不用告诉下行的设备。

  3. IGMP报告报文:
    •若不存在该组对应的转发表项,则创建转发表项,将接收接口作为动态成员端口添加到出接口列表中,并启动其老化定时器,然后向所有路由器端口发送该组的报告报文;这里因为是新加入的组播组,所以要求必须转发到路由器,路由器才能下放流量。
    •若已存在该组对应的转发表项,且其出接口列表中已包含该动态成员端口,则重置其老化定时器;不需要转发到路由器,因为路由器现在正常下放组播的流量。
    •若已存在该组对应的转发表项,但其出接口列表中不包含该接收接口,则将该接口作为动态成员端口添加到出接口列表中,并启动其老化定时器;这里也不需要转发到路由器,因为流量是已经下发的,只需要多添加下放的接口即可。
    •这里需要注意的是交换机开启了IGMP Snooping的交换机后,下游主机就不会互相抑制了。因为不会进行成员接口的信息的互相转发的。一个交换机组成员接口只会接收一个相同的组成员报告报文,也就是接收最后的报告报文,不同组的报告报文可以同时存在同一个接口。

  4. IGMP离开报文(仅在IGMPv2中存在):向接收接口发送针对该组的特定组查询报文。只有当删除某组播组对应转发表项中的最后一个成员端口时,才会向所有路由器端口发送该组的离开报文。

华为设备配置:

  1. 执行命令vlan vlan-id,进入VLAN视图。
  2. 执行命令igmp snooping proxy,使能IGMP Snooping Proxy功能。

注意:

  1. 如果与VLAN对应的三层VLANIF接口使能了三层组播功能(例如IGMP、PIM),则不能在该VLAN内使能IGMP Snooping Proxy功能。
  2. 在指定VLAN内,可同时配置查询器和报文抑制功能共同完成IGMP Snooping Proxy功能。如果配置了IGMP Snooping Proxy功能,不能再配置查询器或报文抑制功能。

组播VLAN:

概述:
在igmp snooping基础之上配置,目的是解决在trunk链路上对不同VLAN用户复制多份数据占用带宽的问题(只针对组播数据流量而言),trunk接口的路由器方向需要配置为多个子接口。路由器发送查询的报文按正常的vlan进行转发。

对于通用查询报文,会每个VLAN都发送,但是对于其他的被动的发出的查询报文( IGMP特定组查询报文/IGMP特定源组查询报文),会根据对方请求的vlan发送,在交换机上开启了组播vlan,也就是说交换机发送回来的组播信息都通过组播vlan,包括被动查询报文。

例如:上游路由器不必在每个用户VLAN(VLAN2和VLAN3)内都复制一份组播流(查询报文),而是数据流在组播VLAN(VLAN4)内复制一份后发送给二层设备(连接下层的接口PVID只要属于对于的组播VLAN,都会向下层进行发送)。这样就避免了组播流在上游设备的重复复制,不仅节省了网络带宽,又减轻了上游路由器的负担。

具体原因是,路由器接收到的报告报文都来自组播vlan的,所以路由器下放的所有组播流量都通过组播vlan进行下发。


基本概念:

  1. 组播VLAN:网络侧接口所属VLAN,用于实现组播流的汇聚。一个组播VLAN可以绑定多个用户VLAN。
  2. 用户VLAN:用户侧接口所属VLAN,用于接收组播VLAN的组播数据。一个用户VLAN只能加入一个组播VLAN。

对比普通二层组播:

  1. 如果不同VLAN的用户有相同的组播数据需求时,上游路由器仍然需要发送多份相同报文到不同VLAN中。
  2. 属于不同VLAN(VLAN2和VLAN3)的用户需要接收相同的组播流,上游路由器R1就会把组播数据在每个VLAN内都复制一份然后发送给下游交换机S1。这样,既造成了路由器与二层设备之间带宽的浪费,也增加了路由器额外的负担。

华为设备相关配置:
一、首先配置用户VLAN:

  1. 执行命令igmp snooping enable,使能全局IGMP Snooping功能。
  2. 执行命令vlan vlan-id,创建VLAN并进入VLAN视图。
  3. 执行命令igmp snooping enable,使能VLAN的IGMP Snooping功能。

二、配置用户VLAN绑定到组播VLAN

  1. 执行命令igmp snooping enable,使能全局IGMP Snooping功能。
  2. 执行命令vlan vlan-id,创建VLAN并进入VLAN视图。
  3. 执行命令igmp snooping enable,使能VLAN的IGMP Snooping功能。
  4. 执行命令multicast vlan enable,使能组播VLAN功能,将当前VLAN配置为组播VLAN。
  5. 执行命令multicast vlan user-vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>,配置组播VLAN和用户VLAN的对应关系,将用户VLAN绑定到组播VLAN。

查看命令: 使用命令display multicast vlan mvlan [ vlan-id ],查看组播VLAN的信息。

参考资料:华为hedex文档

IGMP Snooping和组播VLAN技术原理相关推荐

  1. 2022-10-31 网工进阶(三十三) IP组播-流量模型、组播概念、组播报文结构、组播地址与MAC、组播网络架构、组播服务模型、组播数据转发原理(RPF检查、组播分发树、组播协议介绍)

    IP组播概念 流量模型 网络中存在各种各样的业务,从流量模型看一般可以将业务分为两类: 点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需 ...

  2. WIFI6:WLAN 组播转单播原理与测试

    1.wlan 组播面临的问题 许多视频应用给接收设备传输数字信息都需要使用IP组播,由于组播流量的传递并不可靠,而在无线网络中,广播/组播报文会使用最低速率发送广播报文,所以当广播报文比较多时,会相对 ...

  3. 计算机网络之网络层:10、IP组播、IGMP协议、组播路由选择协议

    网络层:10.IP组播.IGMP协议.组播路由选择协议 思维导图: TCP/IP协议: IP数据报的三种传输方式: IP组播地址: 硬件组播: 因特网范围内组播: IGMP协议: IGMP协议的俩个工 ...

  4. IGMP协议——IP组播之组管理协议

        网络层的组播用于向某些特定的主机群发消息,而不必给每一个主机都单独发送消息.与单播路由相比,相同点是路由算法在网络层仍发挥着重要作用,但是不同点是处理组播包的路由器必须建立和维护组播连接的状态 ...

  5. 【实验】通过IGMP实现接收组播视频信息案例

    拓扑图 规格 适用于所有版本.所有形态的AR路由器. 组网需求 RouterA的GE0/0/1连接组播源,GE0/0/0连接RouterB.RouterB的GE0/0/1连接RouterA,GE0/0 ...

  6. lwip组播实现和原理-STM32F407

    实现 在lwipopts.h中定义LWIP_IGMP #define LWIP_IGMP 1 LWIP初始化添加进入组播代码 err_t err;struct ip_addr group_addr; ...

  7. IEEE 802.1Q VLAN技术原理

    文章出处:http://hi.baidu.com/x278384/item/d56b0edfd4f56a4eddf9be79 在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN.而且, ...

  8. 802.1Q VLAN技术原理

    文章出处:http://hi.baidu.com/x278384/item/d56b0edfd4f56a4eddf9be79 在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN.而且, ...

  9. 【VLAN技术原理详解与实战】图文并茂,让你看一遍就理解VLAN

    目录 VLAN技术是什么? 关于VLAN 交换机的链路类型 交换机的接口类型 VLAN配置具体流程

最新文章

  1. c#课程设计---猜猜看游戏
  2. POJ 2323 贪心
  3. Orac and LCM #641(div2) c题--求质因数次小指数
  4. mysql的sql执行原理图_性能测试MySQL之SQL运行原理
  5. pandas之Series
  6. 【汇编语言与计算机系统结构笔记05】汇编的系统结构,从C代码生产汇编代码,一个具体的、经典的数据传送指令(mov)实例与分析
  7. WUSTOJ 1285: Factors(Java)
  8. 2 docker镜像
  9. 业务逻辑配置化的可选技术方案
  10. Vim快捷键(四):Vim查找与替换
  11. 基于opencv的人脸识别
  12. 威富通对账单下载并且解析为对象列表展示
  13. Geforce 错误代码 ERROR CODE:0x0003问题方法
  14. 东华大学2020考研计算机OJ题目解答分享——进阶篇(34)
  15. 世界名画陈列馆(最少机器人问题和不重复监视问题)
  16. 最成功的失败学——《创游记:游戏团队创业成长之路》
  17. 图匹配(Graph Matching)入门学习笔记——以《Factorized Graph Matching》为例(一)
  18. 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程
  19. 输出100以内的所有质数(每行10个)
  20. SpringBoot——JPA的使用、构建restful风格的JPA

热门文章

  1. 图标库素材大全:Icons8 for mac
  2. 02-Java后端框架-SSM简单总结
  3. 一个 SAP 开发工程师的成长史 - 关于信息素养和数字化资产的思考
  4. 微软安全软件OneCare Live
  5. uni-app随机数生成器
  6. 应届生秋招如何准备?
  7. 数字化转型2020,如何加速传统IT到企业云的过渡?
  8. linux neo4j 教程,Neo4j 入门教程 - 安装
  9. SpiderFlow(图形化爬虫)
  10. 在CentOS 5里使用 vault.centos.org 作为yum源