什么是VCCV n VCCV, Virtual Circuit Connectivity Verification,是用来诊断PW(PesudoWire,即Virtual Circuit)是否有问题的一个OAM工具,它在RFC 5085中定义。 n 它用RFC 4379中定义的MPLS PING的机制来检测PW的连通性。RFC4379只是定义了一个通用的方法和该方法所用的报文格式,而VCCV则定义了如何携带RFC 4379定义的MPLS ping报文通过PW从而来检测PW的连通性,还定义了如何扩展LDP来向PW peer来通告自己的VCCV能力。 n VCCV由三部分组成
§ 信令部分,将自己的VCCV能力发布给peer
§ 封装方式,通过一种control channel,让接收者可以截获,说明其内容
§ 各种VCCV操作模式规范 CC and CV types n VCCV定义了多种Control Channel (CC) Types和多种Connectivity Verification (CV) Types. n 所谓的CC就是逻辑上的一种封装方式,里面封装了VCCV消息的payload,RFC 5085用bitmask的方式目前定义了这么几种: n 对于MPLS PW, CC type包括
§ Bit 0 (0x01) - Type 1: PWE3 Control Word with 0001b as
first nibble (PW-ACH, see [RFC4385])
Bit 1 (0x02) - Type 2: MPLS Router Alert Label
Bit 2 (0x04) - Type 3: MPLS PW Label with TTL == 1
n 对于L2TPv3 PW, CC type包括
§ Bit 0 (0x01) - L2-Specific Sublayer with V-bit set n 简单说来,CC就是一种让PW peer可以识别出这是一个VCCV报文的封装方式 所谓的CV type,即不同的诊断工具。 n 对于MPLS PW, RFC 5085定义了这么几种CV types
§ Bit 0 (0x01) - ICMP Ping
§ Bit 1 (0x02) - LSP Ping n 对于L2TPv3 PW, RFC 5085定义了这么几种CT types
§ Bit 0 (0x01) - ICMP Ping 具体说明一下MPLS CV types n ICMP PING
§ ICMP PING就是在VCCV的消息中,携带ICMPv4(RFC 792)或者ICMPv6(RFC4443) encoding的ICMP 消息。 n LSP PING
§ LSP PING就是在VCCV的消息中,携带RFC4379中定义的MPLS PING的消息,其中,target FEC Stack包含sub-TLV of sub-Type 8 for the “L2 VPN endpoint”, 9 for “FEC 128 Pseudowire (deprecated)”, 10 for “FEC 128 Pseudowire”, or 11 for the “FEC 129 Pseudowire”. Sub-TLV 用来表示正在verify的PW.
如果一台设备不支撑任何上述CC和CV,则发布LDP消息给peer的时候,消息中的CC和CV field应该被置为全0。接收方必须假定对方没有VCCV的能力 In-band Control Channel n MPLS PW的第一种CC type,是一个in-band control channel,使用的是RFC 4385中定义的PW Associated Channel 。格式如下 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 1|Version| Reserved | Channel Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ n 其中,Channel Type设为0x0021表示IPv4,设为0x0057表示IPv6。 n Version当前为0 n 由于这种CC用的是PW Associated Channel,它跟user traffic一样携带在PW里面,只是通过first nibble来区分,所以它跟普通的用户数据走的是同一个条路径。 n 如果PW传输数据的时候用了control word,那么这种方式的CC必须要能够被支撑 Out-of-Band VCCV n MPLS PW的第二种CC方式,即用MPLS alert label,由于在PW label前加了一个MPLS alert label,会导致ECMP的时候,VCCV报文跟user data走的不一致的路径,所以是out-of-band方式。 n 无论user data中control word是否使用,都可以用这种方式来做control channel. n 当control word不使用的时候,这种方式被认为是首选方式 TTL Expiry VCCV n 这种方式通过把PW label的TTL置为1,使得在egress PE上处理的时候,会终结这个packet而不至于发送出去,但是它也会导致ECMP的情况跟user data走的不同的路径,所以本质上也是out-of-band方式 VCCV能力的发布 n VCCV能力通过信令协议来发布,双方必须达成一致之后,才能发送VCCV消息。 n [RFC4447] 定义了一个 Interface Parameter Sub-TLV 域在 LDP PW ID FEC (FEC 128) 和一个Interface Parameters TLV 在 LDP Generalized PW ID FEC (FEC 129) 来发布PW的能力. 一个可选的 sub-TLV parameter 被定义来显示VCCV的CC和CV能力. 如果用FEC ID 128, VCCV的参数被携带在 Interface Parameter sub-TLV 域. 如果用FEC ID 129,VCCV参数被作为Interface parameters TLV的一个inerface parameters sub-TLV. n VCCV parameter ID被定义在RFC 4446里面,是0x0c Parameter ID Length Description 0x0c 4 VCCV
具体格式如下 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0x0c | 0x04 | CC Types | CV Types | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ n 当接收者收到VCCV能力通告的时候,假设多个CC types都支撑,那么接收方应该按照如下优先级来进行选择
§ 1. Type 1: PWE3 Control Word with 0001b as first nibble
§ 2. Type 2: MPLS Router Alert Label
§ 3. Type 3: MPLS PW Label with TTL == 1
n <FONT size=3>对于MPLS PW, CV Type 0x02,即LSP Ping 是默认模式,CV Type 0x01,即<SPAN style="mso-bidi-font-weight: bold" lang=EN-US>