SRv6 Segment
Locator具有定位功能,所以一般要在SR域内唯一,但是在一些特殊场景,比如Anycast保护场景,多个设备可能配置相同的Locator。节点配置Locator之后,系统会生成一条Locator网段路由,并且通过IGP在SR域内扩散。网络里其他节点通过Locator网段路由就可以定位到本节点,同时本节点发布的所有SRv6 SID也都可以通过该条Locator网段路由到达。
Function代表设备的指令(Instruction),这些指令都由设备预先设定,Function部分用于指示SRv6 SID的生成节点进行相应的功能操作。
Funtion部分还可以分出一个可选的参数段(Arguments),此时SRv6 SID的格式变为Locator:Function:Arguments,Arguments占据IPv6地址的低比特位,通过Arguments字段可以定义一些报文的流和服务等信息。当前一个重要应用是EVPN VPLS的CE多归场景,转发BUM流量时,利用Arguments实现水平分割,具体请参考水平分割。
Function和Arguments都是可以定义的,这也反映出SRv6 SID的结构更有利于对网络进行编程。
本地SID表
- 定义本地生成的SID,例如End.X SID。
- 指定绑定到这些SID的指令。
- 存储和这些指令相关的转发信息,例如出接口和下一跳等。
SRv6 SID有很多类型,不同类型的SRv6 SID代表不同的功能。
End SID
End SID表示Endpoint SID,用于标识网络中的某个目的节点(Node)。类似SR-MPLS中的Node SID。
End SID通过IGP协议扩散到其他网元,全局可见,本地有效。
End.X SID
End.X SID表示三层交叉连接的Endpoint SID,用于标识网络中的某条链路。类似SR-MPLS中的Adjacency SID。
End.X SID通过IGP协议扩散到其他网元,全局可见,本地有效。
End.DT4 SID
End.DT4 SID表示PE类型的Endpoint SID,用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID在L3VPNv4场景使用,等价于IPv4 VPN的标签。End.DT4 SID也可以用于标识公网实例。
End.DT4 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配。
End.DT6 SID
End.DT6 SID表示PE类型的Endpoint SID,用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID在L3VPNv6场景使用,等价于IPv6 VPN的标签。
End.DT6 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配。
End.DX4 SID
End.DX4 SID表示PE类型的三层交叉连接的Endpoint SID,用于标识网络中的某个IPv4 CE。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文在该SID绑定的三层接口上转发。End.DX4 SID在L3VPNv4场景使用,等价于连接到CE的邻接标签。
End.DX4 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配。
End.DX6 SID
End.DX6 SID表示PE类型的三层交叉连接的Endpoint SID,用于标识网络中的某个IPv6 CE。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文在该SID绑定的三层接口上转发。End.DX6 SID在L3VPNv6场景使用,等价于连接到CE的邻接标签。
End.DX6 SID可以通过静态配置生成,也可以通过BGP在Locator的动态SID范围内自动分配。
End.DX2 SID和End.DX2L SID
End.DX2 SID表示二层交叉连接的Endpoint SID,用于标识一个端点。End.DX2 SID对应的转发动作是去掉IPv6报文头及其扩展头,然后将剩余报文转发到SID对应的出接口。End.DX2 SID可以用于EVPN VPWS场景。
特别的,如果网络中存在Bypass隧道,则会自动生成End.DX2L SID。
End.DT2U SID和End.DT2UL SID
如果网络中存在Bypass隧道,则会自动生成End.DT2UL SID。End.DT2UL SID可以用于本地双归PE发送Bypass单播流量。
End.DT2M SID
End.OP SID
End.OP SID(OAM Endpoint with Punt)是一个OAM类型的SID,主要用于对OAM报文实现上送操作。End.OP SID主要用于Ping/Tracert场景。如图3-14所示,如果想以A节点为起始节点,经过End.X SID A2:2::23,Ping节点D与节点E之间的End.X SID A4:4::45,则需要节点D处理并应答ICMPv6 Echo Request报文,此时节点A在构造Ping报文时需要插入节点D的End.OP SID A4:4::1。节点D收到Ping报文后,发现报文目的地址是自己的End.OP SID,然后检查A4:4::45是不是自己的本地SID,如果是,则返回Ping成功报文,反之,则上报非本地SID错误。
End.M SID
End.M SID用在SRv6尾节点保护场景,具体功能请参考尾节点保护。