要約

  • RFC 9104 は Extended Administrative Group を運ぶ BGP-LS Link Attribute TLV にタイプ 1173 を割り当てた。長さが正しくビット列が壊れていないことは運搬の証拠であって、ローカルな意味付けや経路選択の証拠ではない。
  • 実務上の証拠は、IGP の発信状態、BGP-LS への投影、AG/EAG の整合性、コンシューマーの辞書、ポリシー版、計算結果、インストール、パケット観測を別々に保たなければならない。

正しいフィールドを受け取っても、機械はまだ決めていない

仮に、あるコンシューマーが Link NLRI と、その属性内の TLV 1173 を受け取ったとする。Value は 8 オクテットで、パーサーは二つの 32 ビット語を読み取る。セッションは正常で、長さは 4 の倍数、malformed と判断される要素はない。

ここで「コントローラーがリンクカラーを認識した」と言うと、複数の出来事を一つに縮めてしまう。プロデューサーはビット列を運んだ。コンシューマーはデータ構造を受け入れた。ローカル辞書が各ビットへ運用上の意味を割り当てるかもしれない。ポリシーがその意味を参照し、エンジンが候補経路を計算し、southbound 系が一つを設定し、最後にパケットがその経路を通るかもしれない。

2021 年 8 月に Standards Track として公開された RFC 9104 は、リンクの Extended Administrative Group、EAG を BGP Link-State で表現する方法を定めた。Link Attribute TLV 1173 の Value は一つ以上の 32 ビット bitmask で構成され、Length は Value のバイト数を示し、4 の倍数でなければならない。

この形式はビットを保存して運ぶためのものだ。業務用語の辞書、ポリシーの優先順位、計算結果、転送状態の受領証までは含まない。

32 ビットを超えても、意味が共通になるわけではない

従来の Administrative Group は固定 32 ビットである。運用現場では各ビットを「カラー」と呼ぶが、カラーは便宜上の呼称にすぎない。同じ位置が、あるネットワークでは低遅延、別のネットワークでは保守対象、さらに別のネットワークでは未使用ということがある。

RFC 7308 は 32 個を超える属性を扱うために EAG を導入した。EAG も 32 ビット語の並びであり、実際の長さは運ぶプロトコルや媒体に制約される。RFC 9104 は、その IGP リンク属性を BGP-LS へ投影する方法を与える。

新しいフィールドは古いものを置き換えない。Administrative Group の TLV 1088 と EAG の TLV 1173 は共存できる。同じリンクについて両方を広告するとき、RFC 7308 は EAG の先頭 32 ビットを AG と同一にするよう求める。受信側は 0~31 ビットに AG、32 ビット以降に EAG を使い、不一致は運用者へ報告することが望ましい。

これは表現の整合性を確認する規則である。二つが一致しても、古い辞書で同じように誤読される可能性は残る。

構文の責任と意味の責任は分かれている

RFC 9104 は構文上の境界を明確にする。TLV 1173 の長さが 4 の倍数でなければ malformed であり、その構文エラーを含む BGP-LS Attribute は規則に従って破棄される。パーサーが確定できるのはこの層だ。

値の意味や内容の検査、適切な NLRI 種別や属性との関連付け、異常を受けたアプリケーションの処理は、BGP-LS コンシューマーに委ねられる。RFC 9104 は consumer behavior を明示的に範囲外としている。

したがって、64 ビットを読み取れた事実だけでは、ビット 42 が今も「保守中は回避」を意味するのか、有効なポリシーが参照したのか、未知のビットを安全に扱ったのかは分からない。

RFC 7752 を置き換えた 2023 年の RFC 9552 は、LSDB や TED から得た topology と traffic-engineering information を BGP-LS が外部コンシューマーへ配布する現在のモデルを詳しく述べている。これは現行アーキテクチャの理解には役立つが、2021 年の特定コントローラーが正しく動いたという遡及的証拠ではない。

TLV 1173 にカラー辞書は入っていない

フィールド定義から、欠けているものを確認できる。TLV 1173 が持つのは長さと bitmask である。「低遅延」「制限地域」といったローカル名、辞書の版、ポリシー順位、承認者、候補経路、選択経路、FIB 状態は含まれない。

これは RFC の引用ではなく、定義された形式からの明示的な推論である。IGP 側が最新 EAG を出しても、コンシューマーが昨日の辞書を使う可能性がある。二つのコンシューマーが同じ値を受け取り、未知ビットの規則やポリシー順位の違いから別々の判断をする可能性もある。移行では、新しいビットの有効化が辞書配布より先行し得る。

RFC 7308 は未広告のビットを一般にゼロとして扱いつつ、ローカルシステムが独自戦略を採れる余地を残す。だからこそ、実際のコンシューマー動作を記録しなければならない。

一つの緑ランプを七つの受領証に分ける

発信元の受領証には IGP インスタンス、プロトコル、リンク、元の LSA/LSP、EAG 値、観測時刻を記す。投影の受領証には BGP-LS producer、Link NLRI descriptors、Protocol-ID、セッション、TLV 1173 の長さと生値、必要なら TLV 1088 との比較を残す。

コンシューマーの受領証は解析結果、意味検証、リンク関連付け、辞書版、未知ビット規則を保持する。ポリシーの受領証は対象ビット、include/exclude、優先順位、競合処理、承認者と rollback 権限を示す。

計算の受領証は topology epoch と policy version を候補、除外リンク、選択経路へ結び付ける。実行の受領証は southbound transaction と RIB/FIB/label state を記録する。サービスの受領証はパケット経路、トラフィック、関係する結果を観測する。

受信は理解ではない。理解は利用ではない。計算は設定ではない。設定はサービス提供ではない。この区別があれば、問題を malformed attribute、古い辞書、無効なポリシー、実行失敗のどこにあるか切り分けられる。

安全性と鮮度も自動では付いてこない

RFC 9104 は BGP のセキュリティモデルを変更しない。元属性を生成する IGP インスタンスが必要な OSPF/IS-IS の保護を使うことを前提とする。TLV 1173 の存在だけでは、発信元の認証、コンシューマーの権限、ポリシーの正しさ、安全な経路を証明できない。

計算時の鮮度も保証しない。エクスポート時には正しい値でも、別の topology epoch と組み合わされることがある。正しいポリシーを古い入力に適用すれば、意図しない結果になり得る。

隣接 RFC の問題も混同してはいけない。RFC 9917 は Flex-Algorithm における reverse Administrative Group 制約を扱い、RFC 9825 は OSPF の順序付き行政タグと容量による切り捨てを扱う。RFC 9104 の対象は EAG bitmask の BGP-LS 投影であり、必要な証拠は別である。

狭く正確な主張こそ運用で使える

安定した code point、再現可能な符号化、malformed 時の明確な処置は、複数製品の相互運用に実質的な価値を与える。結論を限定することは、その成果を小さくすることではない。

Lu Heng の Running-Code Primacy と Minimum Initial Specification は、開示した編集上の視点として役立つ。調整文書は実装・検証・利用された結果と同じではなく、最小限の共通層は将来のローカル判断を残したまま相互運用を支えられる。ただし、両論考は RFC 著者の意図や配備事実の証拠ではない。

運用報告の第一文は「このリンクの EAG が有効な TLV 1173 としてコンシューマーに届いた」で終えてよい。ネットワークが何を選び、何を実行したかを語るなら、新しい文と新しい証拠を始める必要がある。

情報源