0
点赞
收藏
分享

微信扫一扫

IGMP-Snooping相关学习

独孤凌雪 2022-03-30 阅读 117

IGMP-Snooping相关学习

定义

IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在数据链路层的转发。

目的

在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如图1所示,在组播用户和三层组播设备Router之间,组播报文要经过二层交换机Switch。
在这里插入图片描述
当Router将组播报文转发至Switch以后,Switch负责将组播报文转发给组播用户。由于组播报文的目的地址为组播组地址,在二层设备上是学习不到这一类MAC表项的,因此组播报文就会在所有接口进行广播,和它在同一广播域内的组播成员和非组播成员都能收到组播报文。这样不但浪费了网络带宽,而且影响了网络信息安全。

IGMP Snooping有效地解决了这个问题。配置IGMP Snooping后,二层组播设备可以侦听和分析组播用户和上游路由器之间的IGMP报文,根据这些信息建立二层组播转发表项,控制组播数据报文转发。这样就防止了组播数据在二层网络中的广播。

基本原理

IGMP Snooping是二层组播的基本功能,可以实现组播数据在数据链路层的转发和控制。当主机和上游三层设备之间传递的IGMP协议报文通过二层组播设备时,IGMP Snooping分析报文携带的信息,根据这些信息建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。

如图1所示,当组播数据从三层组播设备Router转发下来以后,处于接入边缘的二层组播设备Switch负责将组播数据转发给用户主机,使用户收看所点播的节目。当Switch没有运行IGMP Snooping时,组播数据在二层被广播;当Switch运行了IGMP Snooping后,组播数据不会在二层广播,而是会被Switch发送给指定的接收者。

使能IGMP Snooping功能后,Switch会侦听主机和上游三层设备之间交互的IGMP报文,通过分析报文中携带的信息(报文类型、组播组地址、接收报文的接口等),建立和维护二层组播转发表,从而指导组播数据在数据链路层按需转发。
在这里插入图片描述

基本概念

如图2所示,三层设备Router从组播源接收数据并向下游转发,在二层组播设备SwitchA和SwitchB上分别运行IGMP Snooping,HostA、HostB和HostC为接收者主机(即组播组成员)。
在这里插入图片描述
结合图2,介绍IGMP Snooping中相关端口的概念。
在这里插入图片描述
路由器端口和成员端口,是二层组播转发表项中的一个重要信息:出接口。其中路由器端口相当于上游接口,成员端口相当于下游接口。通过协议报文学习到的端口,对应的为动态表项;而手工配置的端口,对应的为静态表项。

工作机制

二层组播设备运行了IGMP Snooping后,收到不同的IGMP协议报文会进行不同的处理,并在此过程中建立起二层组播转发表项.
在这里插入图片描述
此外,当二层组播设备收到PIM Hello报文时,向VLAN内除接收接口外的其他所有接口转发,并对接收接口做如下处理:
1).如果路由器端口列表中已包含该动态路由器端口,则重置老化定时器。
2).如果路由器端口列表中尚未包含该接口,则将其添加进去,并启动老化定时器。

IGMP Snooping Over VXLAN

1.背景信息
在VXLAN网络中,VTEP在收到组播流量后,缺省情况下是通过在BD内广播的方式发送给接收者。这种方式既增加了网络的流量负荷,又使很多未点播相应节目的接收者收到了不需要的组播流量,造成了带宽浪费。为了解决上述问题,可以在VXLAN网络中部署二层组播特性,即IGMP Snooping Over VXLAN,实现组播流量在VXLAN网络中按需转发。

2.实现流程
在这里插入图片描述
如图1所示,组播源和组播接收者分别连接在VXLAN网络中不同的VTEP上。其中,在VTEP1和VTEP2之间、VTEP1和VTEP3之间、VTEP2和VTEP3之间建立VXLAN隧道。利用IGMP Snooping Over VXLAN可以实现组播流量在BD内的精确转发,保证组播数据在VXLAN隧道和用户侧接口都能按需复制,有效地节省VXLAN网络的带宽占用。

IGMP Snooping Over VXLAN的实现过程如下:

a.在控制层面,需建立二层组播转发表项,二层组播转发表项由BD名称、组播组地址、路由器端口、动态组播组成员端口构成。
在VTEP1、VTEP2和VTEP3上创建二层广播域即BD(Bridge Domain)。

1.将VTEP1配置为查询器,VTEP1节点分别向VTEP2、VTEP3发送IGMP Query报文。

2.VTEP2和VTEP3通过VXLAN隧道接收到IGMP Query报文后,向BD内的接收者转发该报文,并将VXLAN隧道侧接口设置为路由器端口。

3.接收者收到IGMP Query报文后,如果该接收者点播了相应的节目,则回应IGMP Report报文。因此,只有连接VTEP2的接收者回应IGMP Report报文。

4.VTEP2收到IGMP Report报文后,从报文中解析出接收者要加入的组播组地址,并将接收接口设置为动态组播组成员端口(即转发组播数据的出接口),然后将IGMP Report报文发送给VTEP1。

5.VTEP1通过VXLAN隧道接收到IGMP Report报文后,从报文中解析出接收者要加入的组播组地址,并将VXLAN隧道端口设置为动态组播组成员端口。

b.在转发层面,当组播流经过VTEP1、VTEP2时,两者根据二层组播转发表项进行组播数据转发。当组播流量进入VXLAN隧道后,封装后的数据在Underlay网络采用头端复制的方式进行转发。

3.部署思路

1).在各VTEP节点上创建BD,VTEP节点与组播源或组播接收者之间通过BD内的接口进行组播数据的转发。

2).在各VTEP节点的BD内配置IGMP Snooping功能,VTEP节点通过侦听IGMP报文,建立起二层组播转发表项,并根据该表项实现组播数据在数据链路层的按需转发。

3).在VTEP1节点的BD内使能查询器功能,使VTEP1节点承担起查询器的角色。

举报

相关推荐

0 条评论