IPv6の大きなメリットの一つに,現在のインターネットのしくみを作り直せるというものがある。ただ,ISP(プロバイダ)のバックボーン・ネットワークを設計する立場から言うと,それと同じくらい大きなメリットとして,自ISPのネットワークを作り直せることがある。将来の姿を描きながら新しいネットワークを設計・運用していくことはとても面白い。日米欧にまたがるグローバル・ネットワークの設計・運用してみて,このことを強く感じている。

 物理的なネットワーク構成やルーティングを設計する観点から見ると,IPv6のネットワーク設計はIPv4のそれと特に変わることはない。そのため,長年のIPv4ネットワークを設計・運用・拡張の経験は,IPv6ネットワークを作る場面でも大変役立つ。しかも,IPv6ネットワークは,基本的にこれまでのネットワークにとらわれることなくゼロから作ることができるので,より質の高いネットワークを設計できる。

 OCNを立ち上げたときは,何の経験もなしにバックボーン・ネットワークを設計せざるを得なかった。この5年前の設計と比べると,現在のIPv6ネットワークの方がはるかにマシな設計になっているはずだ。目先のことだけを考えるのではなく,将来に渡って運用しやすく,かつスケーラビリティのあるネットワークになるように設計できたからだ。

 もちろん,IPv4の経験だけではIPv6ネットワークは作れない。現在,IPv6対応機器には,どんどん新機能が追加されており日夜発展している。そのため,どのIPv6対応機器が何をどこまでできるかを把握していないといけない。例えば,うちのネットワークではOSPFv3を導入しているが,それがどのくらいのリスクがあるのかを検証し把握していないといけない。また,今あるIPv4ネットワークと将来的にマージする方法を考える必要もある。将来のあるべき姿を描き,それに向かって新しく加わった機能を活用しながらネットワークを発展させていく作業はとても面白く,やりがいがある。

 設計だけでなく,運用もなかなか面白い。新しいことにチャレンジしやすいからだ。現在のIPv4ネットワークでは,新機能の導入を考えるとき,メリットよりそれを入れることのリスクに配慮しがちになる。しかしIPv6では事情が異なる。日進月歩で技術開発が進んでいることや,機器の機能強化が目覚しいため,24時間の安定運用が求められる商用サービスでさえ,新機能を入れるメリットの方が入れないデメリットより大きいケースが多い。つまり,攻めの運用ができるのだ。

 運用していると,IPv4ネットワークの運用では経験できないトラブルに出くわすこともある。ちょっとした事例を紹介しよう。

 現在,弊社のIPv6ネットワークは世界の様々なIXでいろいろな組織とIPv6 nativeでのBGP4+ peeringをしている。IPv6の場合,このようなnative peeringに加え,IXに直接つながっていない組織に対してもIPv6 over IPv4トンネリング技術を使ってpeeringする場合が少なくない。このようなトンネルpeeringにおいてBGP4+のセッションが切れるトラブルが起きた場合,IPv6の状態だけでなくIPv4ネットワークの状態も把握しなければならない。

 あるとき,このようなトンネルpeeringの一つにおいてBGP4+セッションが切れ,しばらくたつと再びBGP4+セッションが回復する,といったトラブルが数日の間隔を空けて何度か続けて起こった。自分のネットワークが大丈夫なことを確認したのち,peering相手に確認すると,IPv6では何もやっていないという。そこで,トンネルpeeringのBGP4+セッション区間のIPv4ネットワークについて相手に確認した。すると,確かに回線の切り替えなどを行ったが,IPv4ネットワークは冗長構成をとっているので,その回線切り替えが原因となってIPv6のBGP4+ セッションがダウンするわけがないと言う。

 ちょっとおかしいと思い,突っ込んで聞いてみた。するとこのpeering相手は,該当部分のIPv4ネットワークのルーティングにRIPを使っていることがわかった。つまり,IPv4のRIPが切り替わる前にIPv6のBGP4+のホールドタイマーがexpireしてしまい,結果的にBGP4+ セッションが切れてしまうという現象が生じていたのだ。

 このトラブルシュートのポイントは,IPv6からみるとpeering間のトンネルは単なる回線のように見えるが,実はその線がIPv4のネットワークでできている,ということにある。トンネル・インタフェースはダウンを検知できないので,IPv6からみるとその回線はダウンしていないように見えてしまう。この結果,回線はダウンしていないのに,BGP4+セッションは切れてしまう――と思えたわけだ。

 ちなみに,IPv4ネットワークがしっかりしていないとIPv6の通信や保守ができないことはよくある。例えば,IPv6機器を監視するためのSNMPパケットは,通常はまだIPv4パケットだ。また,ユーザー周りのIPv6ネットワークが生きていても,IPv4ネットワークが死んでいるとWebにアクセスできないということもよくある。DNSを引けずに,WebサーバーのIPアドレスを取得できないからだ。

 以上のトピックは,BGP4+ peeringの運用という一例にすぎない。IPv6ネットワーク全体を設計・運用するときは,このような要素が複雑に絡み合うため,論理的な思考がとても重要となる。

 IPv6ネットワークの設計・運用に関する私見を述べてきた。新しいもの好きのエンジニアなら,きっとIPv6ネットワークの設計・運用は興味深いものとなるはずだ。述べてきたようにIPv6ネットワークの運用や設計では,IPv4での運用や設計の経験が役に立つ。IPv4に集中している多くのエンジニアにもIPv6の開発・設計・運用に加わって頂き,IPv4では経験できなかったIPv6の楽しさを感じてもらえればと思う。



