SegmentRouting(IPv6)-2基本原理
为了实现SRv6,IPv6报⽂进⾏了⼀些扩展,新增了⼀种扩展头,我们叫做Segment Routing Header,简称SRH。
在SRH中有两个关键信息,⾸先是IPv6地址形式的Segment List,Segment List进⾏有序排列,就构成了SRv6⾥的显式路径;另外⼀个关键字段是Segment Left(SL),Segment Left是⼀个指针,它指⽰当前活跃的Segment List。Segment Left的最⼩取值是0,最⼤取值是Segment List的个数减1。Segment List是逆序压栈的,也就是说最下⾯的Segment List[2]是第⼀个需要处理的Segment List,中间的Segment List[1]是第⼆个需要处理的,上⾯的Segment List[0]是最后需要被处理的。
天狮学院在SRv6中,IPv6⽬的地址(DA)字段是⼀个不断变换的字段,它的取值由Segment Left字段和下⾯的Segment List共同决定,当指针Segment Left指向⼀个活跃的段,⽐如此处的Segment List[2]时,需要将Segment List[2]的IPv6地址复制到IPv6⽬的地址字段。
转发层⾯,如果说⼀个节点不⽀持SRv6,那么就不需要处理IPv6报⽂⾥⾯的SRH信息,仅依据IPv6⽬的地址字段,查IPv6路由表,依靠最长匹配原则,进⾏普通的IPv6转发即可;如果⼀个节点⽀持SRv6,且出现在了Segment List中,那么就需要处理SRH,将Segment Left进⾏减1操作,然后将指针偏移向新的活跃段,之后将Segment List信息(IPv6地址格式)复制到IPv6⽬的地址字段,然后将报⽂向下⼀个节点进⾏转发。当Segment Left字段减为0时,节点可以弹出SRH报⽂头,然后对报⽂进⾏下⼀步处理。
在SRv6中,存在三重编程空间,⾸先是由Segment List构成的路径信息可以编程;其次是报⽂⾥新增的可选TLV字段可以进⾏编程;最后⼀个可编程空间蕴藏在IPv6地址形式的Segment List⾥。
IPv6地址形式的Segment List,我们通常称为IPv6 Segment,也可以简称为IPv6 SID,接下来我们就详细看IPv6形式的SID是怎么可以编程的。
Segment List是IPv6地址形式,这个IPv6地址不同于我们理解的传统IPv6地址,在SRv6中,IPv6地址赋予了新的含义,它有三个部分组成,⾸先是Locator部分,其次是Function部分,最后是Argument部
小龙女定妆照
分,这三个部分共同构成了128位的IPv6地址,其中Argument部分是可选的,可以不带。
Locator部分配置完成以后,会在本机⽣成⼀条路由,通过IGP向外扩散,⽹络中的其它节点通过这条路由可以定位到配置该Locator的节点,所以我们说,locator部分是具有路由功能的。
Function部分是标识绑定到本机的指令,这样的话,如果本机收到⼀个SID,先判断Locator部分,如果是本机发布的,那需要处理本机绑定的指令。指令是本机可编程的⾏为,随着指令的类型不同,SID的类型也是不相同的,不同类型的SID具有不同的功能,下⾯介绍不同类型的SID
SRv6的SID是设备可以定义的,它的类型有很多,下⾯介绍⼏个常见的SID
1- End SID:这种类型的SID代表⽹络中的⼀个⽬的节点,它给设备的指令是处理SRH,更新IPv6⽬的地址字段,然后查IPv6的路由表进⾏报⽂转发
八犬传主题曲>人教版六年级下册数学教学计划
2- End.X SID: 它代表的是⽹络中的⼀个邻接,它给设备的指令是处理SRH,更新IPv6⽬的地址字段,然后从End.X SID指定的出接⼝转发报⽂
3- End.DT4 SID: 这是⼀种PE类型的SID,主要⽤在IPv4 L3VPN场景,它给设备的指令是解封装报⽂,去除外层的SRH和IPv6报⽂头,然后根据剩余报⽂⾥的⽬的地址查IPv4 VPN实例路由表进⾏转发
4. End.DT6 SID:这是⼀种PE类型的SID,主要⽤在IPv6 L3VPN场景,它给设备的指令是解封装报⽂,去除外层的SRH和IPv6报⽂头,然后根据剩余报⽂⾥的⽬的地址查IPv6 VPN实例路由表进⾏转发中国新说唱什么时候播
廖昌永简介
5. End.DX2 SID:这种SID主要⽤在L2VPN/EVPN VPWS场景,它给设备的指令是解封装报⽂,去除SRH和IPv6报⽂头,然后将剩余报⽂从该SID绑定的出接⼝转发出去。
不同类型的SID对应的转发⾏为是不同的,可以通过编程新的SID来满⾜⽤户新的业务诉求,此即我们前⾯所说的SID的第三重编程空间,即转发⾏为可编程。