要約

  • IPv4 のタイプ7は、協力する転送装置が4オクテットのアドレスを書き込むための有限の領域を予約したが、送信者に経路選択権を与えなかった。
  • 記録は小さく認証もなく、トポロジーを開示し得たため、処理を前提とする姿勢は後に既定で破棄する勧告へ変わった。

出発前に決まる空欄

送信元は Record Route の長さをあらかじめ決め、route data をゼロで初期化した。タイプと長さに続くポインターが次の書き込み位置を示し、最小の正当値は4だった。インターネットアドレスは32ビットなので、参加者が一つ記録するたびにポインターは4だけ進む。

RFC 791 は、データグラムを経路制御するモジュールが、転送先の環境で認識される自身のアドレスを書き込むと定めた。RFC 1812 はルーターについて、論理出力インターフェースの IP アドレスを使い、番号のないインターフェースでは安定した router-id を使うよう具体化した。したがって記録されるのは、その転送で表に出た識別子であり、物理装置全体の普遍的な名前ではない。

途中で領域を拡張することはできない。ポインターが長さを超えれば満杯として、アドレスを書かずに転送を続ける。一方、1〜3オクテットだけ残る不完全な空きはエラーであり、元のデータグラムを破棄し、ICMP Parameter Problem を返してもよい。オプションは一つのデータグラムに一度だけ現れ、断片化時には最初のフラグメントだけに残る。

最大九アドレスという上限は IPv4 ヘッダーの寸法から導ける。全体の上限60オクテットから固定部分20を引くと、オプションには40が残る。タイプ、長さ、ポインターの3オクテットを除けば、完全な4オクテットアドレスは九つしか入らない。ただし、これは他の実質的なオプションがない場合の算術上限であり、九ホップの応答を約束するものではない。

経路を命令しない観測

Loose Source and Record Route や Strict Source and Record Route は、送信者が与えた中継アドレスを転送判断に使った。対してタイプ7は、通常のルーティングが選んだ道に口を出さない。実際に通った装置に、可能ならアドレスを残してほしいと頼むだけだった。

その差は証拠の読み方を決める。署名も、永続的な装置 ID も、すべての中継点が参加したという証明もない。空欄は短い経路を表すかもしれないが、フィルタリング、変更せず通す設定、未実装、断片化、想定外の経路でも生じる。記入済みの値は、その時点である装置が協力した痕跡にはなる。しかし欠落から装置の不在を断定できない。

RFC 1122 は、ホストによる生成と処理を任意とした。ただし ICMP Echo Request で受け取った Record Route は更新し、切り詰めず Reply に含めるべきだとして、往復の記録を可能にした。この診断も、途中の管理主体がそれぞれ許す場合にしか成立しない。

既定値が反転した理由

1995年の RFC 1812 は、転送パケットの Record Route をルーターがサポートすることを必須とした。変更せず通す設定を用意してもよいが、既定では記録処理を有効にする必要があった。トポロジー開示への懸念を認めつつ、協力を通常状態に置いていたのである。

2014年の RFC 7126 は出発点を逆にした。タイプ7はネットワーク構造の把握に悪用できる一方、狭い領域のため有用性にも限界がある。RR を指定した ping などは遮断で壊れるが、通常の ping は影響を受けない。そして広範な破棄により、オプション依存の診断はすでにほぼ利用不能だった。そこで、破棄・無視・規定通りの処理を選べる専用設定を求め、文書化された既定値を「破棄」とするよう勧告した。

出典