CFM (CFD)の種類と範囲
CFM とは、Connectivity Fault Management の略で、L2ping (Ethernet ping)やL2traceroute (Ethernet traceroute) といったツールの元になっている、Ethernet OAM 規格です。
CFD (Connectivity Fault Detection) とも言います。
EFM OAM が直結した L2 スイッチの状態を監視するのに対し、CFM では複数の連結した L2 スイッチの疎通状態を確認、監視することができます。
規格としては IEEE802.1ag と ITU-T Y.1731の 2 種類があります。
IEEE802.1agとITU-T Y.1731の比較
IEEE802.1ag は定常監視 (CC = Continuity Check) と L2ping (LB = LoopBack) と L2traceroute (LT=LinkTrace) の 3 つの機能に絞っています。
その分、メンテナンスドメインという概念を導入し、L2 回線サービスを提供する業者が管理・監視しやすいよう、複数保守業者を抱えるシナリオを想定しています。
一方、ITU-T Y.1731 はドメインの概念はないものの、機能としては IEEE802.1ag が使えるものを網羅し、かつ、重複したアラーム発報を抑制するなどのアラームや試験に関する細かい機能や、フレームロスやフレーム遅延等の性能評価を行う機能が実装されています。
機能 | IEEE802.1ag | ITU-T Y.1731 |
---|---|---|
定常監視(CC) | ○ | ○ |
L2ping(LB) | ○ | ○ |
L2traceroute(LT) | ○ | ○ |
下位レベルと上位レベルのアラーム重複抑制(AIS) | × | ○ |
同レベルMEPへの自ノード障害通知(RDI) | × | ○ |
試験期間のアラーム抑制(LCK) | × | ○ |
ビット反転の検知試験(TST) | × | ○ |
高速な障害切替の制御(APS) | × | ○ |
保守に関する情報交換(MCC)※具体的な規定無し | × | ○ |
実験用(EXP)※具体的な規定無し | × | ○ |
ベンダ拡張用(VSP)※具体的な規定無し | × | ○ |
フレームロス測定(LM) | × | ○ |
伝送遅延測定(DM) | × | ○ |
これら 2 つの規格は互換性はありません (厳密には一部互換性あり)。
cisco では、IEEE802.1ag 規格を採用しつつ、性能評価については Y.1731 を一部サポート、性能評価のコマンドとしてはもともと cisco が持っている IP SLA 機能を拡張して実現しています。
CFM (IEEE802.1ag)の設計
L2ping や L2traceroute は、L3 の ping や traceroute とは違い、設定も無しに使えるものではありません。
まずスイッチに CFM 機能を有効化し、インタフェースには、L2ping や L2traceroute に反応する『MEP (Maintenance Association End Point)』や『MIP (MaintenanceDomain Intermediate Point)』の設定を入れる必要があります。
MEP は疎通を確認したい特定 VLAN の区間の末端に設定します。
図では一次元で書いてあるため末端は 2 つになっていますが、実際には Ethernet はスター型なので、3 つ以上の複数の MEP が存在し得ます。
MIP は MEP 間の経路で、L2ping や L2traceroute に応答させたいインタフェースに設定します。
MEP や MIP にはレベルを設定しますが、そのレベルが同一である MEP/MIP の集合を『MA (Maintenance Association)』と呼びます。
必然的に MA は VLAN に紐付きます (MEP/MIP が VLAN に紐付くため)。
レベルは 0-7 で設定できます。
レベル 1,3,5 の MA (MEP/MIP) を作ったときの例を以下に示します。
定常監視 (CC) の設定や L2ping (LB)、L2traceroute (LT) の実行の際にはレベルをセットする必要がありますが、MEP や MIP は、(CC/LB/LT) メッセージのレベルが同一のものに反応し、応答します。
レベルの高いメッセージは反応せず、通過させます。レベルの低いメッセージは (下位レベルの MEP/MIP が無ければ)設定によりドロップさせることができます。
MEPの種類
MEP には以下の2種類あります。
Outward-facing MEP (DOWN MEP)
他の MEP に続くインタフェース側に設定された MEP を指します。
Outward-facing MEP の設定をしたインタフェースは、そのポートからメッセージフレームを送信します。
先程の構成の例ですと、Level 1 と 3 の MEP がともに Outward-facing MEP です。
Inward-facing MEP (UP MEP)
他の MEP に続くインタフェースではない側に設定された MEP を指します。
Inward-facing MEP の設定をしたインタフェースは、そのポートからはメッセージフレームは出さず、スイッチング機能へフレームを渡し、FDB (MAC アドレステーブル) や CCM DB、はたまた UP MEP 以外の全ポートからフラッディングでフレームを送出します。
先程の構成の例ですと、Level 5 の MEP がともに Inward-facing MEP です。
メンテナンスドメイン(MD)
MD は、管理領域を表します。通常の運用設計では、MD 1 つにつき、1 つのドメイン管理組織が割り当たります。
例えば全体のサービスを提供する事業者が、地域によって構築・保守業者を分ける運用の場合に、この考え方が便利です。
各ドメイン管理者は自身の MD Level 以下の MEP/MIP を作成 (つまり MA を作成) し、管理を行うことができます。
区分を明確化する、という観点で、下位レベルの MA は上位レベルの MA に包含されてなければなりません。ドメインが重なるのは NG です。
LinkTrace(L2traceroute)の仕組み
LinkTrace Messageの送信元 MAC アドレス (Origin MAC) は必ず MEP ですが、宛先 MAC アドレス (Target MAC) は MIP でも MEP でも構いません。
LinkTrace Message を経路途中の MIP が受信した場合、以下の 2 つの動作を同時に行います。
- Message の中にある TTL 値を1減らし、(HW only flag が 1 の場合は) MAC アドレステーブルに従って NextHop へ転送、もしくは (HW only flag が 0 の場合は) 入力インタフェース以外のポートから L2 マルチキャスト
- Message の中にある TTL 値を1減らした値を LinkTrace Reply message の TTL 値にセットし、送信元へ返信
宛先の MIP/MEP が受信した場合は上記の『2』だけを実行します。
LinkTrace Reply message の中にある TTL は、送信元に届くまで不変です。
また、MIP も MEP も設定されていないインタフェースは単純に LinkTrace Message を転送するのみです。
TTL も減らさなければ、LinkTrace Reply message での返信もしません。
CFM のフレームフォーマット
IEEE802.1ag の CFM のメッセージは以下の 5 種類です。
- CCM: Continuity Check Message (OpCodes = 1)
- LBM: LoopBack Message (OpCodes = 3)
- LBR: LoopBack Reply message (OpCodes = 2)
- LTM: LinkTrace Message (OpCodes = 5)
- LTR: LinkTrace Reply message (OpCodes = 4)
それぞれについてフレームフォーマットを示します。
Continuity Check Message (OpCodes = 1)
対向へのHeart Beatになり、自身が生きていることを対向に伝えます。返信は無いのが前提です。複数の対向 MEP へ一度へ通知するため、マルチキャストになっています。
Flag は下記の通りです。
RDI は Y.1731 でサポートしている機能です。この Flag を 1 にすることで自 MEP の障害を対向 MEP に向かって通知します。
IEEE802.1ag では未サポートのため常に 0 です。
Period は CCM が定期交換される周期です。以下のように決まっています。
Period | 周期 |
---|---|
000 | Invalid |
001 | 3.33 msec |
010 | 10 msec |
011 | 100 msec |
100 | 1 sec |
101 | 10 sec |
110 | 1 min |
111 | 10 min |
TLV オフセットは、この Field 以降から、TLV が始まるまでに何バイトあるかを示しています。
TLV が始まるまでは、CCM メッセージの TLV 以外の必須情報が入ります。(このメッセージでは TLV の終わりを示す TLV Type=0 が来るので、実質 TLV データが無いことを意味しています。)
MEP ID は、MEP の設定時に 1-8191 の値を設定します。
MA ID は "Short MA Name" と "MD Name" を連結させた文字列で、MD を設定する際に設定します。
Short MA Name は文字列を指定しない場合は VLAN ID や VPN-ID (EVC) がそのまま Short MA Name になります。
TxFCf/RxFCb/TxFCb は Y.1731 の性能評価で利用する領域です。IEEE802.1ag では未サポートのため、常に 0 になります。
LoopBack Message (OpCodes = 3)
対向が活きているかを確認します。Ping の ICMP Echo に相当する機能です。応答として OpCodes=2 の LBR (ICMP Echo Reply 相当) が返ってくることを想定します。
Transaction ID は任意の値がセットされます。
Data TLVは以下の通りです。
Data Pattern は任意のビット列で、長さ (Length) も任意です。
LoopBack Reply message (OpCodes = 2)
LoopBack Message の応答メッセージです。
LinkTrace Message (OpCodes = 5)
対向への L2 経路情報を確認します。L3 での Traceroute に相当する機能です。応答として OpCodes=4 の LTR が返ってくることを想定します。
Flag のフォーマットは以下の通りです。
HW only は 1 の場合、Target MAC Address を FDB (MAC アドレステーブル) で調べ、そのポートからのみ L2 マルチキャストフレームを送出します。0 の場合は全ポートから L2 マルチキャストフレームを送出します。
Transaction IDは任意の値がセットされます。
TTLは機器の実装にもよりますが、大きめの値 (Max255) がセットされます。
LTM Egress identifier TLV のフォーマットは以下の通りです。
Egress identifier は先頭 16 bit が 0 で、残りは最初の LTM であれば自身の MAC アドレス、中継された LTM であれば中継した MIP の MAC アドレスが入ります。
LinkTrace Reply message (OpCodes = 4)
LinkTrace Message の応答メッセージです。
Flag のフォーマットは以下の通りです。
HW only は LTR からコピーされてきます。
Fwd Yes が 1 の場合は、中継する (まだ終端ではない) ことを示します。0 の場合は、終端であるか、何かしらの理由で中継しないことを示します。
Terminal MEP は、LTM の宛先が MEP の場合、これを 1 にセットされます。
Transaction ID は、LTM からコピーされます。
TTL は受信した LTM から 1 引いたものがセットされます。
Relay Action は Linktrace Message の転送処理方法を示します。具体的には以下の通りです。
- 1 = RlyHit:宛先 MAC (Target MAC) に到着したため Linktrace Message を転送していないことを意味します
- 2 = RlyFdb:MAC アドレステーブルを使用して Linktrace Message を転送したことを意味します。
- 3 = RlyMpdb:MIP CCM データベースを使用して Linktrace Message を転送したことを意味します。
MIP CCM データベースとは、CCM から MEP の情報を学習した結果を記録する、MIP が保持するデータベースのことです。
この DB には CCM を送信した MEP の MAC アドレスと受信した VLAN とポートが入っています。
LinkTrace の宛先が MEP の場合、この DB を活用できます。
TLVs には [Reply Ingress TLV] , [Reply Egress TLV] , [LTR Egress identifier TLV] のいずれか 1 つ以上が入ります。
それぞれの TLV フォーマットは以下の通りです。
コメント