2021.11.16     我可以接受自己的平凡,却不能接受自己浑浑噩噩的过完这一生


2.3 IGMP Message
IGMP Message分为两大类:
Host: Membership Report and Leave Message
Router: Query Message (General & Specific)
Host Report Message
该消息用于组成员向最末跳路由器报告自身需要加入的组地址
包头中目的IP地址同样为自身想要加入的组地址, 这样做是为了完成在本组内Report Message 的Suppress. 因为路由器不关心这个组内有多少组成员, 它只关心有或没有, 因此所有组成员只要有一个发起报告就好.
Report Message 产生的原因有两个: 在组成员第一次加入该组时, 或是在收到路由器发出的Query Message 以后需要产生响应.
针对第一种可能, RFC2236建议在第一次加入该组时, 以10秒为间隔发送1-2次Report, 目的是为了保证组播路由器可以收到该消息. 此时不考虑Suppress 的问题.
针对第二种情况, Report 会周期性的发送, 发送频率取决于路由器Query Message的查询频率. 此时会考虑Suppress的问题.
Host Leave Message
该消息用于组成员向最末跳路由器报告将要离开的组地址.
IP 包头中目的地址设置为224.0.0.2, 是为了让本广播域内所有路由器都可以收到,而本组内其它组成员则不需要接收该消息.
该消息是针对路由器的Specific Query Message 的一个触发消息, 因为路由器不知道该组内一共有多少个组成员, 所以每一个组成员的离开, 它都可能是最后一个组成员, 所以路由器在收到Leave Message 以后需要立刻单独查询该组中是否还有组成员.
Router General Query
该消息用于最末跳路由器查询该接口下所有组成员的信息, 无论属于组成员加入到了哪个组, 都需要做出响应. 每60秒做一次查询. 可以通过命令ip igmp query-interval [seconds] 进行修改.
IP 包头内目的地址设置为224.0.0.1, 对应本广播域内所有设备, 包括路由器, 这样做是为了在同一子网有多台叶路由器时, 选择查询者, 而非查询者将停止发送所有查询消息.
查询者的选择直接比较接口IP地址, 地址较小的成为查询者.如果120秒(可以通过命令ip igmp querier-timeout [seconds] 修改) 内非查询者都没有收到查询者的Query消息, 那么宣告当前查询者失效, 由非查询者接替工作.
消息中设置了组成员的最大响应时间为10秒, 要求组成员在收到该消息后, 必须在10秒内响应, 组成员同时启用1-10秒随机计时器, 来完成响应. (第一次General Query 消息中设置的最大响应时间是正常值的1/4) 可以通过命令ip igmp query-max response-time [seconds] 来修改该参数.
消息中把查询的组地址设置为0.0.0.0, 用于对应所有组地址.
Router Specific Query
该消息是针对组成员的Leave Message 而产生的特定查询消息.
IP 包头内目的地址为要查询的组地址, 表示该消息只需要指定组的组成员响应.
要求组成员响应的最大等待时间为1秒, 但是为了防止组成员来不及响应, Cisco路由器上会以1秒为间隔, 连续发送2次该查询消息. 可以通过命令ip igmp last-member-query-interval [m seconds] 和ip igmp last-member-query-count [num] 来修改对应的两个参数.
IGMPv1IGMPv2的区别
IGMPv1没有定义Leave Message, 因此最末跳路由器不会产生Specific QueryMessage, 并且在判断是否还有组成员时必须要通过连续的三次(180s) GeneralQuery得不到响应以后才能判定. 所
以IGMPv1中从最后一个组成员离开, 到路由器停止转发数据的延时比IGMPv2要更长.
IGMPv1的查询消息中没有设定最大响应时间, 而是靠组成员自己来定义.
IGMPv1不具备查询者选择功能, 只能依靠组播路由协议选择的指定路由器(DR)来作为查询者.
当同一子网内既存在IGMPv1, 也存在IGMPv2时, 按照向后兼容的原则工作.


