| |
|
开发:
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
总结
IGMPv1里面主机只发IGMPv1的Report消息,最后一跳路由器发IGMPV1的查询消息
IGMPV3:
IGMPv3:IGMPv3的路由器监听的就是224.0.0.22 接入交换机能识别DHCP报文吗?不能
IGMP SNOOPING:公有的 让交换机可以直接拆开IGMP Report消息,让交换机可以看到IGMP消息里面的内容。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |