前文我们了解了组播协议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的更多相关文章

  1. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  2. HCNP Routing&Switching之组播技术-组播路由协议PIM

    前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...

  3. HCNP Routing&Switching之组播技术PIM-SM RP

    前文我们了解了组播技术中,组播路由协议PIM的稀疏模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16142795.html:今天我们来聊一聊组播路 ...

  4. HCNP Routing&Switching之组播技术-组播基础

    组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...

  5. HCNP Routing&Switching之组播技术-组播地址

    前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...

  6. HCNP Routing&Switching之组播技术-组播分发

    前文我们了解了组播技术中的igmp-snooping相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15860484.html:今天我们来聊一聊组播技术 ...

  7. HCNP Routing&Switching之组播技术PIM-SM 稀疏模式

    前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...

  8. IP组播技术介绍及实现例子

    引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...

  9. 《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)

    我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(m ...

随机推荐

  1. 【LeetCode】19. Remove Nth Node From End of List 删除链表的倒数第 N 个结点

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:链表, 删除节点,双指针,题解,leetcode, 力扣 ...

  2. Spring中的@Bean注解

    @Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理.产生这个Bean对象的方法Spring只会调用一次,随后这个 ...

  3. $\infty$-former: Infinite Memory Transformer

    目录 概 主要内容 如何扩展? 实验细节 Martins P., Marinho Z. and Martins A. \(\infty\)-former: Infinite Memory Transf ...

  4. Reproducing Kernel Hilbert Space (RKHS)

    目录 概 主要内容 RKHS-wiki 概 这里对RKHS做一个简单的整理, 之前的理解错得有点离谱了. 主要内容 首先要说明的是, RKHS也是指一种Hilbert空间, 只是其有特殊的性质. Hi ...

  5. 代码质量管理sonarqube部署使用

    一.sonarqube的部署 1.下载sonaqube:https://www.sonarqube.org/downloads/ 根据需要下载特定版本: 2.如果通过sonar-scanner进行代码 ...

  6. Capstone CS5268DEMOBOARD原理图|TYPEC转HDMI+VGA+PD3.0+USB3.0扩展坞方案

    Capstone CS5268DEMOBOARD原理图|TYPEC转HDMI+VGA+PD3.0+USB3.0四合一设计参考 CS5268 是typec转HDMI+VGA+pd3.0+U3四合一拓展坞 ...

  7. Java初学者作业——编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,根据用户输入课程名称,输出对应课程的简介,各门课程的简介见表 课程名称 课程简介 JAVA课程 JAVA语言是目前最流行的编写语言,在本课程中将 ...

  8. 在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 Date 对象,在页面上显示一个万年历.选择不同的年份和月份,在页面中显示当前月的日历 实现思路: 在页面中添加两个 <s ...

  9. CSS基础 阴影相关属性设置

    一.字体阴影属性名:text-shadow:水平偏移量 垂直偏移量 模糊度 阴影颜色: html代码: <div>农夫山泉有点甜</div>css代码: div{ font-s ...

  10. VoIP语音处理流程和知识点梳理

    做音频软件开发10+年,包括语音通信.语音识别.音乐播放等,大部分时间在做语音通信.做语音通信中又大部分时间在做VoIP语音处理.语音通信是全双工的,既要把自己的语音发送出去让对方听到,又要接收对方的 ...