要約

  • RFC 4012は旧来のimport、export、defaultをIPv4ユニキャストのまま残し、ファミリーを指定できるmp-*を追加した。
  • 新属性でAFI句を省くと、IPv4/IPv6のユニキャストとマルチキャストを含むanyになる。「対象なし」ではない。

AFI句がない状態は、空欄ではない

afi句のないmp-importを読むと、対象ファミリーが未指定だと思うかもしれない。RFC 4012は逆の規則を置いた。句を省略すればanyとして扱い、IPv4ユニキャスト、IPv4マルチキャスト、IPv6ユニキャスト、IPv6マルチキャストの4つを対象にする。語が書かれていなくても、範囲は決まっている。パーサーや運用者が推測で埋める余地ではない。

この既定は新しいmp-*属性に限られる。従来のimport、export、defaultはIPv4ユニキャストの意味を保つ。これにより既存記述の意味をひそかに変えず、新しいマルチプロトコル表現も未定義のままにしなかった。本文を解釈する前に、まず文法が省略箇所へ割り当てた範囲を確かめる必要がある。

1999年のRPSLをどう広げたか

RFC 2622は1999年、IPv4ユニキャストの経路ポリシーを記述するRPSLを定めた。import、export、defaultといった属性は、その前提のもとで読める。2005年3月のRFC 4012は、従来の意味を保ちながらIPv6とマルチキャストを扱える拡張を加えた。 RFC 2622 RFC 4012

古い属性の意味は変えず、複数プロトコル用にmp-import、mp-export、mp-defaultを導入した。afi句を添えると、ipv6.unicast、ipv6.multicastなど、どのファミリーに関する宣言かを示せる。句を省略した場合、RFC 4012はmp-*の適用範囲を4つのプロトコルファミリー全体と定める。ここで明確になるのはRPSL文の読み方だ。機器が4種類すべてを実装し、使用するという意味ではない。 RFC 4012、第2.1〜2.5節

この明示性は、IPv4とIPv6で隣接先、フィルター、ネクストホップ、運用判断が異なる現実に合っている。文書の対象範囲を狭く指定できるし、意図的に広いanyも表せる。それでも、記述の範囲と実際の採用は別問題として残る。

範囲は組み合わせても表せる。ipv4とipv6はそれぞれ同じ版のユニキャストとマルチキャストを含み、any.unicastとany.multicastは二つの版をまたいで同じ通信種別をまとめる。anyは四つの基本組み合わせの和集合だ。短い記法で済むのは範囲が暗黙だからではなく、和集合に明確な名前が付いているからである。

同じAFIでも指す層は異なる

RFC 4012はIPv6版のroute6クラスも追加したが、そのオブジェクトキーや変更認可は任意のAFI句とは別の問題であり、認可の扱いはRFC 2725が扱う。ここでは範囲の境界を示すために触れるだけで、もう一つの主題にはしない。 RFC 4012、第3節 RFC 2725

BGPでもAFI/SAFIを使うが、RFC 4760ではUPDATEメッセージのネットワーク層到達性とネクストホップの範囲を示す。RFC 4012の任意のAFI句はRPSLのポリシー記述を限定する。同じ略語でも両者の宣言は入れ替えられず、ルート選択と隣接先ごとの広告はRFC 4271が記述する実行時の動作だ。 RFC 4271 RFC 4760

名前付きの範囲で文法を組み立てる

RPSLがIPv6を扱えるようになった、という要約は正しいが不十分だ。RFC 4012はポリシーのアドレスファミリー範囲を明示できるようにし、バージョンと通信種別をまたぐ範囲に名前を付けた。この変更が示すのは記述言語の設計であり、両方の通信が同じように運用されたという事実ではない。

この区別はデュアルスタックの設計レビューでも重要だ。IPv4とIPv6で同じポリシーが動くとは限らず、同じafiの記述でも実機が使うとは限らない。後のRFC 8212は、EBGPで明示的なimport/exportポリシーがなければならないと定め、ルーター側の運用ルールを明確にした。これはRFC 4012の自動実装ではなく、BGP内のローカルポリシーに関する後年の規則である。 RFC 8212

ここではLu HengのNote 65「Running-Code Primacy」とNote 64「Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption」を編集上の視座として用いる。RFC著者の思想を推定するためではない。共通の記述形式は相互運用に役立つが、実際の動作は稼働システムによる採用と検証で確かめる、という境界を読むためだ。RPSLngはポリシーを読みやすくする。何をロードし、何を広告するかは、BGPを動かすネットワーク側の判断として残る。 Note 65 Note 64

この資料群はRPSLngの普及率、特定レジストリのデータ品質、特定事業者の設定、IPv6の展開状況を測定していない。確認できる結論は限定的だ。RFC 4012は記録できるポリシーを精密にした。その記録が実運用になったかは、実際の設定とBGP状態を見なければ分からない。

主要資料