Overlayで利用できるOAMは今どんな手段が標準議論されているのかを調査しました。

draft-tissa-nvo3-oam-fm-04

VXLANをはじめとするNVO3でのOAM提案は、過去にdraft-tissa-nvo3-oam-fm-04があったが2017/11/6Expireしている。筆頭はCisco、Huawei所属の人も連名である。実装的にはCisco NexusのNX-OSのみの実装と思われる。 また、RFC7455: Transparent Interconnection of Lots of Links (TRILL): Fault Management , RFC7456: Loss and Delay Measurement in Transparent Interconnection of Lots of Links (TRILL)も参照しており、TLVのTypeなどは再利用していることになっている。

ドキュメントの随所にIEEE802.1Qの記載があり、基本的な概念はIEEE802.1Q/IEEE802.1agから持ってきている。 登場する代表的な用語は以下で基本的にはIEEE802.1Qから持ってきている。

用語 意味
MP Maintenance Point [8021Q]
MEP Maintenance End Point [8021Q]
MIP Maintenance Intermediate Point [8021Q]
MA Maintenance Association [8021Q]
MD Maintenance Domain [8021Q]
CCM Continuity Check Message [8021Q]
LBM Loop Back Message [8021Q]
PTM Path Trace Message
MTV Multi-destination Tree Verification Message
ISS Internal Sub Layer Service [8021Q]
SAP Service Access Point [8021Q]

OAMのビットは、先頭から8bit目である。(https://datatracker.ietf.org/doc/html/draft-tissa-nvo3-oam-fm-04#section-4.2)

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |R|R|R|R|I|R|R|O|            Reserved                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                VXLAN Network Identifier (VNI) |   Reserved    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                      Figure 4 NVO3 shim with the "O" Flag```

これはVXLAN GPEを意識した位置である。

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |R|R|Ver|I|P|B|O|       Reserved                |Next Protocol  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                VXLAN Network Identifier (VNI) |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 2: VXLAN-GPE Header

脱線しているがNVO3標準のGENEVEはOAM bitがないようである。

   Geneve Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Ver|  Opt Len  |O|C|    Rsvd.  |          Protocol Type        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Virtual Network Identifier (VNI)       |    Reserved   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                    Variable-Length Options                    ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

OAMは以下のヘッダ構造になっている。

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |MD-L | Version | OpCode        |  Flags        |FirstTLVOffset |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
フィールド名 内容
MD-L(Maintenance Domain Level)(3bits) NVO3の場合は単一値で、ベースモードの場合は3
Version(5bits) 802.1Qの定義に従う。
Flags(1Byte) OpCode用の固有のFlag
FirstTLVOffset 最初のTLVの位置を示す。(802.1Qの定義に従う。)

NVO3のOAM TLVフォーマットは802.1Qのsection 21.5.1に記載されているフォーマットと同じである。31番まではIEEE802.1Qの規定通りであり、32番以降がIETF Overlay拡張(要はこのドラフトの独自拡張と思われる)である。この拡張はRFC7455: Transparent Interconnection of Lots of Links (TRILL): Fault Management の再利用であるとSection14に書かれている気がする(14. IANA Considerations Re-use the Type and TLV from RFC7455.)が、実際に見比べてみるとそうなっていない(ように見える)。

     0                   1                   2
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Type       |        Length                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                               |
    |                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Figure 11 NVO3 OAM TLV
Type TLV名
0 End TLV
1 Sender TLV
2 Port Status TLV
3 Data TLV
4 Interface Status TLV
5 Reply Ingress TLV
6 Reply Egress TLV
7 LTM Egress Identifier TLV
8 LTR Egress Identifier TLV
9-30 Reserved
31 Organization Specific TLV
64 OAM Application Identifier
65 Out of Band IP Address
66 Original Payload
67 Diagnostic VLAN
68 scope
69 Previous Device address
70 Next Hop Device List (ECMP)
71 Multicast Receiver Availability
72 Flow Identifier
73 Reflector Entropy
74 to 95 Reserved