| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> CCIE-PIM基础 -> 正文阅读 |
|
[网络协议]CCIE-PIM基础 |
2021.12.3 又不是要千古留名,干嘛要活得这么虚伪,坦荡的小人比虚伪的君子更迷人
4.1 PIM Basic Concept
?
PIM
的运行与单播路由协议无关
,
但是组播数据转发默认与单播路由表有关
.
?
PIM
需要在相邻路由器之间建立邻居关系
,
但是不存在任何组播路由信息的交互
.
?
PIM
邻居建立不依赖于单播路由表
,
利用保留的组播地址发送Hello Message.
?
组播路由表的建立是本地独立根据相关规则建立
.
?
组播路由表的建立通常因为三种原因来触发
:
收到了组成员IGMP
消息
,
收到了
PIM Message
或者收到了组播数据包
.
?
PIM Message
用于建立和维护组播网络
,
也就是建立和维护组播路由表
?
PIM
存在两个版本
, v1
和
v2,
路由器上启用
PIM
默认使用
v2.
可以通过接口命令
ip pim version [1 | 2]
来修改
PIMv2:
?
PIMv2 Hello
周期性发送
(Default 30s)
给本广播域内所
PIMv2路由器
.
?
PIMv2
路由器收到
Hello
即将该邻居添加到邻居表内
,
默认情况下
105s
内没有收到下一个来自该邻居的
Hello
则删除该邻居
.
?
PIMv2
邻居建立过程没有确认机制
,
因此可能出现单向邻居关系
.
?
Hello
包中携带参数
DR Priority (Default=1),
用于选举本广播域内的指定路由器
DR (Designed Router)
?
DR
的选举过程只会发生在
MA
网络中
, P2P
网络不存在
DR
选举
.
?
DR
的选举过程
,
先比较
Priority (
可以通过接口命令
ip pim dr priority [value]
来修改
,
默认值为
1).
如果
Priority
相同
,
则
比较接口
IP
地址
,
两次比较均选择数值较大一端
.
?
DR
可以根据环境或者参数的改变而自动抢占
.
DR
的作用
:
?
如果是
Dense Mode, DR
只有在叶路由器和组成员之间运行IGMPv1
时
,
用
DR
作为
IGMP Querier.
?
如果是
Sparse Mode, DR
负责在多个第一跳路由器之间决定发起
RegisterMessage
的路由器
,
在多个叶路由器之间决定发
起
(*, G) Join/Prune Message
的路由器
.
?
Hello
包中携带参数
Generation ID
是一个随机产生的
32bits
标识符
.
该标识符用于通知
PIM
邻居
,
本地路由器的状态发生过改变
,
以便于邻居可以修改本地的组播路由表来完成数据的转发
.
?
例如
:
当上游路由器
Prune
掉
OIL
中的接口时
,
如果此时下游路由器重启
,
或者是链路
up/down,
将导致组播路由表重置
,
从而失
去组播源的信息
.
加入
Generation ID
后
,
当下游路由器重启或者
链路状态发生改变后
,
该
ID
会重新产生
,
从而让上游路由器获知下
游设备状态发生过改变
,
从而打开
OIL
中的接口重新转发数据到
达下游设备
,
从而让下游设备重新构建组播路由表
,
维护组播源的
信息
.
Check Command
show ip pim neighbor
Note:
?
PIMv1 Hello
中携带了组播模式
, PIMv2
中没有携带组播模式
.
?
无论
v1
还是
v2,
在邻居建立过程中
,
模式都不影响邻居建立
,本地有效
.
?
如果邻居间组播模式不一致
,
那么虽然能建立邻居
,
但是将来构建的组播路由表将无法正常转发组播数据
,
因为两种模式对
于组播路由表的构建规则不一致
.
?
连接组播源的接口与连接组成员的接口一定要运行
PIM
协议
.
? ??????? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 9:48:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |