要約

  • 通常の BGP は AS_PATH 内のローカル ASN をループの証拠として扱う。allowas-in は受信側の判定を変え、as-override は判定前の経路を変える。
  • 同一 ASN を使う拠点間には有用でも、どちらもプレフィックスを認証せず、転送を証明しない。Route Target と Site of Origin も役割が違う。
  • 監査可能な例外には、変更前後の経路、neighbor・AFI/SAFI・出現回数の有効範囲、サイトとプレフィックスの制御、Loc-RIB・FIB・双方向パケット・復旧の証拠が必要である。

拒否は仕様どおりだった

実際の障害ではなく、仕組みを示す例を考える。拠点 A と B は、プロバイダ網の先で同じ顧客 ASN を使っている。A がプレフィックスを広告し、プロバイダが B へ届ける。B のルータは AS_PATH に自 ASN を見つけ、経路を拒否する。セッションは Established、PE に経路もあるが、B は利用できない。

これは不可解な相互接続不良ではない。RFC 4271 は、ローカル ASN を含む経路を decision process から除外し、自 ASN を受け入れる設定運用を仕様の対象外としている。AS_PATH は「この情報は既に自分のルーティングドメインを通った」と警告している。RFC 4271

対応案は二つある。顧客側が自 ASN の出現を一定回数まで受け入れる allowas-in / allow-own-as。もう一つは、プロバイダが顧客への広告前に顧客 ASN の出現を置換する as-override である。

同じ到達性ノブではない。前者は経路を残して受信判定を変える。後者は既定判定が発火しないよう証拠そのものを変える。例外権限を顧客に置くか、経路履歴の保管責任をプロバイダに置くかという違いだ。

AS_PATH は署名ではない

AS_PATH はループ検出と選択に使われるが、物理的な通過履歴への署名ではない。RFC 4272 は、speaker が主に自 ASN を確認し、主張された遷移すべてを検証するわけではないこと、偽りまたは短縮された経路が選択やループに影響し得ることを説明する。可変でローカル解釈されるからこそ、運用証拠として保全が必要になる。RFC 4272

allowas-in は受信許可を変える。実装によって、出現回数、neighbor、group、AFI/SAFI、origin 条件、route-map などの範囲がある。FRRouting は複数の指定を文書化している。RFC 7938 は、プライベート ASN を再利用するデータセンター Clos で、広く利用可能だが標準化されていない機能として述べる。その安全性は特定トポロジーに依存し、普遍的な安全回数を示さない。FRRouting BGP 文書、RFC 7938

as-override は送信内容を変える。FRRouting と Junos は、peer ASN と一致する AS_PATH の出現をプロバイダの local ASN に置換すると記す。Junos では顧客が prepend した反復も置換対象になる。見かけの長さが似ていても、その位置を誰が加えたかという識別情報は失われる。FRRouting BGP 文書、Junos as-override

したがって、変更後の route table 画面だけでは弱い。CE の元広告、PE の受信、書き換え前の想定 export、実際の export、遠隔 CE の受入れを連続して保存する。これがなければ、許可された置換と予期しない履歴喪失を区別できない。

RT、SoO、プレフィックス権限を分ける

RFC 4364 では Route Target が VPN 経路の import 対象を決める。Site of Origin は学習元サイトを示し、そのサイトの CE へ経路を戻さないために使う。プレフィックス権限はさらに別で、その接続が当該ネットワークを originate してよいかを問う。RFC 4364

RT は失われた self-AS 証拠を補えない。循環する経路でも、設定どおりのメンバーへ正確に配布できる。SoO はサイトループに近いが、関連する attachment で一貫して付与・拒否され、回避経路がない場合に限って働く。顧客やプレフィックスの認証ではない。

Cisco IOS XR の現行文書は、記載された L3VPN 手順で AS override による情報喪失とループの可能性を警告し、SoO を補償制御として使う。この設計の証拠であり、任意のトポロジーに対する自動保証ではない。Cisco IOS XR BGP 文書

RFC 9835 の attachment-circuit YANG も、as-override、allow-own-as、最大出現数、Site of Origin を別々にモデル化する。YANG は全製品の同一挙動を保証しないが、四つの判断を一つのチェック項目にできないことを示す。RFC 9835

一つの経路を最後まで追う

厳格状態から始める。A の Adj-RIB-Out、PE の Adj-RIB-In、遠隔 PE の export 前経路、B の rejected-route と self-AS 理由を保存する。VPN なら RD と RT も記録するが、origin の証明とは呼ばない。

受信側例外では group 継承後の有効ポリシーを確認する。正確な neighbor、AFI/SAFI、許容回数、origin-only の有無、prefix や route-map 条件を記録し、対象外の control route が拒否され続けることを確かめる。

送信側置換では AS_SEQUENCE を要素ごとに前後比較する。顧客の反復 prepend があれば、すべての一致が変わり得る。置換後の広告だけから失われた識別子は復元できないため、原本を装置外に保管する。

次に、プレフィックス権限、RT、SoO、並行 attachment、route reflector、redistribution を個別に点検する。RFC 6368 は、顧客が PE–CE 以外にも内部 BGP を利用するとき、ASN remap や自 ASN 受入れに別の不都合があると指摘する。RFC 6368

受入れは配送ではない。Loc-RIB の選択、再帰 next hop、FIB/ハードウェア、双方向の制御通信を確認する。危険な循環を作らず再流入を検知する failure test も必要だ。RFC 7705 は ASN 移行の文脈で、履歴操作が通常の self-AS 拒否を回避させ得ると示す。as-override の仕様ではないが、「経路が見えた」だけを成功にしない理由になる。RFC 7705

rollback はコマンド削除ではない。想定箇所で self-AS canary が再び拒否され、許可済みの拠点間到達性、FIB、パケットが設計状態へ戻ることを証明する。復元される証拠を言えなければ、それは操作記録であって安全性の回復記録ではない。