雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 450|回复: 0

[学习/资料] 【SPOTO思博网络】【网工入门基础】MPLS《SRv6》

[复制链接]
发表于 2022-1-19 15:30:00 | 显示全部楼层 |阅读模式
【SPOTO思博网络】【网工入门基础】MPLS《SRv6》
这两年,SRv6可谓是通信界的“超级网红”。不管是技术峰会,还是行业论坛,都少不了它的身影。很多大佬甚至声称:“SRv6是未来网络的灵魂”。


SRv6,简单来理解,其实就是SR+IPv6。




什么是SRv6?



SRv6技术就是采用现有的IPv6转发技术,通过扩展IPv6报文的头域,实现类似标签转发的处理。


SRv6将一些IPv6地址定义成实例化的SID(Segment ID),每个SID有着自己显式的作用和功能,通过不同的SID操作,实现简化的VPN,以及灵活的路径规划。





file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D5E.tmp.jpg

SRv6 Segment


与SR MPLS的Segment不同,SRv6的Segment有128bits,而且分成了三部分:


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D5F.tmp.jpg


Locator(位置标识)


网络中分配给一个网络节点的标识,可以用于路由和转发数据包。Locator有两个重要的属性,可路由和聚合。在SRv6 SID中Locator是一个可变长的部分,用于适配不同规模的网络。


Function(功能)


设备分配给本地转发指令的一个ID值,该值可用于表达需要设备执行的转发动作,相当于计算机指令的操作码。在SRv6网络编程中,不同的转发行为由不同的功能ID来表达。一定程度上功能ID和MPLS标签类似,用于标识VPN转发实例等。

Args(变量)


转发指令在执行的时候所需要的参数,这些参数可能包含流,服务或任何其他相关的可变信息。


从SRv6 SID的组成来看,SRv6同时具有路由和MPLS两种转发属性,可以融合两种转发技术的优点。



file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D60.tmp.jpg
SRv6扩展头

为了在IPv6报文中实现SRv6转发,引入了一个SRv6扩展头(Routing Type为4),叫Segment Routing Header(SRH),用于进行Segment的编程组合形成SRv6路径。

下图是SRv6的报文封装格式。绿色的是IPv6报文头,棕色部分是SRH,蓝色是报文负荷。


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D61.tmp.jpg

IPv6 Next Header字段取值为43,表示后接的是IPv6路由扩展头。Routing Type = 4,表明这是SRH的路由扩展头,这个扩展头里字段解释如下:

file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D62.tmp.jpg


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D63.tmp.jpg
SRv6三层编程空间

SRv6具有比SR-MPLS更强大的网络编程能力。SRv6的网络可编程性体现在SRH扩展头中。SRH中有三层编程空间:


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D64.tmp.jpg

第一部分是Segment序列。如前所述,它可以将多个Segment组合起来,形成SRv6路径。这跟MPLS标签栈比较类似。


第二部分是对SRv6 SID的128比特的运用。众所周知,MPLS标签封装主要是分成四个段,每个段都是固定长度(包括20比特的标签,8比特的TTL,3比特的Traffic Class和1比特的栈底标志)。而SRv6的每个Segment是128比特长,可以灵活分为多段,每段的长度也可以变化,由此具备灵活编程能力。


第三部分是是紧接着Segment序列之后的可选TLV(Type-Length-Value)。报文在网络中传送时,需要在转发面封装一些非规则的信息,它们可以通过SRH中TLV的灵活组合来完成。


SRv6通过三层编程空间,具备了更强大的网络编程能力,可以更好地满足不同的网络路径需求。


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D65.tmp.jpg
SRv6报文转发流程


file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wps5D66.tmp.jpg

上图展示了SRv6转发的一个范例。在这个范例中,结点R1要指定路径(需要通过R2-R3、R4-R5的链路转发)转发到R6,其中R1、R2、R4、R6为有SRv6能力的的设备,R3、R5为不支持SRv6的设备。


步骤一:Ingress结点处理


R1将SRv6路径信息封装在SRH扩展头,指定R2和R4的END.X SID,同时初始化SL = 2,并将SL指示的SID A2::11拷贝到外层IPv6头目的地址。R1根据外层IPv6目的地址查路由表转发到R2。

步骤二:End Point结点处理


R2收到报文以后,根据外层IPv6地址A2::11查找本地Local SID表,命中END.X SID,执行END.X SID的指令动作:SL—,并将SL指示的SID拷贝到外层IPv6头目的地址,同时根据END.X关联的下一跳转发。

步骤三:Transit结点处理


R3根据A4::13查IPv6路由表进行转发,不处理SRH扩展头。具备普通的IPv6转发能力即可。

步骤四:End Point结点处理


R4收到报文以后,根据外层IPv6地址A4::13查找本地Local SID表,命中END.X SID,执行END.X SID的指令动作:SL—,并将SL指示的SID拷贝到外层IPv6头目的地址,由于SL = 0, 弹出SRH扩展头,同时根据END.X关联的下一跳转发。

步骤五


弹出SRH扩展头以后,报文就变成普通的IPv6头,由于A6::1是1个正常的IPv6地址,遵循普通的IPv6转发到R6。


从上面的转发可以看出,对于支持SRv6转发的节点,可以通过SID指示经过特定的链路转发,对于不支持SRv6的节点,可以通过普通的IPv6路由转发穿越。这个特性使得SRv6可以很好地在IPv6网络中实现增量部署。



文章来源:综合CSDN技术平台多篇文章,因觉优质,特此分享,侵删。
进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-22 22:32 , Processed in 0.110384 second(s), 19 queries , Gzip On.

快速回复 返回顶部 返回列表