IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CCIE-IGMPV2和IGMP SNOOPING -> 正文阅读

[系统运维]CCIE-IGMPV2和IGMP SNOOPING

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] 来修改对应 的两个参数 .
IGMPv1 IGMPv2 的区别
? 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消息里面的内容。
你这个交换机需要支持三层功能

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:39:26  更:2021-11-28 11:41:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:58:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码