SRv6----指令集

在IETF的SRv6 Network Programming文稿中定义了很多Behavior(行为),它们也被称为指令。每个SID都会与一个指令绑定,用于告知节点在处理SID时需要执行的动作。SRH可以封装一个有序的SID列表,为报文提供转发、封装和解封装等服务。

SRH

首先来了解一下SRH。SRH是IPv6扩展报文头通过携带Segment List等信息显式地指定一条SRv6路径。
SRH的格式如图:
SRv6----指令集_第1张图片
各字段说明:
SRv6----指令集_第2张图片

指令集

命名规则

  • End:表示当前指令的终止,开始执行下一个指令。对应的转发动作是将SL值减1,并将SL指向的SID复制到IPv6报文头的目的地址字段。
  • X:指定一个或一组三层接口转发报文。对应的转发行为是按照指定出接口转发报文。
  • T:查询路由转发表并转发报文。
  • D:解封装。移除IPv6报文头和与它相关的扩展报文头。
  • V:根据VLAN(Virtual Local Area Network,虚拟局域网)查表转发。
  • U:根据单播MAC查表转发。
  • M:查询二层转发表,进行组播转发。
  • B6:应用指定的SRv6 Policy。
  • BM:应用指定的SR-MPLS Policy。

常见指令

所有指令都是由上述一个或多个原子组合而成。我们介绍几个常用的指令。

  • End.X全称为Layer-3 cross-connect,End.X将报文从指定的出接口转发,可用于TI-LFA、严格显式路径的TE等场景。
  • End.DT4全称为Decapsulation and specific IPv4 table lookup,支持解封装报文,在指定IPv4路由表查表转发,主要用于L3VPNv4场景,可作为基于VPN实例(per-VPN)的VPN标签使用。
  • End.DT6全称为Decapsulation and specific IPv6 table lookup,支持解封装报文,在指定的IPv6路由表中查表转发,主要用于L3VPNv6场景,可作为基于VPN实例(per-VPN)的VPN标签使用。

以End.DT4为例:
在下面的拓扑图里,R1-R2-R3-R4是SRv6域,R1和R4各拿一个loopback接口放到a中,这样我们可以简单模拟一个L3VPNv4场景1.1.1.1到4.4.4.4 经过SRv6域互通的场景,
SRv6----指令集_第3张图片
这时,在R1的SRv6的Local SID 1001::1:0:0/128 的类型是End.DT4,会查找a的路由表。
SRv6----指令集_第4张图片
从R4上也能看到 a路由表中1.1.1.1/32 下一跳1001::1:0:0,
SRv6----指令集_第5张图片
4.4.4.4 ping 1.1.1.1,在PE1上收到外层IPv6目的是1001::1:0:0的报文,按照指令解封装,到a路由表查找路由。
在这里插入图片描述
解封装后内层目的IP是1.1.1.1,在a路由表中找到1.1.1.1下一跳送出去。
在这里插入图片描述

Flavor附加行为

PSP:倒数第二个Endpoint节点移除SRH。
USP:最后一个Endpoint节点移除SRH。
USD:最后一个Endpoint节点解封装外层IPv6报文头。

你可能感兴趣的:(#,SRv6,网络,srv6,sr,sdn)