HCNP Routing&Switching之组播技术-IGMP-Snooping
前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html;今天我们来聊一聊二层交换机处理组播报文所面临的问题,以及IGMP-Snooping相关话题;
我们知道二层交换机在单播通信中的工作原理就是根据构建mac地址表来转发数据,如果二层交换机收到一个未知的单播或广播报文,那么它会泛洪出去;对于组播信息它会如何处理呢?其实二层交换机收到组播报文,默认情况下,它会把组播报文当作广播处理,即 收到组播报文,它会泛洪出去;这样一来对于接入同一二层交换机的组播客户端,在没有加入对应组播组的情况下也会照常收到组播源发送的组播报文;很显然,这无形是对那些不需要接收对应组播报文的客户端的带宽造成浪费,拥堵;为了解决这样的问题;igmp-snooping出现了;igmp-snooping的主要作用是嗅探组播信息,从而根据组播信息建立起组播mac地址表,从而实现隔离那些未加入对应组播组的客户端流量;简单讲就是,有了igmp snooping,在同一二层交换机收到对应组播报文,它不会全局泛洪,而是根据对应的组播mac表来转发数据,从而规避了全局泛洪所带来的困扰;如下如所示

提示:如上图所示,在客户端B加入G2组,在对于非g2组的客户端A和C来说,它们也能正常收到G2组播源发送的组播信息(原因是二层交换机把组播报文当作广播处理了);这就是二层组播数据转发时,说面临的问题;它会造成网络资源的浪费,以及一些安全隐患的存在;
IGMP Snooping工作原理

提示:首先在二层交换机上运行igmp snooping ;在路由器发送查询给交换机,对应交换机会收到查询,此时二层交换机会在内核建立一个组播mac表,把对应收到查询把文接口和对应组播mac地址做关联;然后把查询泛洪出去;对应组播接收者收到路由器的查询,然后把报告报文发送给交换机,此时交换机会把接受报告的端口和对应组播mac做关联;这样一来就建立起组播mac地址表项;后续二层交换机就根据这个组播mac表项来转发数据;

提示:我们把收到查询报文的接口叫做路由器端口(上游接口);把收到报告的接口叫做成员端口(下游接口);对于路由端口和成员端口的生成有两种方式,第一种就是动态生成,即通过igmp的普遍查询或pim 的hello包动态生成路由接口;通过收到IGMP report报文的接口自动生成成员端口;这种方式是动态生成路由接口或成员接口;第二种方式就是手动配置路由接口或成员接口,这种方式成为静态路由端口或成员端口;路由端口主要作用是接受组播数据的上游接口,而成员端口主要作用是发送组播数据给下游接口;

提示:igmp snooping的工作原理总结为路由器发送查询,组播成员发送报告,从而交换机构建起组播mac表项;从而实现规避二层交换机收到组播报文泛洪;

提示:路由器周期性发送普遍查询报文,该报文会被交换机收到,此时交换机会泛洪该报文,从而交换机上的所有的端口都会收到查询报文,此时交换机就会建立起一张二层组播转发表,该表的内容是对应组播mac和对应的端口;并把1口标记为路由接口(收到查询报文);如果clientB 希望加入组播组,此时clientB会发送一条IGMP成员报告,对应报告中就会有目的mac地址,交换机从3口收到对应报告以后,通过igmp snooping处理以后,它会把3口加入到对应组播mac对应的端口里,并把3口标记为成员端口(收到报告的端口);同样的道理clientc加入对应组播组,它也会发送一条主动报告给交换机,交换机收到对应报告以后,它会把4口加入到对应组播组对应的端口里;这样一来就形成了一个二层组播转发表;所以对于启用IGMP snooping的交换机来说,有了这个表项,对应组播组的数据就会现在只对应的端口上首发,而不会发送给其他端口;
IGMP和IGMP-Snooping配置
实验拓扑如下

分析:首先我们需要配置好个设备的ip地址和组播地址,然后在路由器上配置上pim;这里需要说明一点,所有组播都是基于单播实现的,所以我们需要先把单播搞通,然后再配置组播igmp和igmp-snooping;这个实验在ensp模拟器上二层交换机开启igmp-snooping时会有bug,导致组播客户端发送的报告路由器收不到,路由器发送的查询,组播客户端收不到,所以路由器面向二层交换机的接口会认为没有客户端(因为查询发出去没有人报告给它);所以我们还需要在路由器面向交换机的接口配置静态组播组信息;
配置客户端地址


验证pc1和pc2互通

提示:可以看到pc1和pc2是可以正常通信的;
配置路由器各接口ip地址

sys
sys r1
int g0/0/0
ip add 1.0.0.100 24
int g0/0/1
ip add 2.0.0.100 24
验证路由器各接口是否正常up

配置组播源服务器ip地址

配置组播源

验证:客户端到组播源服务器的单播是否能够正常通讯?

ok,到此该实验的单播网络已经搞通,接下来是在路由器上配置igmp 和pim
在路由器上全局开启组播路由功能

