组播
2021-05-23 06:07:31 2 举报
AI智能生成
组播知识点
作者其他创作
大纲/内容
组播网络架构<br>
组播源与第一跳组播路由器<br>
中间的组播路由器
最后一条组播路由器和组播接收者
组播角色
组播源
组播路由器
组播接收者
组播组
组播IP地址<br>
组播IP地址范围
永久组地址范围及常用地址
ASM临时组地址范围
SSM临时组地址范围<br>
本地管理组地址范围
组播MAC地址<br>
MAC地址分类
组播MAC与组播IP的映射
IGMP
IGMP概述
IGMPv1
报文类型<br>
成员关系查询
子主题
成员关系报告
报文格式
查询及响应<br>
路由器周期性发送成员关系查询报文
组成员计时器超时后用成员关系报告报文回复
第一个回复的组成员抑制其它组成员回复<br>
组成员加入及离开
可通过成员关系报告报文加入
组成员静默离开,路由器在130秒后不再发送组播流量
查询器
需要查询器的原因
选举机制<br>
IGMPv2
报文类型
常规查询
特定组查询
成员关系报告
离组
版本1的成员关系报告
报文格式
查询及响应
组成员离开
组成员离开时发送离组报文
路由器发送特定组查询报文
路由器连续2次 1秒内没有收到回应报文认为没有组成员<br>
查询器
选举机制
故障切换
IGMPv3
与V1和V2的主要区别
报文类型
常规查询
特定组查询
特定组/源查询
成员关系报告
此报文目的IP为224.0.0.22<br>
离组使用特殊的成员关系报告报文
报文格式
成员关系查询报文格式
成员关系报告报文格式
6种类型的组记录<br>
其它的字段...
查询及响应
查询器发送常规查询报文
组成员用包含Mode_Is_Include类型组记录的成员关系报告报文回应
组成员离组
组成员发送包含Change_To_Include_Mode类型组记录的成员关系报告报文
其中组地址为之前自己加入的组播组
组播源为空
查询器收到后发送特定组/源查询报文,来确认是否还有想接收组播源发往组播组流量的组成员
查询器<br>
和IGMPv2一样<br>
组播路由协议的作用<br>
确定上下游接口
维护组播路由表项
组播路由表项包含的内容
构建无环的树
组播相关表项
IGMP组表
IGMP路由表<br>
组播协议路由表
组播路由表
组播路由表项的类型<br>
表项的四个关键信息
组播转发表
组播分发树
组播分发树的来源
SPT<br>
以组播源为根<br>
从源到接收者路径最短
为每个组播组的不同组播源创建(S,G)表项
RPT<br>
以RP为根、建立RPT分支;组播流量从源到RP、从RP到接收者
多个组播组共用一个RP,为每个组播组只维护一个(*,G)表项
组播流量的传输路径可能不是最优路径<br>
RPF
作用
选择RPF路由<br>
组播流量转发中使用RPF检查<br>
PIM-DM
PIM-DM工作模式<br>
先假定网络中每个分支都存在组播接收者<br>
将组播流量扩散到全网,PIM-DM形成的SPT覆盖全网<br>
没有组播接收者的分支使用剪枝将自己从SPT上剪掉<br>
需要组播流量的话再用嫁接机制把自己所在分支嫁接到SPT上<br>
报文类型<br>
PIM协议使用IP封装,协议号103<br>
hello
作用<br>
用于发现PIM直连链路邻居、参数协商、邻居关系维护
通告hello报文选举DR,DR可以充当IGMPv1中的查询器,对于PIM-DM没有用<br>
源IP为路由器的接口IP地址<br>
目的IP为224.0.0.13(此地址是所有PIMv2路由器的组播地址)<br>
缺省hello报文发送间隔为30秒<br>
Join/Prune
剪枝报文源IP为路由器的接口IP地址<br>
剪枝报文的目的IP为224.0.0.13<br>
剪枝报文载荷中有剪枝的组播地址G和组播源S<br>
Graft(嫁接)<br>
嫁接报文是单播报文<br>
源IP是下游设备的接口地址<br>
目的IP是上游设备的接口地址<br>
报文中有(S,G)信息<br>
Graft-Ack
断言<br>
报文目的地址为224.0.0.13(所有PIM路由器监听的地址)<br>
报文中携带:组播源地址S、组播组G、到组播源的单播路由的优先级和度量值<br>
PIM邻居的建立、删除<br>
路由器接口激活PIM后便周期性发送PIM Hello报文<br>
发现直连邻居后,为邻居启动计时器<br>
计时器时间为对方hello报文中的holdtime(缺省105S)<br>
计时器超时前收到邻居发送的hello报文,刷新该计时器;计时器超时删除该邻居
扩散过程<br>
路由器收到组播报文后,先进行RPF检查<br>
检查通过后创建(S,G)表项,并将连接PIM邻居的接口添加到表项的下游接口<br>
将组播报文向所有下游节点转发<br>
经过扩散,最终每个路由器上都会创建(S,G)表项<br>
剪枝过程<br>
没有接收者的下游节点向上游节点发送剪枝报文<br>
上游节点收到后将相应的接口从组播转发表项(S,G)的出接口中删除<br>
为这个接口的剪枝状态启动一个计时器,计时器超时接口剪枝状态取消<br>
计时器超时前收到下游设备发来的剪枝报文,那么重置计时器<br>
因此下游设备需要周期性的向上游设备发送剪枝报文<br>
嫁接过程<br>
被剪枝的节点上出现了组播组成员时,不能等剪枝状态超时再接收流量,可使用嫁接机制主动恢复对组播流量的转发<br>
需要恢复接收组播数据的节点向上游节点发送嫁接报文来申请重新加入SPT中<br>
上游节点收到后恢复转发状态,并回复嫁接确认报文<br>
下游节点发送过嫁接报文后会启动一个嫁接计时器(缺省3S),计时器超时后仍未收到嫁接应答报文,则重新发送嫁接报文<br>
断言
避免同一网段存在多台组播路由器时,向同一网段发送重复的组播报文<br>
路由器(S,G)表项中的下游接口收到了组播流量,会触发断言机制。虽然此流量会因为RPF检查不通过丢弃<br>
触发断言机制的路由器会向所有PIM路由器(224.0.0.13)发送断言报文<br>
通过规则比较,获胜者成为网段的转发者<br>
到组播源的单播路由的优先级较高者获胜<br>
如果单播优先级相等,到组播源的度量值较小者获胜<br>
如果度量值相等,本地接口IP地址较大者获胜<br>
PIM-SM
工作模式<br>
假定所有主机都不需要接收组播数据,只向明确提出需要组播数据的主机转发<br>
选择某台路由器作为RP<br>
连接接收者的路由器向某组播组对于的RP发送加入报文<br>
这个加入报文被逐跳送往RP,所经过的路径形成RPT分支<br>
组播源侧DR向RP注册,触发建立SPT<br>
报文类型<br>
hello
register(注册)<br>
register-stop
Join/Prune<br>
Bootstrap
目的IP为组播地址224.0.0.13<br>
TTL值为1,因此是逐跳传到整个网络<br>
接口对端路由器收到后会记录报文中相关信息,并重新产生自举报文,向其连接接口泛洪<br>
Assert
Candidate-RP-Advertisement(候选RP通告)<br>
PIM邻居的建立、删除<br>
和PIM-DM一致<br>
DR选举<br>
与组播源相连的网络、与接收者相连的网络都有选举DR<br>
组播源侧DR负责向RP发送注册报文;接收者侧DR负责向RP发送加入报文<br>
DR选举过程<br>
路由器相互之间发送hello报文,hello报文中优先级值大的胜出<br>
如果优先级相同或网络中有路由器不支持携带优先级,路由器IP地址大的胜出<br>
当DR故障时,其他路由器超时后仍未收到DR的hello报文,则触发新的DR选举过程<br>
DR是可抢占的,华为设备接口DR优先级缺省为1,可以手动调整<br>
构建RPT<br>
接收者通过IGMP报文通知与其直连的DR要加入组播组G<br>
DR收到后,查找单播路由表,向该组播组对应的RP发送PIM加入报文<br>
从DR到RP所经过的路由器就形成了RPT分支,这些路由器都在其转发表中生成(*,G)表项<br>
组播流量先发往RP,再沿着RPT到达DR,最终到达接收者<br>
接收者不需要组播数据时,与其直连的DR会向RP发送剪枝报文<br>
上游节点收到剪枝报文后,在组播表项的出接口列表中删除这个接口<br>
同时上游节点检查自己是否有该组播组的接收者,如果没有,则继续向其上游节点转发剪枝报文<br>
组播源注册<br>
目的是向RP通知组播源的存在<br>
组播源侧的DR收到组播流量时,将其封装为注册报文,单播发送给该组播组相应的RP<br>
RP收到注册报文后,解封装后将其中的组播报文沿着RPT发给接收者<br>
同时RP向组播源发送(S,G)加入报文,那么从RP到组播源的路径形成SPT分支<br>
组播源再次发送组播数据时就可以沿着SPT到达RP,再由RP沿着RPT到达接收者<br>
RP收到组播数据后,会向组播源侧的DR单播发送注册停止报文<br>
组播源侧DR收到后不再发送注册报文,组播源注册过程结束<br>
RPT向SPT切换<br>
使用RPT发送流量会存在次优路径;RP负载可能过大的问题<br>
当接收侧DR在RPT上收到第一份组播流量时(也可设置发送的组播流量速率)触发RPT向SPT切换<br>
接收者侧DR向组播源S发送(S,G)加入报文,最终到达组播源侧DR<br>
中间经过的所有路由器都在其转发表中生成了(S,G)表项,从而建立了SPT分支<br>
接收者侧DR向RP逐跳发送包含RP位的剪枝报文<br>
假如此时只有这一个接收者,RP收到剪枝报文后会向组播源发送剪枝报文<br>
最终实现了从RPT向SPT的切换,之后组播数据直接从组播源发送到接收者<br>
RP的发现<br>
通过手工配置发现<br>
网络中所有PIM-SM路由器必须有到达RP的正确单播路由,用于构建RPT及发起注册过程<br>
通常使用RP的loop口作为RP地址,将其宣告进动态路由协议,可以实现冗余<br>
静态RP的接口不必激活PIM-SM,也就是loop口不用激活PIM-SM<br>
静态RP地址可以关联ACL,这样RP只为ACL所匹配的组播组服务<br>
网络中所有PIM-SM路由器必须将同一个组播组映射到相同的RP上;一个组播组只能映射到唯一的RP上<br>
通过BSR动态发现<br>
C-RP会向BSR(周期性)单播发送自己的候选通告<br>
候选通告中包含了C-RP自己负责的组播组范围、RP优先级及IP地址信息等<br>
BSR收集并汇总后,把汇总信息(封装在自己的自举报文中,周期性的)向全网进行泛洪<br>
网络中所有PIM-SM路由器都会收到这个汇总信息,然后采用相同的算法计算得出组播组与RP的映射关系<br>
这些汇总信息成为RP-set,又称为RP集,是组播组与RP的映射关系数据库<br>
RP选举规则<br>
C-RP所服务的组播组范围与该组播组地址匹配度最长的C-RP胜出<br>
若范围相同,比较C-RP的优先级,优先级高的获胜<br>
若优先级相同,则使用哈希(Hash)函数计算哈希值,值较大者获胜<br>
若优先级和哈希值都相同,则C-RP的IP地址较大者获胜<br>
可以同时部署这两种发现机制<br>
对于同一个组播组,若这两种机制映射的RP地址不同,优先使用BSR动态发现的RP<br>
当动态RP失效时,自动切换到手工配置的静态RP<br>
也可通过命令改变这种优先顺序<br>
BSR的选举<br>
BSR从C-BSR中选举,通过PIM自举报文进行选举<br>
自举报文中包含C-BSR优先级、哈希掩码长度、IP地址等信息<br>
先比较优先级,值最大的C-BSR成为BSR<br>
然后比较IP地址大的成为BSR<br>
BSR选举出来后,会周期性(缺省为60S)的向网络中泛洪自举报文,向整个网络通告自己的信息<br>
网络中的所有PIM-SM路由器都会侦听BSR所泛洪的通告并保存BSR相关信息<br>
SSM模型在PIM中的实现<br>
ASM模型包括PIM-DM和PIM-SM两种模式,SSM模型能借助PIM-SM的部分技术来实现<br>
因为接收者知道组播源的位置,SSM模型中不需要RP,不需要构建RPT,不需要组播源注册<br>
SSM模型需要IGMPv3和PIM-SM部分子集的支持<br>
构建SPT<br>
使用组播接收者准备加入的组播组地址来决定是构建SPT还是RPT<br>
接收侧DR收到接收者报告报文时,会先判断该报文的组地址是否在SSM地址范围内<br>
如果在SSM地址范围内,则为PIM-SSM构建SPT,DR向组播源逐跳发送通道的订阅报文<br>
沿途所经路由器构成了SPT路径,所有路由器都创建(S,G)表项<br>
如果不在SSM地址范围内,则为PIM-SM模型,按PIM-SM的机制处理<br>
IGMP snooping<br>
工作原理<br>
相关端口<br>
收到普遍组查询时处理过程<br>
收到成员关系报告时处理过程<br>
收到离组报文时处理过程<br>
IGMP snooping proxy<br>
知识点
STP
OSPF
ISIS<br>
BGP
MPLS
组播<br>
IPv6
Qos
PPP
堆叠、VRRP<br>
DHCP
AAA
BFD、NQA
NAT
SNMP<br>
VLAN<br>
Netstream
大题<br>
0 条评论
下一页