要約
- RFC 6996は、Private Use ASNを起点とするプレフィックスを世界のインターネットへ広告する前に、該当する番号をAS_PATHと必要なAS4_PATHから除去するよう求める。これは境界で守るべき結果であり、単一の実装アルゴリズムではない。
- 先頭だけの削除、全出現の削除、公開ASNへの置換、ピアASNの保持は、同一入力から異なる公開経路を作る。削除は経路を短くして選択を変え、置換は長さを残して内部の複数主体を一つに畳む。
- 検証では、受信時のAS_PATHとAS4_PATH、再構成経路、隣接・AFI/SAFIごとのポリシー版、Adj-RIB-Out、下流の受信とbest path、FIB、パケットを一続きに保存する。コレクター上の「きれいな経路」は、最終投影しか証明しない。
削除前に、番号の型を確定する
IANAの区分では、16ビット側の64512–65534と4オクテット側の4200000000–4294967294がPrivate Useである。64496–64511は文書・例示用であり、私用の運用主体ではない。65535と4294967295はRFC 7300によって別に予約される。
この違いを単なる注記にすると、自動化はすぐ壊れる。「大きな数字」を消す正規表現は、文書用番号や予約値を誤って変えながら、4オクテットの私用範囲を見逃し得る。古いソフトウェアはコマンドを受理しても、新しい範囲を認識しないことがある。設定が成功したという事実と、公開属性が正しく変換されたという事実は別物だ。
Private Useは秘密を意味しない。RFC 7938が扱う大規模データセンターでは、プライベートASNがリーフやクラスタの運用上の識別子となり、ループ検出や切り分けに使われる。同じ値を離れたクラスタで再利用する設計もある。そのローカル台帳が通用する範囲では、番号には明確な意味がある。
問題は、その意味を知らない世界へ出た時だ。他組織も65020を使えるため、公開経路の65020から主体を一意に特定できない。境界は非一意な値を除く必要がある。一方で、事業者が内部の対応表まで捨てれば、それはプライバシー保護ではなく、説明責任の消失である。
RFCが固定するもの、固定しないもの
RFC 6996は、Private Use ASNから生成されたプレフィックスについて、世界への広告前にプライベート番号をAS path属性から除去することを求める。4オクテット環境ではAS4_PATHも明示的に対象となる。そもそも該当経路をフィルターして外へ出さない方法もある。
しかし、このBCPは削除されたホップを示す墓標をAS_PATHに加えない。下流と削除モードをネゴシエートしない。「all」「limited」「replace」「nearest」といった各社の語彙を同じ意味にもしていない。刊行時にも、公開ASNとプライベートASNが混在すると何も除去しない実装がある、と注意している。
ここに規範の境界がある。共通に必要なのは、世界で一意でない内部識別子を、世界で帰属可能な一ホップとして露出させないことだ。その実現方法はローカルに残る。ただしローカルな自由には、実装・版・隣接ごとの意味を記録し、実行結果で証明する責任が伴う。
同じコマンド名から、三つの履歴が生まれる
文書用に予約されたASN 64497を実験上の境界識別子として使う、合成ラボの事業者を考える。64497は世界的に割り当てられた公開本番ASNではない。顧客から 65020 65030 4200000041 を含む経路を受け、別の試験経路では二つのプライベート値の間に非プライベートの文書用ASNが入る。
出口Aは左端の連続したプライベート部分だけを削除し、文書用ラボ経路で最初に現れる非プライベートASNで止まる。出口Bは混在経路を含め、すべてのPrivate Use出現を削る。出口Cは出現回数を残すため、各値をラボ事業者の文書用ASN 64497へ置き換える。その後、通常のeBGP広告としてローカルASをprependする。
Aでは一部が残り得る。Bでは公開経路が数ホップ短くなる。Cでは複数の64497が並び、下流には同じASの繰り返しprependに見える。古い出口が16ビット範囲しか認識しなければ、AS4_PATH側の4200000041だけが残ることさえある。
Ciscoの資料は、混在パスを処理しなかった古い挙動と、all replace-asを含む新しいモードの差を示す。Junosは通常、左端から最初の公開ASまたはピアASNと同じ私用値までを対象とし、all、replace、nearestで範囲や置換元を変える。Nokia SR OSはlimited、skip-peer-as、replaceを分け、local-asやコンフェデレーションの文脈で置換値を決める。Aristaも保持、除去、置換を区別し、混在パスには記載された制限がある。
これはベンダーの勝敗表ではない。CLIは意図を表す記号であり、権威となるのは、そのリリースが各隣接へ実際に生成したAdj-RIB-Outだ。異機種環境には、対応有無のチェックボックスではなく、範囲、混在動作、ピア例外、置換値、処理順、AS4対応、アドレスファミリーを並べた意味論マトリクスが必要になる。
一ホップの削除は、表示ではなく制御を変える
RFC 4271のAS_PATHはwell-known mandatory属性であり、順序を持つAS_SEQUENCEと集合のAS_SETからなる。eBGP話者は一般に自身のASをprependし、受信者は自ASNの出現でループを検出する。best-pathはしばしばAS path長を比較し、ポリシーは並びを照合する。
従って、三つの私用ホップをゼロにする行為は、画面を整える処理ではない。別経路との比較で短くなり、物理経路も契約関係も変わらないのに選好が反転し得る。Nokiaの文書が削除による経路短縮と選好上昇を明記するのは、この制御効果のためだ。
置換はホップ数だけを保つ。65020、65030、4200000041を64497へ変えれば、三つの内部主体は見えず、下流には一事業者の繰り返しに映る。最大prependフィルターや特定AS列に依存するポリシーの反応は、削除時とも原経路時とも違う。
さらに、私用ASNが下流ピア自身の番号と同じ場合がある。除去せず残せば、ピアは自分を見てループとして拒否できる。Junosのno-peer-loop-checkやNokiaのskip-peer-asは、この証拠を残すか消すかの選択に関わる。完全に消すほど安全、とは限らない。
AS4_PATHの片側だけがきれいになる
RFC 6793の移行方式では、新旧BGP話者が混在すると、経路情報がAS_PATHとAS4_PATHに分かれる。新話者は両者から有効な経路を再構成するが、常に完全に戻せるわけではない。そのためRFC 6996が両属性に触れる点は重要である。
不完全な実装は、見えているAS_PATHから16ビットの私用値を除きながら、AS4_PATHに4オクテット値を残し得る。運用コマンドが再構成後の表示だけを出す場合も、逆に生属性の片方しか出さない場合もある。
カナリアは、生のAS_PATH、生のAS4_PATH、再構成された有効経路の三面を保存し、ポリシー前、変換後、4オクテット対応下流の受信時で比較する。AS_TRANSはPrivate Useではなく、移行のための予約値である。雑な範囲判定で消せば、衛生ではなく再構成を壊す。
コンフェデレーションと私用番号を混同しない
RFC 5065のコンフェデレーションは、AS_CONFED_SEQUENCEとAS_CONFED_SETで内部Member-ASを表し、外にはコンフェデレーション識別子を示す。メンバーにプライベートASNがよく使われるとしても、二つは別の分類だ。私用ASNが必ずメンバーとは限らず、メンバーASNが必ず私用とも限らない。
処理順が異なれば、remove-privateが受け取る入力も変わる。コンフェデレーション区間が先に落ちるプラットフォームでは、事前診断に見えた値を私用除去処理は一度も見ない。証拠記録は、「コンフェデレーション境界で消えた」「IANAのPrivate Use型として消えた」「出口ポリシーで置換された」を分けなければならない。
再利用された番号とループ境界
別々のデータセンターで同じリーフASNを再利用すれば、各クラスタ内では番号を節約できる。ところが買収、災害復旧、一時的なバックボーン接続で二つのスコープが接触すると、ルータは別主体から自ASNと同じ値を受け取り、正当な経路をループと判定し得る。
RFC 7938はallowas-inなどの手法を扱い、それが標準化されていないことにも触れる。別のトポロジー境界が保証を担うなら、局所判断として成立し得る。しかし通常の自ASN検出だけでは正しさを証明できなくなる。
公開出口で重複値を消しても、内部衝突は解決しない。すべてを公開ASへ置換すれば、別の反復列を作る。スコープを接続する前の番号棚卸しを、出口の消去機能で代用してはならない。
公開投影を、完全な来歴と読まない
合成文書用ラボのルートコレクターが 64497 64498 を示し、Private Use値がなかったとしても、証明できるのは一つの観測点へ届いた最終形だけだ。この二つの文書用ASNが世界的に割り当てられた公開識別子になるわけではなく、元の内部ASN、削除か置換か、他の隣接やAFIの結果、起点の権限までは分からない。
RFC 6996は、隣接する世界一意のASへ遡ることや他属性を見ることが必要になり得るとする。つまり、公開事業者は帰属の義務を引き受ける。各顧客経路について、公開隣接から顧客契約、受信セッション、原AS_PATH、変更エポックへ戻れるようにしなければならない。
最低限の台帳は、prefix、AFI/SAFI、source peer、関係種別、生AS_PATH、生AS4_PATH、再構成経路、IANA分類版、ポリシーとソフトウェア版、対象範囲、ピア例外、置換値、変換後経路、ローカルprependを持つ。そこへ隣接別Adj-RIB-Out、下流Adj-RIB-In、best-path理由、FIB next hop、パケット観測を結ぶ。
この連鎖があれば、内部利用の承認、正しい境界への到達、実際に動いた変換、全出口での不変条件、下流選択の変化、隠れた起点の責任、サービス通信を別々に検証できる。
簡単なケースではなく、差が出るケースを試す
全要素が私用の経路だけでは足りない。先頭の私用列の後に公開ASがあるケース、公開ASの後に私用値が再登場するケース、同じ値の反復、ピアと同じ私用ASN、二つの私用範囲、文書用ASN、AS_TRANS、コンフェデレーション隣接、旧新話者をまたぐAS4_PATHを含める。
各入力について、limited削除、all削除、置換の期待列を一字一句決める。認識されない4オクテット値が残った時は、設定済みという理由で進めず停止する。ピア例外は、拒否されるべきループと、明示承認された例外の両方で示す。
変換前後の候補集合も比較する。四ホップが一ホップになれば、���流選択とトラフィック工学を承認対象にする。64497が反復するなら、最大prependや正規表現フィルターを確認する。
ロールバックは再広告まで含む。設定を戻しても、下流Adj-RIB-Inの古い投影が自動的に消えた証拠にはならない。実装に応じて限定的なpolicy reevaluation、route refresh、またはセッション操作を使い、元の正確な経路、候補集合、FIB、パケットを確認する。
出典
- RFC 6996 — Autonomous System (AS) Reservation for Private Use
- RFC 4271 — A Border Gateway Protocol 4
- RFC 6793 — Four-Octet AS Number Space
- RFC 7938 — BGP Routing in Large-Scale Data Centers
- RFC 5065 — Autonomous System Confederations for BGP
- RFC 7300 — Reservation of Last AS Numbers
- IANA — Autonomous System Numbers
- Cisco IOS — neighbor remove-private-as
- Cisco — Removing Private Autonomous System Numbers in BGP
- Juniper — remove-private
- Nokia SR OS — BGP Remove-Private ASN
- Arista EOS — Border Gateway Protocol
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