提示:只有在组播路由器上开启了组播路由功能以后,后续的igmp和pim才能够正常开启;
在路由器面向二层交换机接口开启pim以及igmp

在路由器面向组播源接口开启pim以及igmp

验证路由器组播组信息

提示:如果pc客户端不加入对应组播组在路由器上是看不到对应组播组信息的;此时如果不考虑igmp-snooping 那么组播源的数据就能正常发送给组播客户端;
验证:在pc1所在链路上抓包

提示:可以看到组播源发送数据,对应pc1所在链路也会收到数据;但二层交换机它对于组播的处理和处理广播的方式一样都是泛洪,所以pc2即使没有加入组播组,对应链路上也会收到组播数据;
在二层交换机上开启igmp-snooping

提示:在交换机上开启了igmp-snooping以后,由于模拟器bug原因会导致路由器发送到查询客户端收不到,当然客户端也无法正常报告给路由器,所以时间一旦超时,在路由器上的组播组信息就会被删除,即路由器不会向交换机转发组播数据;
在路由器上面向交换机的接口上添加静态组播组信息

提示:可以看到之前路由器上的组播组信息已被删除,原因是在交换机上开启igmp-snooping以后隔断了路由器和客户端查询和报告;手动在路由器上面向交换机的接口下配置静态组播组信息是让组播数据一直会从对应接口发送出去;
在交换机上查看路由接口

提示:可以看到交换机通过igmp-snooping已经分析出eth0/0/1口是路由器接口;这个和我们的拓扑很吻合;
在交换机上查看成员接口

提示:现在提示我们没有成员接口;原因是交换机没有收到报告,所以它认为没有成员;
在pc1上点击加入对应组播组,看看对应成员接口是否在交换机上看到?

提示:可以看到交换机收到pc1发送的报告以后,对应就把连接pc1端口加入到对应组播组的成员端口中;正常情况下此时组播数据只会向pc1所在端口转发,但是由于bug的原因,此时数据还是会泛洪;即pc2所在端口虽然没有加入组播组,但还是可以收到组播数据;这个是模拟器bug;到此igmp-snooping的配置就完成了;
HCNP Routing&Switching之组播技术-IGMP-Snooping的更多相关文章
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
- HCNP Routing&Switching之组播技术-组播路由协议PIM
前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...
- HCNP Routing&Switching之组播技术PIM-SM RP
前文我们了解了组播技术中,组播路由协议PIM的稀疏模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16142795.html:今天我们来聊一聊组播路 ...
- HCNP Routing&Switching之组播技术-组播基础
组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...
- HCNP Routing&Switching之组播技术-组播地址
前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...
- HCNP Routing&Switching之组播技术-组播分发
前文我们了解了组播技术中的igmp-snooping相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15860484.html:今天我们来聊一聊组播技术 ...
- HCNP Routing&Switching之组播技术PIM-SM 稀疏模式
前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...
- IP组播技术介绍及实现例子
引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...
- 《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)
我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(m ...
随机推荐
- 【LeetCode】131. Palindrome Partitioning 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...
- Travelling(hdu3001)
Travelling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Flink 实践教程-进阶(5):排序(乱序调整)
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- MySQL高级查询与编程笔记 • 【第1章 数据库设计原理与实战】
全部章节 >>>> 本章目录 1.1 数据需求分析 1.1.1 数据需求分析的定义 1.1.2 数据需求分析的步骤和方法 1.1.3 数据流程图 1.1.4 数据字典 1. ...
- 【MySQL作业】DDL 和 DML——美和易思使用 DDL 定义数据库表结构应用习题
点击打开所使用到的数据库>>> 1.使用 DDL 创建 easyShopping2 数据库. create database easyShopping2 2.使用 DDL 更改 ea ...
- .NET5.0 依赖注入,关于 Autofac 使用
前置 工具 VS2019 概念 关于以下几个概念,自行百度. 控制反转:IoC(Inversion of Control) 依赖注入: 容器:DI 容器(.NET Core 自带),Autofac(本 ...
- visual studio code 修改工具栏风格
用windows版vscode的同学们是否发现它的工具栏是白色的跟整个界面看起来不太搭调,如下图: 其实要改变标题栏颜色也很简单,点击:文件> 首选项>设置 将 "window. ...
- monkey介绍及常用命令
前置准备: adb:用来连接安卓手机和PC端的桥梁,要有adb作为两者之间的维系,才能在电脑对手机进行全面的操作.(adb push 文件路径 到手机路径 adb pull 从手机拉取到电脑) mo ...
- Django在使用logging日志模块时报错无法操作文件 logging error Permission Error [WinError 32]
产生原因: 这个问题只会在开发的时候遇到,而且配置是写入到setting.py配置文件,我们定义了日志文件大小,当日志满了的时候,这时候就会遇到这个问题, 因为在使用Pycharm运行django的时 ...
- linux(CentOS7) 之 jdk1.8 下载及安装
下载 一.百度搜索oracle,进入官网(或直接进入官网https://www.oracle.com) 二.选择 products 下的 java 三.选择Download Java 四.往下翻找到J ...