IGMPv3 Message
IGMPv3用于服务组播转发的特殊模型SSM (Specific Source Multicast)
允许组成员只接收指定的组播源到组的流量
对于Host 和Router 的消息格式做了修改, 添加了组播源地址字段
组成员可在单个消息中添加多个组的Report
取消了Report Suppress, 每个组成员独立报告
IGMPv3模拟组成员的命令ip igmp join-group [G Add] source [S Add]
Host Report Message
IP包头内目的地址为IGMPv3专用保留地址. 只被IGMPv3路由器接收
添加了源地址, 表示需要接收的是来自特定源地址到特定组地址的数据
同一报告可以携带多个不同源到不同组的信息.
Host Block Old Source Message
消息类型不发生改变, 仍然是Report Message, 但是模式变为Block
消息完成的作用相当于IGMPv2中的Leave Message
Router General Query
该消息与IGMPv2类似, 发送频率为60秒, 查询所有组成员的特定需求.
Router Specific Query
该消息与IGMPv2类似, 在收到Block Old Source Message 以后, 会连续发两次查询, 间隔1秒, 作为最后一个组成员的最大响应时间.
2.4 L2 Multicast Frame Switching
组播数据转发对以太交换机的影响
以太交换机在L2转发数据时, 依赖于本地的CAM表, 也就MAC地址表.
MAC 地址表通过对收到的数据帧的源MAC地址与接收端口绑定的方式来完成自动学习过程.
组播的组地址永远都存在于目的地址字段, 因此交换机的CAM表是无法自动学习到组播MAC地址的.
此时当一个组播数据经过交换机时, 交换机会当做是未知的数据帧在本广播域内Flooding.
如上图所示:
组成员通过IGMP 向路由器报告自身需要到达组地址224.1.2.3的流量.
IGMP在穿越交换机时, 交换机无法识别. (因为该消息在IP 包头内)
但是交换机会将该主机的单播MAC 地址与接收端口5/1绑定进入CAM 表.
路由器收到报告后, 会通过CGMP 向交换机发起Join 消息, 告诉交换机有一个单播MAC: 0080.C7A2.1093对组地址MAC: 0100.5E01.0203要求加入.
交换机收到该消息后, 首先查询单播的MAC 地址表, 确认该单播MAC 地址绑定在5/1上, 然后建立组播的MAC 地址表, 将0100.5E01.0203绑定在5/1, 从而完成对组播MAC 地址的学习.
R1(config-if)#ip cgmp
SW(config)#cgmp
IGMP Snooping
单独运行在Switch—默认开启
要求该Switch 必须是多层交换机.
运行IGMP Snooping 后, 交换机会监听经过自己的所有IGMP 消息, 并且自动判断哪些单播MAC 地址需要接收哪些组播MAC 地址的流量
对应单播的MAC 地址表完成组播MAC 地址表的建立.
SW#show ip igmp snooping group //查看端口和组地址映射
SW(config)#no ip igmp snooping //关闭igmp snooping


总结

IGMP Report消息的抑制:
IGMP Version 1:
相比于Version 2,V1里面没有离组消息,如果下游某个接收者不再需要组播流量了,离开了某个组,最后一跳路由器需要等Expires时间超时,才会删除IGMP Group的表项。180s
V1 没有指定组查询
V1 没有查询者概念,但是依然会选举出一个发送查询消息的路由器。谁负责发查询消息?????谁是DR谁负责发查询消息
IGMPV1使用DR来充当查询者,DR发送查询消息

IGMPv1里面主机只发IGMPv1的Report消息,最后一跳路由器发IGMPV1的查询消息

查询者选举:IP地址越小越优
DR的选举:IP地址越大越优
===========================================================================================================================
关于IGMP内容,重点:
1、路由器模拟PC加组的命令
PC1(config)#int e0/0
PC1(config-if)#ip igmp join-group 224.1.1.1   //思科路由器模拟PC加组
2、IGMPV2 里面的消息
   --- 主机的Report和Leave消息
   --- 路由器的通用查询和指定组查询

IGMPV3:
专门给SSM来用的
SSM:指定源组播,接收者指定要接收某个服务器发来的组播流量。
IGMPv3的Report消息里面除了包含组地址,还包含想要接收组播流量组播服务器的地址。

IGMPv2:假设想接收224.1.1.1组播组的流量
Report消息--IP包头里面目的IP:224.1.1.1----让本子网内其他想接收224.1.1.1组播组的接收者可以看到,同时让最后一跳路由器也可以看到。
                                                Report消息的抑制,尽量的减少Report消息在本子网的发送
Leave消息--IP包头里面目的IP:224.0.0.2  ---让最后一跳路由器以及备用的最后一跳路由器都可以接收
通用查询消息---IP包头里面目的IP:224.0.0.1----让本子网内所有的组播接收者【PC】以及备用的最后一跳路由器都可以接收
指定组查询消息---IP包头里面目的IP:224.1.1.1-----让本子网内其他想接收224.1.1.1组播组的接收者可以看到,同时让最后一跳路由器也可以看到。
                                                Report消息的抑制,尽量的减少Report消息在本子网的发送

IGMPv3:IGMPv3的路由器监听的就是224.0.0.22
Report消息:224.0.0.22--保留的组播地址--TTL=1
通用查询消息---IP包头里面目的IP:224.0.0.1
离组消息--224.0.0.22
指定组查询----224.1.1.1
================================================================================================================================
DHCP:基于UDP的,服务器监听UDP67,客户端监听UDP68

接入交换机能识别DHCP报文吗?不能
开启DHCP Snooping【嗅探】功能,让接入交换机可以识别DHCP的报文,并且针对DHCP报文做过滤。
================================================================================================================================

CGMP:思科私有的
作用:为了让交换机收到组播流量的时候,由于单播的mac地址表没有对应的组播条目去转发这个组播流,而导致的泛洪。
所以,需要让交换机产生针对组播mac的表项。通过指定端口转发组播流量,不要泛洪、不要泛洪、不要泛洪。

