PIM-SM-DM-IPV6

PIM:与协议无关的组播,利用单播路由表,对组播报文进行 RPF 检查,形成组播分发树与协
议无关的意思是:无论单播路由表中路由使用哪种协议学到,都可以被 PIM 使用
PIM 有两种模式
1.PIM-DM:使用推的方式建立组播分发树,即泛洪一剪枝,用于组成员较少,且比较密集的
场景,可以用于 ASM 组播网络
2.PIMSM:使用拉的方式建立组播分发树,即收集成员信息,根据信息形成分发树,用于组成
员较多,且较稀疏的场景,可以用于 ASM 和 SSM 两种组播网络
组播分发树的分类
1.SPT:以组播源为根,以接收者为叶子的分发树,维护(S,G)表项
2.RPT:以 RP 为根,以接收者为叶子的分发树,维护(*,G)表项,会被流量触发转换成(S,G)表
PIM 模式与分发树的对应关系
1.PIM-DM: SPT
2.PIM-SM: SPT,RPT
注:最后一跳路由器会根据 IGMP 表和 PIM 生成组播路由表,其他路由器根据 PIM 生成组播
路由表
PIM-DM
PIM-DM 通过扩散一减枝的方式形成组播分发树,还有其他机制,邻居建立,断言,接,状
态刷新 PIM 基于 IP 报文,使用目的 IP 224.0.0.13,IP 协议号 103
报文类型
1.Helo:建立维护 PIM 邻居关系
2.加入/剪枝报文:在 PIM-DM 仅使用剪枝,去除无效组播转发路径
3.嫁接:恢复转发路径
4.嫁接确认:对嫁接进行确认
5.断言:在多个组播路由器之间选择一个最优路由器朝下游转发组播流量
PIM 工作原理
邻居发现
1.建立邻居:PIM 路由器会互相发送 Hello 报文,收到对方发送的 Hello 包,认为邻居建立成
2.维护邻居:PIM 路由器周期 30s 发送 Hello 报文,如果 105s 没收到对方发的 Helo,认为邻
居失效,断开邻居关系 3.DR:每个网段会选举一个 PIM 的 DR,首先比较 DR 优先级,值大优先,然后比较 IP 地址,
值大优先
扩散
1.PIM 路由器收到流量后进行 RPF 检查
2.RPF 检查通过后,建立(S,G)表项,老化时间 210s,把流量朝其他所有接口泛洪
断言
当 PIM 路由器收到重复的组播报文后,会触发断言机制,选举一个最优的路由器朝 下游网
段转发组播数据
选举规则如下
1.去往组播源单播路由协议优先级高的优先
2.去往组播源开销小的优先
3.下游接口 IP 地址大的优先
维护机制:竞选失败的 loser 维护-个 180s 的定时器,超时后继续往下游转发流量,重新触发
选举
剪枝:当路由器无需朝下游转发组播数据时,会触发剪枝,删除无效的转发路径
1.朝上游接口发送剪枝报文
2..上游设备收到剪枝报文后,把收到报文的接口从下游列表中删除,
状态刷新机制
1. 早期剪枝设备会维护剪枝定时器,210s 刷新,用于给新加组成员恢复转发路径
2. 2.后面出现嫁接机制,无需剪枝定时器,通过状态刷新机制可以让剪枝定时器永不超时
嫁接机制
1.当成员新加入组时,会发送 IGMP 报告给 IGMP 路由器
2.IGMP 路由器形成 IGMP 组信息后会朝上游发送嫁接报文,希望恢复转发路径
3.收到嫁接报文的上游设备会把收到报文的接口恢复到出接口列表中,回复嫁接 ACK 报文
PIM-SM
PIM-SM 优点 1.只有需要转发组播流量的设备才维护组播路由表,,减少其他设备的负担
2.通过 RP,可以让所有路由器知道成员的位置信息!
PIM-SM 建立分发树的流程
1.在网络中选举一个 RP
2.最后一跳路由器把,成员位置信息告诉 RP,从而建立 RP->成员的 RPT
3.RP 收到组播流量后利用注册机制,建立一个组播源->RP 的 SPT
4.利用切换机制把,RPT+SPT 的树切换成 最优的 SPT
RP 选举
RP,叫做汇聚点,网络中所有设备必须知道 RP 在哪,配置方式如下
1.静态 RP:管理员在所有路由器上手工指定 RP 的 IP
2.动态 RP:通过选举机制,动态选举一个 RP
建立 RPT
以 RP 为根,以成员为叶子节点的组播分发树,指导组播数据从 RP 发往成员
1.PC 加组,最后一跳路由器形成 IGMP 组表项和 PIM 路由表项
2.最后一跳路由器朝 RP 方向逐跳发送 join 报文,沿途路由器建立(*,G)表项,上游接口是去
往 RP 的接口,下游接口是收到 join 的接口
3.join 报文到达 RP,RP 建立(*,G)表项,上游接口为 NULL,下游接口是收到 join 的接口至
此,RPT 建立成功
建立 SPT:以组播源为根,以 RP 为叶子节点的组播分发树,指导组播数据从源发往 RP
1.组播源发出组播数据,第一跳路由器收到后把组播数据封装在单播注册报文中,源 IP 第一
跳路由器,目的 IP 是 RP,单播发给 RP
2.RP 收到注册报文后,做两件事情
a.解封装,在有 RPT 的情况下把组播数据发给接收者
b.朝第一跳路由器发送 ioin 报文,沿途路由器建立(S,G)表项,上游接口是去往第一跳路由
器的接口,下游是收到 join 的接口
至此,SPT 建立成功
注册停止机制
1.第一跳路由器建立(S,G)表项后,不会停止注册,会把组播流量按照(S,G)表项发给 RP 并
复制一份放进注册报文中单播发给 RP,所以导致 RP 会收到重复的组播流量
2.为了避免收到重复的流量,RP 收到纯组播流量后,已经确定 SPT 建立成功,会单播发送
注册停止报文给第一跳路由器,让第一跳路由器停止发送注册 PIM DR
在源段网络或成员端网络有多个路由器时,可能产生重复的组播流量此时可以选举一个 DR,
由 DR 负责建立 SPT/RPT,来转发组播流量,避免重复组播报文
RPT 次优路径问题
由于组播源到成员之间的分发树过于依赖 RP,会导致两个问题
1.有可能产生次优路径
2.所有流量经过 RP,导致 RP 负担较大
可以通过 SPT 切换机制解决
SPT 切换:把 SPT+RPT 的组播分发树切换成从源到接收者的最优路径 SPT
1.成员端 DR 收到组播流量后触发 SPT 切换(默认收到第一个包就切换)
2.成员端 DR 根据组播数据的 SIP(组播源的 IP)朝组播源方向发送 join 报文
3.沿途收到 join 报文的设备建立(S,G)表项,入接口是去往组播源的接口,出接口是收到 join
报文的接口
4.在切换成最优 SPT 的同时,需要把原来的 SPT+RPT 组播分发树中不需要的转发路径剪枝
5.成员端 DR 会朝着 RP 的方向发送剪枝报文,RP 也会朝组播源的方向发送剪枝报文,剪掉
无效的转发路径
IPV6
报文格式: IPv6 报文分为三部分
1. IPv6 基本报头
2. IPv6 扩展报头
3..上层数据(例如 ICMP, TCP, UDP)
IPv6 基本报头:定长 40B,携带了数据转发必须的信息,IPv6 网络的中间路由器必须处理基本
报头
Version:版本,取值为 6,长度为 4bit
Trafic Class:流分类,在 Q0S 中给数据分类或标识优先级,长度为 8bit
Flow Label:流标签,在 Q0S 中一 种对数据进行分类或标识的方法,长度为 20bit
Payload Length:载荷长度,扩展报头+.上层数据,长度为 16bit
Next Header:下一个头部,相当于 IPv4 中的 Protocol, 标识上层协议类型,长度 8bit
Hop Limit:跳数限制,相当于 IPv4 的 TL,长度 8bit
SIP:长度 128bit
DIP:长度 128bit
对比 IPV4 来说有哪些保持不变: Version, SIP, DIP
对比 IPV4 来说有哪些仅修改名字: Trafic Class, Payload Length, Next Header, Hop Limit
对比 IPV4 来说有哪些新增: Flow Label
对比 IPV4 来说有哪些删除: IHL, ID, Flags, Fragment Offset, Header CheckSum, Option,
Padding IPv6 扩展头部:携带数据转发不必须的信息,可有可没有,大部分扩展报头中间路由器不处
理,少部
分扩展报头中间路由器处理
逐跳选项报头:Next Header=0
目的选项报头:Next Header=60
路由报头:Next Header=43
分段报头:Next Header=44
认证报头:Next Header=51
封装安全净载报头:NextHeader=50
注:如果出现多个扩展报头,只能按照上面的顺序排列,目的选项报头可以出现两次,一次在
逐跳报头上面,一次在所有扩展报头上面
ICMPV6
ICMPv6:提供差错报文和信息报文,并为其他的 IPv6 协议提供报文支持差错报文:报告错误,
Type=[0,127]
1.Type=1:目的不可达
a.Code=0:无路由
b.Code=1:因管理原因禁止报文
c.Code=2:未指定
d.Code=3:地址不可达
e.Code=4:端口不可达
2.Type=2:数据包过大,Code=0
3.Type=3:超时
a.Code =0:跳数为 0
b.Code=1:分片重组超时
4.Type =4:参数错误
a.Code=0:错误的报头
b.code=1:无法识别的 Next Header
c.Code=2:无法识别的 IPv6 选项
信息报文:传输某些信息,Type=[128,255]
1.Type=128:Echo Request,请求报文,Code=0
2.Type=129:Echo Rplay,响应报文,cCode=0
Path Mtu:在 IPv6 网络中,中间节点不处理分片重组,需要源端分片,目的端重组,所以源
端需要使用 PathMtu 机制探测路径 MTU,路径 MTU 就是路径上最小的 MTU Path Mtu 工作原理
1.源端根据自己 MTU 发送数据包
2.数据包到达 MTU 较小的设备时,设备丢弃数据包,回复一个 Type=2 的 ICMP 报文,表示
数据包过长,并指定自己的 MTU
3.源端收到报文后,修改 MTU 为指定的 MTU,重复 1,2 步骤,直到数据包到达目的端,此
时源端的 MTU 头路径上最小的 MTU
ICMPv6 其他报文
邻居发现(NDP)
1.Type=133:路由器请求(RS)请求路由器通告一些信息
2.Type=134:路由器通告(RA),5 路由器通告一些信息给对端
3. Type = 135:邻居请求(NS),用于请求邻居的 MAC 地址
4.Type =136: 邻居通告(NA),用于通告自己的 MAC 地址给邻居
5.Type=137:重定向(Redirect),修改网关
NDP:邻居发现协议,有以下功能
1.路由器发现:发现网关路由器,获取路由器通告的一些信息
2.无状态地址配置:通过路由器通告的信息,自动产生 IPv6 地址
3.重复地址检测:检测链路上是否有 IPv6 地址冲突
4.地址解析:根据已知目的 IPv6 地址,解析目的 MAC 地址
5.邻居状态跟踪:通过 NS,NA 报文,维护邻居状态,判断邻居是否可达
6.重定向:给 PC 修改更优的网关
路由器发现:使用 RS,RA 报文,帮助 PC 确定网关,获取 IP 前缀,获取其他参数工作原理:
触发式
1.PC 发送 RS 报文,用于请求路由器发送 RA
2.路由器收到 RS 后,触发回复 RA,通告一些信息
3.PC 收到 RA 报文后,根据报文中的信息,可以确定网关,无状态自动配置,修改其他参数
周期式
1.路由器周期 200s-600s 发送 RA 报文
2.PC 收到 RA 报文后,根据报文中的信息,可以确定网关,无状态自动配置,修改其他参数
无状态自动配置
重复地址检测:DAD,使用 NS,NA 报文
工作原理
1.PC1 获取 IPv6 地址后,进行 DAD,发送一个 NS 报文,对自己新获取的 IPv6 地址进行请
求,源 IP 为::,目的 IP 为自己新获得 IPv6 地址的被请求节点组播地址
2.如果收到 NA 回应,则代表此地址有其他设备在使用,产生冲突,地址不可用
3.没有收到 NA,则认为地址没有冲突,可以使用 地址解析:使用 NS,NA 报文
1.PC1 需要请求对方的 MAC,发送 NS 报文,IP 头部源 IP 是自己单播 IPv6,目的 IP 是对端
IPv6 的被请求节点组播地址,NS 报文中 TargetIp 为需要请求的 IP 地址,Source Link-Layer
为自己的 MAC 地址
2.PC2 收到 NS 后,学习邻居的 IPv6 地址和 MAC 地址,建立邻居表,同时单播回复 NA 报
文,IP 头部源目 IP 是自己和邻居的单播 IPv6 地址,NA 报文中 TargetIP 是自己的 IPv6 地址,
Source Link-Layer 为自己的 MAC 地址
3.PC1 收到 NA 后,学习邻居的 IPv6 地址和 MAC 地址,建立邻居表
邻居状态跟踪:IPv6 中定义了邻居机制,通过地址解析建立邻居表,维护邻居的状态信息
状态分类
1.Incomplete:未完成,代表正在进行地址解析,还没有获取对端 MAC
2.Reachable:可达,代表以及获取邻居 MAC,建立邻居表项,邻居可达
3.stale:陈旧,代表邻居表项在规定时间内(30s)没有使用过,未知邻居是否可达
4. Delay:延迟,未知邻居是否可达,已经发送 NS 进行探测
5.Probe:探测,未知邻居是否可达,已经发送单播 NS 进行探测
状态迁移过程
1.没有进行地址解析,处于 Empty,无邻居表项
2.PC1 发送 NS 报文后,建立未完成的邻居表项,进入 Incomplete 状态
3.PC2 收到 NA 报文后,进入 Reachable 状态,邻居表项建立完成,邻居可达
4.固定时间内(30s)没有流量刷新,则进入 stale 状态,邻居是否可达未知
5.在 stale 状态,如果需要发送流量,则进入 Delay 状态,发送 NS 报文,对邻居进行探测
6.发送 NS 报文后,如果规定时间内(5s)没有收到 NA 回应,则进入 Probe 状态,再一次探
测,如果收到回应,进入 Reachable
7.进入 Probe 状态后,间隔 1s 发送一个单播 NS 报文,总共发送 3 次,没有收到 NA 回应,
则进入 Empty 状态删除邻居表项,如果收到回应,进入 Reachable
重定向:路由器接收流量和发送流量是同一个接口时,会触发重定向报文,帮助 PC 修改更优
的网关
IPV6 地址
IPv6 地址配置方式
1.静态
2.动态
a.无状态自动配置:服务器不需要记录主机的地址状态信息
b.有状态自动配置(DHCPv6):服务器需要记录主机的地址状态信息 无状态自动配置过程
1.PC1 生成本地链路地址,通过 DAD 检测,启动本地链路地址
2.PC1 发送 RS 报文,请求网关路由器发送通告信息,RS 报文源 IPv6 是本地链路地址,目
的 IPv6 是 FFO2::2(所有路由器监听的组播地址)
3.路由器收到 RS 后触发回复 RA,源 Pv6 是本地链路地址,目的 IPv6 是 FF02::1(所有节点
监听的组播地址),携带 IPv6 前缀信息及相关参数
4.PC1 收到 RA 后根据前缀信息+自动生成的接口 ID,得到一个 IPv6 地址
5.进行 DAD 检测后,启动该 IPv6 地址
M/0 比特:控制 PC 自动获取地址的方式
M 比特
1. M 为 0:PC 使用无状态自动配置获取 IPv6 地址(默认为 0)
2. M 为 1:PC 使用有状态自动配置获取 IPv6 地址(忽略 0 比特)
o 比特
1.0 为 0:PC 使用无状态自动配置获取除 IPv6 地址以外其他参数(默认为 0)
2.0 为 1:PC 使用有状态自动配置获取除 IPv6 地址以外其他参数
A 比特:控制 PC 是否可以使用某个前缀进行无状态自动配置 RA 报文中每个前缀会有一个
A 比特
A 比特置位代表可以使用该前缀进行无状态自动配置
A 比特不置位代表不可以使用该前缀进行无状态自动配置
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值