要約

  • LinkovaはRIPE 93で、2019年にオフィスのゲストWi-FiをIPv6専用にした後、管理職のスマートフォンが接続に7秒かかったと語った。調査の結果、Neighbor Discoveryの状態機械に抜けが見つかった。
  • RFC 9131は、第一ホップルーターが未承諾Neighbor Advertisementから新しいIPv6アドレスを学べるようにする。LinkovaによればAndroidと複数ベンダーが実装したが、RIPEの逐語録には機器別の検証表はない。

7秒は、利用者に我慢させて埋める時間ではない

Wi-Fiに接続するだけで7秒。スマートフォンを手にした利用者にとって、ネットワークの状態機械の説明は関係ない。Jen LinkovaはRIPE 93で、2019年にオフィスのゲストネットワークをIPv6専用へ移行したと振り返った。上司のスマートフォンは接続に7秒かかり、ほかの利用者も不満を示した。

Linkovaと同僚が追った先は、Neighbor Discoveryの状態機械だった。IPv6ホストはこの仕組みでリンク上の次ホップを見つけ、到達性を管理する。新しいグローバルIPv6アドレスを受け取ったスマートフォンは、デフォルトルーター経由で外部へ通信できる。しかし第一ホップルーターには、その新しいアドレスに対応するNeighbor Cache項目がまだない場合がある。

RFC 9131は、その隙間を説明する。ルーターは、ホスト宛ての戻りパケットが届いて初めてアドレス解決を始めることがある。解決中に保持できるパケットは少数で、それ以上は破棄される可能性がある。端末はネットワークへ参加したのに、最初の通信で遅延やパケット損失に遭う。

Linkovaはこの不具合をIETFへ持ち込んだ。RIPE 93での説明によると、彼女が問題を提起した後に草案が採択され、Androidと複数のベンダーが提案を実装し、約2年後にRFCが公開された。Androidの実装はさらに早く、上司の端末で7秒の待ち時間は見られなくなったという。

RFC 9131は、ホストが新しいグローバルIPv6アドレスを設定したとき、未承諾Neighbor Advertisementで第一ホップルーターに知らせる方法を定める。ルーターは戻りパケットを待つ前にNeighbor Cache項目を作れる。既存項目がある場合、不完全な場合、存在しない場合も別々に扱う。2021年10月にIETF Standards Trackとして公開され、RFC 4861を更新した。

この話の核心は、社内の苦情が複数の実装者に共有できる仕組みへ変わったことだ。Linkovaは一社のベンダーに自社だけの修正を頼むこともできた。彼女は、ひとつのネットワークで役立つ変更が別のケースを壊さないか、業界の専門家に広く見てもらう価値を強調した。IETFレビューは、複数の実装が参照できる共通文書を残した。

ただしRFCからは、現在何種類のスマートフォンやルーターが対応しているかは分からない。RIPEの逐語録はAndroidと「いくつかのベンダー」に触れるが、製品版、パケット記録、試験件数は示していない。普及の幅を確かめるには、クライアントとルーターの版、Neighbor Advertisementの処理、初回接続時間を結び付けた公開表が必要だ。

苦情は失敗を見つける。パケットは仕組みを示す。実装は修正が会議室の外へ出たかを示す。

出典