IGMP SNOOPING:公有的
作用:为了让交换机收到组播流量的时候,由于单播的mac地址表没有对应的组播条目去转发这个组播流,而导致的泛洪。
所以,需要让交换机产生针对组播mac的表项。通过指定端口转发组播流量,不要泛洪、不要泛洪、不要泛洪。

让交换机可以直接拆开IGMP Report消息,让交换机可以看到IGMP消息里面的内容。
你这个交换机需要支持三层功能

CCIE-IGMPV2和IGMP SNOOPING相关推荐

  1. 组播、IGMP、IGMP Snooping

    通过组播,可以实现一个主机同时向组内的多台主机发送数据,节省网络带宽. 组播ip地址范围是224.0.0.0-----239.255.255.255,其中224.0.0.0-----224.0.0.2 ...

  2. IGMP Snooping和IGMP Proxy区别

    1.了解组播地址范围分类 224.0.0.0–224.0.0.255 预留,路由器不会转发的地址 224.0.1.0–238.255.255.255 可以组播地址,用于INTERNET大网上传输 23 ...

  3. IGMP Snooping和组播VLAN技术原理

    IGMP Snooping: 诞生原因: 由于IGMP报文是封装在IP报文内,属于三层协议报文,而二层设备不处理报文的三层信息,所以这个过程它并不知道,而且通过对数据链路层数据帧的源MAC地址的学习也 ...

  4. 组播IGMP Snooping理论知识

    IGMP Snooping配置在二层组播设备上,通过对上游三层设备和下游用户之间的IGMP报文进行分析,建立和维护二层组播转发表,实现组播数据报文在数据链路层的按需分发.        IGMP Sn ...

  5. IP组播---IGMP、MLD、IGMP SSM Mapping、IGMP Snooping详解

    简介 Internet Group Management Protocol 互联网组管理协议,负责IPv4组播成员管理的协议 在接收者主机和组播路由器之间交互IGMP报文实现组成员的管理功能,建立.维 ...

  6. IGMP Snooping

    IGMP Snooping简介 IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和 ...

  7. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  8. HCIE-RS 论述题 IGMP Snooping

    题目需求 1.当二层设备上没有开启IGMP Snooping时,用户能否收到组播数据,请说明原因. 2.在当前的环境中,哪个端口属于路由器口,是如何产生的? 3.设备配置igmp snooping后, ...

  9. 【学习笔记】IGMP snooping原理

    为什么要运行snooping? 作用1: 不运行就在本Vlan泛洪(导致有一些不想接收组播流量客户端来说,也会泛洪给它,浪费客户端的带宽资源,也会导致SW开销加大,性能下降). 运行了就会产生组播转发 ...

最新文章

  1. 训练 GPT-3,为什么原有的深度学习框架吃不消?
  2. matlab图像中心坐标的确定,已知散点图中各点的坐标,如何确定散点图的中心点坐标?Matlab? 爱问知识人...
  3. 算法之【仿竖式算法】
  4. 怎么用javascript进行拖拽
  5. 【思维导图总结——数据库系统概论】关系数据库标准语言SQL
  6. python画平行坐标图_Matplotlib中的平行坐标图
  7. UDP对应的应用层协议之DHCP协议
  8. SAP CRM Appointment应用里Date profile的配置
  9. C#WinForm WebBrowser (二) 实用方法总结
  10. mysql数据库语法_MySQL数据库语法(一)
  11. div固定在浏览器顶部_关于浏览器的兼容问题
  12. eclipse下开发简单的Java Web Service
  13. mug网络用语_各种游戏术语
  14. nlp基础—7.隐马尔可夫模型(HMM算法)
  15. 机器学习之MCMC算法(转载)
  16. 企业之pacemaker基本概念及其原理
  17. 以太坊开发入门,完整入门
  18. 微信小程序WeUI 前端样式库
  19. 【中科院】分子生物学-朱玉贤第四版-笔记-第2-4讲 DNA 染色体 DNA复制
  20. 慢慢的,就没有了,就像从未存在过

热门文章

  1. 2022面试200题目和答案分布式+微服务+MYSQL+Redis+JVM+Spring
  2. 速修复这些Netgear Orbi路由器漏洞
  3. 拼题A打卡奖励 (25 分),1355D,1362C;
  4. 微信授权登录功能(第三方网站登录)
  5. VS2019 VC++ MFC CEF(Chrome)开发环境搭建及相关功能demo(附源码)
  6. EMC存储Raid故障数据分析报告
  7. 机器学习 之 决策树(Decision Tree)文本算法的精确率
  8. android 图片闪光动画_剖析Android动画(图片闪烁、左右摇摆、上下晃动等效果) | 学步园...
  9. areas表-省市区
  10. 2021年广西贵港高考成绩查询6,2021年贵港高考状元是谁分数多少分,历年贵港高考状元名单...