网络技术
H3C网络技术
H3C 设备CLI(命令行)管理
H3C基础配置知识
H3C 设备型号概述
H3C网络端口基础信息与配置
H3C网络设备概述
HCL模拟器使用简介
H3C WX2540H 本地portal认证+本地用户认证实现web认证
网络的基本概念与定义
VLAN简介与配置
生成树配置
STP简介与配置
RSTP简介
MSTP基本概念
交换机FTP和TFTP操作
配置文件与升级
网络设备登录管理方式
网络设备文件系统操作
H3C MSR路由器出口双线负载均衡
策略路由配置
以太网链路聚合
DHCP中继
防火墙简单配置实验
华为_HCIP
认识设备-硬件架构与逻辑平面
路由基础-HCIP
OSPF路由基础概述
Router LSA详解
OSPF-Network LSA(二类LSA)与区域内路由计算
OSPF-区域间路由计算
计算机网络-OSPF防环机制
计算机网络-RIP动态路由协议简介
OSPF区域外部路由计算
OSPF特殊区域-Stub区域
计算机网络-NSSA区域与Totally NSSA区域
OSPF路由汇总
OSPF其它特性
IS-IS路由协议基础概念
IS-IS基础概念二
IS-IS邻接关系建立
IS-IS链路状态数据库同步
IS-IS路由计算
IPv6基础概念
IPv6缩写规范与地址分类
ICMPv6基础知识
ICMPv6之NDP协议
计算机网络-IPv6地址配置
DHCPv6基础概念
DHCPv6配置
IPv6路由配置
路由策略与路由工具
计算机网络-Filter-Policy过滤策略
Route-Policy路由策略
策略路由概念与应用
MQC策略简介与配置
流量过滤策略
BGP的背景与概述
BGP基本概念
BGP报文类型简介
BGP状态机制与对等体表项
BGP路由生成与路由表
BGP路由通告原则
BGP基础实验配置
BGP路由优选概述
BGP路由优选原则一Preferred-Value
BGP路由优选原则二-本地优先级
BGP路由优选原则三-路由类型
BGP路由优选原则四-AS_Path属性
BGP路由优选原则五-Origin属性优选
BGP路由优选原则六-优选MED属性值最小的路由
BGP路由优选原则七-EBGP优于IBGP
BGP路由优选原则八-优选IGP Cost值小的路由
BGP路由负载分担
BGP路由反射器与Cluster list选路原则
BGP路由优选原则九-优选Router ID小的设备通告的路由
计算机网络-IP组播基础
组播地址与组播网络组成
组播数据转发原理与RPF
组播分发树与组播协议
IGMP协议简介
IGMPv1工作原理
IGMPv2工作原理简介
IGMPv3的工作原理
IGMP Snooping特性
计算机网络-PIM协议基础概念
PIM-DM密集模式工作原理
基于PIM-DM+IGMP的组播实验配置
PIM-SM(ASM)基础
PIM-SM(SSM)基本原理
PIM-SM组播实验
BFD检测机制
BFD配置实验
VRRP基础概念
VRRP工作原理与选举过程
VRRP主备切换与主备回切
VRRP基础实验一
RSTP基础概念
RSTP工作原理与P/A机制
MSTP概述
MSTP基础概念
MSTP工作原理概述
MSTP基础实验一(单域多实例)
计算机网络-VPN虚拟专用网络概述
计算机网络-GRE(通用路由封装协议)简介
GRE-动态路由协议实验
IPSec VPN基本概念
IPSec VPN工作原理
IPSec VPN基础实验一(主模式)
GRE Over IPSec实验
计算机网络-L2TP VPN基础概念与原理
L2TP VPN基础实验配置
L2TP Over IPSec基础实验
SSH理论基础
VRF基本概念
MPLS基础概念
MPLS转发原理
MPLS静态标签实验
计算机网络-LDP标签分发协议
LDP工作原理-LDP会话建立
LDP标签发布与管理
VPN实例应用于交换机带外管理接口
H3C V7防火墙IPSECVPN配置(主模式配置)
网络设备拨号设置
网络地址分类与子网划分
防火墙区域以及安全策略配置(命令行版)
H3C V7 IPSEC_VPN配置(野蛮模式配置)
华为_HCIA
路由基础
以太网交换基础
VLAN的原理与配置
VLAN间通信
STP生成树简介
华为VRP系统简介
NAT网络地址转换
ACL访问控制列表
AAA的原理与配置
DHCP配置
链路聚合原理与配置
PPP与PPPoE协议
OSPF路由基础
无线通信基础原理
无线组网基本概念
无线网络配置原理与步骤
典型无线组网实验配置
网络设备防火墙是什么?
防火墙工作原理与安全策略
华为VRP系统基础命令配置
本文档使用 MrDoc 发布
-
+
首页
PIM-DM密集模式工作原理
## 一、PIM-DM基础概念 PIM-DM主要用在组成员较少且相对密集的网络中,通过"扩散-剪枝"的方式形成组播转发树(SPT)。 PIM-DM在形成SPT的过程中,除了**扩散(Flooding)**,**剪枝(Prune)机制**外,还会涉及**邻居发现**(Neighbor Discovery),**嫁接**(Graft),**断言**(Assert)和**状态刷新**(State Refresh)机制。  在首次形成SPT时,组播源发送组播流量沿组播转发流量扩散,组播路由器通过IGMP发行组播组成员,如果没有组播组成员的路径则进行修剪,最终形成一个无环的树形网络结构。 ## 二、PIM-DM报文 PIM协议报文直接采用IP封装,目的地址**224.0.0.13**,IP协议号103。PIM-DM与PIM-SM使用的协议报文类型有所不同。 PIM-DM使用报文主要是以下几类: | **报文类型** | **报文功能** | | ----------------------- | ------------------------------------------------------------ | | Hello | 用于PIM邻居发现,协议参数协商,PIM邻居关系维护等 | | Join/Prune(加入/剪枝) | 加入报文用于加入组播分发树,剪枝报文则用于修剪组播分发树。加入及剪枝报文在PIM中使用相同的报文格式,只不过报文载荷中的字段内容有所不同 | | Graft(嫁接) | 用于将设备所在的分支嫁接到组播分发树 | | Graft-ACK(嫁接确认) | 用于对邻居发送的Graft报文进行确认 | | Assert(断言) | 用于断言机制 | 这些报文与前面我们学习动态路由协议的概念很类似,通过某些报文发现邻居,通过特定报文加入组播分发树,以及修改、变动等。 ### 2.1 邻居发现 组播转发路径只能在PIM邻居之间建立,因此邻居发现是形成组播分发树的先决条件。邻居发现主要通过**PIM Hello包**完成。 当路由器的接口激活PIM后,接口便周期性发送PIM Hello数据包,目的地址224.0.0.13。交互Hello报文后,组播路由器之间就能知道邻居信息,建立PIM邻居关系。  PIM邻居关系依靠Hello包维持,邻居超时时间默认105s,如果超时时间内收不到邻居发来的Hello包,则删除邻居关系。Hello报文间隔默认30秒。  Hello报文格式:   |字段|说明| |---|---| |PIM Ver |PIM版本,值为2| |Type |消息类型,值为0| |Reserved|保留字段,发送时设置为0,接收时忽略此值| |Checksum|校验和| |OptionType|可选项类型,不同类型代表不同意义以及长度和值,类型有:1、2、19、20、21、24| |OptionLength|OptionValue字段的长度,字节为单位| |OptionValue|Option参数值| 开启PIM-DM模式的接口每隔30s发送hello,目的组播地址224.0.0.13,然后建立起PIM-DM的邻居关系,邻居关系启用定时器,超过105没有再接收到邻居hello报文则删除邻居。 查看邻居信息: `display pim neighbor verbose`  ### 2.2 首次形成组播分发树 PIM-DM模式首次形成组播分发树主要依赖扩散机制、剪枝机制、断言机制与DR选举机制。 - 扩散机制:组播数据包向所有的PIM邻居泛洪,同时组播路由器产生组播路由表项。 - 断言机制:当组播转发过程中存在多路访问网络,则需要选举出一个组播转发路由器,避免重复组播报文。 - 剪枝机制:如果组播路由器下没有组成员,则将源到该组播路由器的组播转发路径剪枝。  前面我们通过hello已经形成了PIM邻居,这里就会将组播报文发送给所有邻居实现扩散。 ### 2.3 扩散机制 组播源发送的组播报文会在全网内扩散。当PIM路由器接收到组播报文,先进行**RPF检查**,通过后会在该路由器上创建**(S,G)表项**,之后会向所有PIM邻居发送。 扩散机制会周期性(**默认180s**)全网扩散组播数据,周期性扩散的主要目的是探测是否有新成员加组,但是由于全网扩散组播数据会浪费大量带宽,所以现在的组播网络一般使用"状态刷新机制"加上"嫁接机制"来实现周期性全网扩散感知新成员加组的目的。 PIM-DM形成的(S,G)表项有老化时间(**默认210s**),如果老化时间超时前没有收到新的组播报文,则删除(S,G)表项。  就是发送PIM广播,形成表项,在老化时间210S前进行周期性泛洪,有效则保留否则删除。 ### 2.4 断言机制 因为组播路由器是广播网络,可能出现多个相连的路由器的情况,这时需要通过**断言机制**(Assert)来保证只有一个PIM路由器向该网段转发组播报文。 通过断言机制的选举规则将决定组播路由器的转发行为: - 获胜一方的下游接口称为Assert Winner,将负责后续对该网段组播报文的转发。 - 落败一方的下游接口称为Assert Loser,后续不会对该网段转发组播报文,PIM路由器也会将其从(S,G)表项下游接口列表中删除。 断言机制由组播数据触发。  断言机制选择: PIM路由器在接收到邻居路由器发送的相同组播报文后,会向该网段发送断言(Assert)报文,进行Assert选举。Assert报文内会携带到组播源的单播路由前缀,路由优先级与开销。选举规则如下: - 单播路由协议优先级较高者获胜。 - 如果优先级相同,则到组播源的开销较小者获胜。 - 如果以上都相同,则下游接口**IP地址最大者**获胜。 Assert选举失败的设备会抑制转发,并将这种抑制转发的状态保持一段时间,这段时间就被称为Assert保持时间,默认180s。 Assert保持时间超时后,竞选失败的设备会恢复转发从而触发新一轮竞选。  就是处于同一个广播网络的路由器相互收到组播报文,会选举一个winner进行转发组播流量,另外一个进入抑制转发状态180秒,再重新恢复竞选。 PIM Assert报文:   字段说明: |字段|说明| |---|---| |PIM Ver|PIM版本,值为2| |Type|消息类型,值为5| |Group Address|组播组地址| |Source address|如果竞选(S,G)表项的唯一转发者,则为组播源地址。如果竞选(*,G)表项的唯一转发者,则为RP地址| |Metric Preference|到Source address的单播路径的优先级| |Metric|到Source address的单播路由的开销| ### 2.5 剪枝机制 对于没有组成员连接的组播路由器,组播网络无需再将组播流量继续放往该设备。通过剪枝机制,组播网络可以将此类路径剪枝。剪枝机制工作原理如下: - 路由器为被裁剪的下游接口启动一个剪枝定时器(默认210s),定时器超时后接口恢复转发。 - 组播报文重新在全网范围内扩散,新加入的组成员可以接收到组播报文。 - 随后,下游不存在组成员的叶子路由器将向上发起剪枝操作。通过这种周期性的扩散-剪枝,PIM-DM周期性的刷新SPT。 当下游接口被剪枝后: - 如果下游叶子路由器有组成员加入,并且希望在下次“扩散-剪枝”前就恢复组播报文转发,则执行嫁接动作。 - 如果下游叶子路由器一直没有组成员加入,希望该接口保持抑制转发状态,则执行状态刷新动作。   剪枝机制通过Join/Prune(加入/剪枝)报文,通过option的不同设置加入的组播组以及需要修剪的组播报文。简单理解就是当路由器下面没有组播组成员的时候会通过上行口发送剪枝报文通告到达特定组播源的报文需要修剪掉,从而下行口不再接收组播报文。 ### 2.6 维护组播分发树 前面我们通过扩散、断言、剪枝机制形成了无环的SPT组播分发树,但是现实情况下SPT会增加组播组成员或者减少成员,因此需要对SPT进行维护。 在PIM邻居关系稳定,组成员没有变化的情况下,维护组播分发树一般有两种方式: - 持续发送组播报文,保证组播路由表项能一直存在。 - 发送状态刷新报文,保证组播路由表项的下行接口状态不发生变化。  ### 2.7 状态刷新机制 前面我们知道在没有组播组成员的路由器下行接口会进行剪枝,但是会启动一个定时器210s,如果超过210s则接口会继续接收组播报文,在PIM-DM网络中,为了避免被裁剪的接口因为"剪枝定时器"超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发**State Refresh报文**在全网内扩散,(默认60s)。就是每一分钟在连接组播源的路由器上会发送状态刷新报文,使得剪枝定时器每60s刷新持续保持抑制状态。 收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态。   那么通过状态刷新机制就会导致如果有新的组播组成员在剪枝的接口加入而无法加入组播组,因此需要通过另外的方式使得能够主动加入组播组。 当有新成员加入组播组后,组播网络需要更新组播分发树,才能将组播数据发往组成员。PIM-DM模式在使用"扩散-剪枝"的方式建立组播分发树后,通过状态刷新机制,使下行接口一旦被抑制就无法自动恢复。 使用**嫁接(Graft)机制**,当新成员加组后,主动反向建立组播分发路径。现网中一般使用嫁接机制来实现新成员加组。 ### 2.8 嫁接机制 PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文。 叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。随后叶子路由器会基于本地的组播路由表向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中。  嫁接通过**Graft(嫁接)报文**和**Graft-ACK(嫁接确认)报文**实现,下游路由器通过上行口发送嫁接报文,上游路由器回复确认报文并加入组播路由表项。  简单说就是当下游有成员加入,PIM路由器主动向上游接口发送嫁接报文。  总结:本章通过PIM-DM的模式学习了扩散(Flooding),剪枝(Prune)机制,邻居发现(Neighbor Discovery),嫁接(Graft),断言(Assert)和状态刷新(State Refresh)机制。首先保证网络可达,然后接口启用PIM-DM,通过hello报文建立邻居,通过扩散机制泛洪组播报文,通过断言保证整个组播网络无环,通过状态刷新和嫁接机制处理新成员加入,形成SPT后组播网络沿SPT转发组播报文。 如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 
Chuck
2024年7月31日 14:14
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码