EVPN の境界は接続ではなくエクスポートポリシーを中心に設計する
まず越境するルートと ASN の関係を決める。Layer 2 接続はその後の要件から導かれ、各テナントは必要なエクスポートだけを受け取る。
よくある思い込みは、境界の Layer 2 接続モデルがその上のすべてを決めるというもので、設計は vPC ペアから始まり上へ向かって進む。たいていは、偶然に決まったルーティング判断に行き着く。EVPN の境界はまずルーティングの境界である。テナントのルーティングコンテキストが外部ルーティングドメインと接し、その線を越えるものはポリシーの宣言である。port-channels の議論が始まる前に、ルート、ASN の関係、障害時の経路を決めておく。 接続モデル は、要件を押し付けるのではなく、要件から導かれる。
境界を越えるものから始める
両側で見えるべきルート、その流れる向き、そしてその一覧への変更を誰が承認するかを書き出す。何もかも受け入れ、何もかも広告する境界にはポリシーがなく、ケーブルがあるだけだ。
次に、運用するつもりの障害を名指しする。uplink が一つ落ちる、border leaf が一つ落ちる、外部ドメイン全体が到達不能になる、のいずれかである。答えによって、独立した二つのネイバーが必要か、共有の Layer 2 接続が必要か、両方かが変わる。
この二つの一覧が揃って初めて、接続の問いに答えられるようになる。それまではどの仕組みも同じ程度に妥当に見える。揃った後は、ほとんどの仕組みが自ら消えていく。ルーティングの作業を先にやる理由は、まさにそこにある。
ASN と peering の境界を固める
プライベート AS を使うファブリックは、通常 eBGP で公開境界ドメインと peering し、興味深いのは両側のポリシーである。どのプレフィックスを受け入れ、どれを広告し、upstream にどの AS path を渡すかを決める。
RFC 6996 はプライベート利用の ASN 範囲を予約しており、その ASN はグローバル広告に現れるべきではない。プラットフォームが対応する除去またはフィルタのポリシーを適用し、装置がやったと決めつけずに結果の広告を検証する。この手順は、任意の公開プレフィックスを広告する権限を与えるものでもない。それはアドレスの所有者との別の話である。
コンフェデレーションや local-AS 機能は、特定のトポロジに対する設計上の選択である。ファブリックと upstream が異なる ASN の役割を使うというだけでは、どちらも必須ではない。要件なしに一方を採り入れると、今後の変更すべてに可動部分が増える。
Layer 3 の uplink に multichassis LAG は不要
自前の BGP ネイバーを持つ独立したルーテッドインターフェースは、二本の明確な経路と二つの明確な障害ドメインを与える。vPC などの multichassis LAG は Layer 2 接続の要件に応えるもので、その要件があるときに正しい道具となる。
境界のペアは必ず vPC を使う、あるいは必ず避けるという一律の規則は、実際に判断を決める条件を覆い隠す。接続が何を運ぶべきかを問い、それを最も少ない共有障害モードで運ぶ仕組みを選ぶ。
最初に書いたルーティングポリシーは、接続の仕組みが変わっても変わらない。順序が正しかった証拠である。
テナントが必要とするものだけをエクスポートする
テナントはデフォルトルートを必要とするかもしれないし、選んだ外部プレフィックスの集合や、はるかに大きなテーブルを必要とするかもしれない。その範囲は、実際の転送能力とコントロールプレーンの容量に対して選ぶ。誰も測り直していない古いインターネットルート数に対してではない。
EVPN IP Prefix ルートは、一般に Type 5 と呼ばれ、 RFC 9136で定義され、overlay 内でプレフィックス情報を運ぶ。実装にはなお、対応するエクスポートとインポートのポリシー、そして next-hop の解決が必要である。したがって境界で外部 BGP ルートを受けることは、テナントのすべての VRF がそれをインポートすることを意味しない。
境界がテーブルを持っているからといって、すべての leaf が完全なテーブルを必要とするわけではない。テナントの通信が必要とするものを配り、残りは境界に持たせる。
一つのプレフィックスを端から端まで検証する
代表的な外部プレフィックスを選び、境界の想定 VRF、エクスポートポリシー、受信側 leaf の転送コンテキスト、テナントの送信元への戻り経路を通して追う。ある場所に現れて次の場所に現れないプレフィックスは、誤りをただちに特定する。
next hop が overlay を通してどう解決されるかを確認する。未解決の next hop を伴うルートは何も転送しない。その後、uplink の変更後に同じ確認を繰り返す。ポリシーと next-hop の解決が最も食い違うのはそのときである。
作業の順序は、越境するルートを列挙し、ASN ポリシーに合意し、接続を実際の役割に合わせて選び、テナントごとにエクスポートの範囲を定め、最後に一つのプレフィックスとその戻り経路を検証する。