Segment Routing(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的第三重编程空间,即转发行为可编程。

发布了168 篇原创文章 · 获赞 46 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/f2157120/article/details/104474940