要約
- 9月10日に加わったテストでは、予約区間
64496-131071の下側へ1番号はみ出すAS64495-AS131071も、上側へ1番号はみ出すAS131070-AS131072も予約済みになる。 - 実装は完全包含ではなく任意の重複を調べ、RDAPのマッパーがその結果をオブジェクト単位の状態に変える。境界を捨てれば、集合の警告を各ASNの事実と取り違えかねない。
テストが選んだ二つの範囲は鏡像になっている。一方は開始点が一つ早く、もう一方は終了点が一つ遅い。予約区間と一致する入力だけでなく、その両方がtrueを期待される。完全に外側にあるAS131072-AS131073はfalseだ。
IANAの現行レジストリを見ると、この1番号の差は重要である。AS64495まではRIPE NCCに割り当てられ、AS64496から文書例示用の予約領域が始まる。反対側ではAS131071までが予約領域で、AS131072からAPNICへの割り当てになる。つまり、テストの二つのAS-BLOCKは、端点で異なる登録上の扱いを混ぜている。
コードの動きも明快だ。ReservedResources.isReservedAsBlockは候補範囲を数値区間に直し、設定済みの予約区間のどれかと重なるかを判定する。候補全体が予約区間に包まれているかは問わない。RdapObjectMapperはその真偽値を使い、AS-BLOCKの状態をRESERVEDまたはACTIVEにする。
保護規則として考えれば、重複優先には合理性がある。完全包含だけを条件にすると、巨大な活動中ブロックの内部に予約領域があっても、単純な「活動中」に見えてしまう。少しでも予約領域を含む対象を止める方が安全だ。だが、単語だけが下流へ流れると、どの部分が判定を発火させたのかが見えなくなる。
RDAPの利用側が範囲の始点と終点を保存していれば、IANA表との照合をやり直せる。ところが、AS-BLOCKをASNごとの行に展開し、オブジェクトのreservedを全行へコピーすると、AS64495やAS131072まで隣の予約状態を継承する。特定のサービスが現にそうしているという証拠はない。ここで確認できるのは、集合レベルの状態を要素レベルへ無条件に配ると起きる情報損失である。
RIPE Databaseの説明では、AS-BLOCKはAS番号範囲をRIRへ委任するか、その範囲を予約済みとして示すオブジェクトだ。作成できるのはデータベース管理者だけで、親のメンテナー情報は配下のaut-num作成権限にも関わる。この管理上の重みは安全側の判定を支えるが、マッパーの状態がIANAの割り当て、BGP経路の正当性、到達性のいずれかを決めるわけではない。
更新内容も過大評価してはならない。Edward Shryaneによる9月10日のコミットは、53行のテストファイルを新設しただけで、判定メソッドやマッパーを変更していない。取得時点で最新のタグは8月31日のWHOIS 1.124.1だった。新テストがそのタグより後であることは分かるが、既存ロジックがいつ本番へ入ったか、このコミットが配備済みか、実データに境界横断ブロックがあるかは分からない。
今回の価値は、暗黙だった境界契約が実行可能な形になったことにある。保守的な重複規則を外すより、候補区間、重なった予約区間、レジストリ版、マッパー版を結果と一緒に残す方がよい。それなら「このオブジェクトは予約領域に触れる」と「全構成ASNが予約済み」を、同じreservedから無理に読み取らずに済む。
情報源
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