OSPFv3
 RFC2740 で規定される「OSPF for IPv6」のこと。IPv4 用の OSPF version 2 に続くものとして version 番号が 3とされたため, OSPFv3(Open Shortest Path First version 3)とも呼ばれている。
IPv6 native
 IPv6 パケットをそのまま物理メディア上に流すこと。 生6とも言われる。IPv6 パケットに IPv4 ヘッダーを付けて既存の IPv4 ネットワーク上を通す場合の IPv6 over IPv4 tunneling と対照的な位置付けとなる。
BGP4+
 RFC2283 で規定される Multiprotocol Extensions for BGP4 をサポートした BGP4 のこと。もともと BGP4 では IPv4 の経路情報しか運べなかったが,Multiprotocol Extensions for BGP4 によって VPN や IPv6 の経路情報も運べるようになった。
peering
 「peering」という言葉には,「ISP同士が対等な関係でBGP4/BGP4+を用いて接続し,経路交換をする」という狭義な意味と,「BGP4/BGP4+のセッションを張る」という広義な意味が存在する。ここで言っているのも前者の意味。
native peering
 BGP4/BGP4+ を用いた接続区間に IPv6 native 接続を用いるpeeringの形態。
トンネルpeering
BGP4/BGP4+ を用いた接続区間に IPv6 over IPv4 tunneling 接続を用いるpeeringの形態。
ホールドタイマー
 BGPのホールドタイムとは,BGPのメッセージを最後に受け取ってからBGPセッションを切断するまでの保持時間である。そして、ホールドタイムの時間内にKEEPALIVE,UPDATE,NOTIFICATIONメッセージのいずれも受け取ることができなかった場合は,ホールドタイマーExpiredエラーコードが送出され,そのBGPセッションは切断される。「インターネットルーティング入門」の p.236 を参照。なお,BGP4/BGP4+ではBGPセッションを維持するためにKEEPALIVEメッセージを交換する。通常,ホールドタイムはKEEPALIVEメッセージの送出間隔の3倍であることが多い。

友近 剛史
NTTコミュニケーションズのインターネット接続サービス「OCN」の立ち上げに参加し,バックボーン・ネットワークの設計・構築を担当する。その後,運用やネットワークの拡大,OCN新サービスの開発,IP系新技術の調査,マルチホームなどの営業技術支援に従事。現在はその経験を生かしてNTTコミュニケーションズのIPv6グローバル・ネットワークの設計・運用を担当している。著書に 「インターネットルーティング入門」(翔泳社:2001年9月)がある。