神戸大学における IPv6 に対する取り組み
総合情報処理センター

伴 好弘

1 はじめに本稿では, 近年脚光を浴びている IPv6 について, その仕組みに関する簡単な解説と端末の設定方法などについて述べた後, 総合情報処理センタで全学規模のサービスを目指して取り組みについての状況を述べてみたいと思います.

2 IPv6 とは
最近良くネットワーク技術関連の言葉の中で, IPv6 という言葉を耳にすると思います. ではこの IPv6 とはいったいどういったものなのか, 一般的な利用者にとってどうなっているのかを簡単化して説明してみたいと思います∗1 .

2.1 IPv4 と比べてどこが違うのか
常時接続が一般家庭まで普及した現在, インターネットに接続するときに必ず用いている通信プロトコルに IP というものがあります. これは Internet Protocol の略称で, インターネットのもっと重要な仕組みの一つと言えます. IP の中で, 広く用いられているのが IPv4 と呼ばれるものです. これはインターネットの世界で一意にきめられた IP アドレスと呼ぶ 32bit 分の長を持つ識別番号∗2 を用いて通信を行うプロトコルです. たとえば, 神戸大学のドメインネームサーバの一つ, ns.kobe-u.ac.jp の IP アドレスは133.30.8.2と表現します. この例に挙げた IP アドレスはグローバルアドレスといい, 世界中で一つしか存在しません. ところが, 現在爆発的にインターネットの世界が広がっていく過程で, 一意にきめる必要のある IP アドレスが足りなくなりそうな事態が, すぐ目の前に来ている状況です. このアドレ
ス不足を一時的に解決するために, CIDR やプライベートアドレス空間が定義されています. しかし, DNS やネットワーク機器の設定が難解であったり, プライベートアドレスの場合, NAT と∗1 本解説では, 基本的なところに焦点を当てていますので, さらに詳しく知りたい方は, RFC や専門書籍をご覧下さい∗2 電話番号を連想してもらうといいでしょう.

呼ばれるアドレス変換を用いない限り, 直接グローバル IP アドレスと通信できないといった制限等から一時的な対策と考えられています.
そこで, このアドレス不足を解消するため, 128bit 分の空間を用意した新しい通信プロトコルが考え出され, 反映された IP プロトコルが IPv6 と呼ばれるものです. もっとも, IPv6 ではアドレス空間の拡張以外に, IPv4 が考え出された当時, 問題になるとは予想していなかった, セキュリティへの配慮や, ネットワーク設定の自動化, 長い期間, 実用に耐えうるプロトコルにするためのアイデアを盛り込んでできています.

2.2 IPv6 のアドレスとはでは IPv6 のアドレスとはどのようなものかというのを示してみます. 先ほどと同様に

ns.kobe-u.ac.jp の IPv6 アドレスは2001:02f8:0015:0100:0000:0000:0000:0001となります. このように 16 進数表現の数字が 4 桁ごとにコロンで区切られて 32 桁続くという非常に長い IP アドレスとなります. いつもこのように書くのも手間がかかったり, 間違えたりしますので, 0 に関して省略することが可能です. 省略のルールとして以下の 2 つがあります.

1. ”:” で区切られた間の中で一番左側の 0 は省略できる
例. 0123 の場合 123 に省略でき, 0000 の場合 0 と省略できる

2. 0:0:0 のように 0 が続く場合, 一度だけ”::” で省略できる
このルールに従って, 先ほどのアドレスを省略していくと, 以下のように表現をかえていくことができます.

1. ルール 1 を適応して, 2001:2f8:15:100:0:0:0:1
2. ル ー ル 2 は, 2001:2f8:15:100:0:0:0:1 の 中 の 0:0:0 が 省 略 対 象と な り, そ の 結 果
2001:2f8:15:100::1 となる
このようにして, 省略形

2001:2f8:15:100::1ができあがります.

2.3 ネットワークの自動設定
IPv4 による通信を行うとき, IP アドレスや, サブネットマスク, ゲートウェイアドレスなど,たくさんの数字を打ち込んだことがあると思います. IPv6 では, これらのアドレスを自動的に設定するための仕組みとして, RA(Router Advertisement) と呼ぶ仕組みと, ネットワークインタ

フェース (NIC) の持つ MAC アドレス∗3 を用いて, 自己のアドレスを自動的生成する機能が備わっています (詳しくは後述) ∗4 . つまり極端な話, ネットワークケーブルをパソコンにつなぐだけで通信のために必要な最低限の設定ができてしまうということです. これが大きな特徴の 2 番目となります. ただし, 最低限と言ったように, ネームサーバの設定などは自動的には行ってくれません∗5 .

2.4 グローバルアドレスとリンクローカルアドレス
IPv4 では非常に気を使うことが多かったネットワークアドレス (セグメント) という概念です
が, IPv6 でも残っています. しかし, IPv6 ではこれをプレフィックスと読んでいて, IPv4 ほどユーザが気にする必要は無くなっています. その表現の方法も従来と同じく,プレフィックス/プレフィックス長と表現しています. たとえば神戸大学のネットワークを表すプレフィックスは2001:02f8:0015/48 省略して 2001:2f8:15/48と表すことができます. ここで, 具体例を挙げて見ることにします. 以下に示した表は, ftp.kobeu.ac.jp の IPv6 ルーティングテーブルから抜粋したものです.
Kernel IPv6 routing table
Destination::1/128
2001:2f8:15:101:206:5bff:fe3c:b7ae/128
2001:2f8:15:101::/64
fe80::206:5bff:fe3c:b7ae/128
fe80::/10

Next Hop
::
::
::
::
::

Flags Metric Ref
Use Iface
U020 loU028060227 0 lo
UA
256224320 eth0
U035530 lo
UA
25600 eth0

この表の一番左側の項, 上から順に

1. loopback アドレス
2. IPv6 グローバルアドレス
3. ネットワークプレフィックス
4. リンクローカルアドレス
5. リンクローカルプレフィックスとなります. 一番上の loopback アドレスは, 自分自身を示すアドレスで, IPv4 で 27.0.0.1 と表現しているものと同じ働きをします. 続いて, 項目 2 と 3 を比べてみると, 2001:2f8:15:101 の部分と, 206:5bﬀ:fe3c:b7ae の部分とに分けることができます. 3 は先ほど出てきた, プレフィック
スです. この例では 64 ビット長のネットワークプレフィックスとなり, 接続したネットワークから自動的に取得されたものです. 残りの 206:5bﬀ:fe3c:b7ae はインタフェース識別子といいま∗3 一昔前, MAC アドレスがすべて 0 になっているネットワークインタフェースがありました. しかしこのようなインタフェースは悪いことばかり起きて, 問題の種となりますので, 利用は控えてください.
∗4 IPv6 通信環境がそのように設定されていることが前提です. また, 従来通り手動で設定することも可能です.
∗5 これを実現するには IPv6 版 DHCP か手動設定となります.

す. この例では, インタフェース識別子の生成に ftp.kobe-u.ac.jp が使用している NIC が持つMAC アドレスから EUI-64 フォーマットというインタフェース識別子に変換しています. このような手順で, ネットワークプレフィックスと, インタフェース識別子を組み合わせて, グローバルアドレスが生成されます. この場合は自動的にアドレスを生成する場合の例ですが, インタフェース識別子を手動で設定することも可能です. 言うまでもありませんが, その場合でも同じプレフィックス中に重複するインタフェース識別子が存在してはいけません.
では, 項目 4 のリンクローカルアドレスとはどういったものか説明します. このアドレスもグローバルアドレスの時と同様に, インタフェース識別子は同じものを用います. しかし, グローバ
ルアドレスと違い, プレフィックス部分は, 項目 5 で始まっています. このアドレスの働きは物理的に同じネットワーク∗6 につながった機器間での通信に利用される点が, グローバルアドレスとの違いになります. 従って, IPv6 ネットワークを構築した場合で, グローバルアドレスが獲得できない状況であっても, IPv6 で通信できる機器同士をスイッチングハブ等で接続すれば, すぐに通信ができます. しかし, リンクローカルアドレスはリンクが違った場合, アドレスの重複が許されるので, ルータなどを経由して違う物理ネットワークへは通信が行えません.
ここまで説明したように, IPv6 ではリンクローカルアドレスと, グローバルアドレス∗7 という2 つのアドレスをもつことになります. IPv6 のネットワークの設定はこれでほぼ終りになってしまいます. 今までだと, ネットマスクや, デフォルトゲートウェイの設定が必要でしたが, これらは自動的に見つけ出す機能が備わっているため, ユーザは気にする必要はありません.

3 IPv6 が使えるまで
では, 具体的に IPv6 で通信が行えるまでの手順を簡単に説明したいと思います. やはりここでも詳しい説明は別の解説に任せるとして, 要点だけを押さえたいと思います. いずれの例も, 利用するネットワークがデユアルスタック化∗8 されている前提で述べています.

3.1 Linux 編
Linux 系∗9 のディストリビューションは数多くありますが, 今回は Vine Linux ∗10 の場合について, 設定方法などを説明します. いずれのディストリビューションも RedHat 系なので, 同じ系統であれば, ほぼ同じ方法で IPv6 の設定が可能と思います.

∗6 リンクと呼びます∗7 サイトローカルアドレスという, IPv4 ではプライベートアドレスに相当するプレフィックスもあります.

これはfec0:で始まります.
∗8 IPv4 と IPv6 両方のプロトコルが利用できるネットワークです. 神戸大学では IPv4 から IPv6 への移行が必要になったときスムーズに行える観点から, デュアルスタック化したネットワークを構築する予定です.
∗9 BSD 系は数多くの良質な解説があるので, 省略させて頂きます.
∗10 Vine Linux 2.6 を用います.

3.1.1 準備
まずはじめに, 利用しているカーネルが IPv6 に対応しているかを調べる必要があります. もし, IPv6 に対応していない場合はカーネルの再構築が必要になります. 今回取り上げる Vine

Linux では既に IPv6 対応が行われています. また ping 等のツール類に関してですが, 最近のディストリビューションでは既に IPv6 対応がなされています.

3.1.2 設定
では IPv6 を利用するための設定はどこに書けば良いかという説明をします. 対象となるファ
イルは/etc/sysconﬁg/network です. 通常このファイルの内容はNETWORKING=yes
HOSTNAME=test.foo.bar
GATEWAY=123.45.67.89のようになっているとおもいます. そこに以下の４行を追加します.

NETWORKING_IPV6=yes
IPV6FORWARDING=no
IPV6AUTOCONF=yes
これは上から順に, IPv6 の利用開始, IPv6 フォーワード無し, IPv6 自動設定あり, となります.
基本的な設定はこれで完了です. あとは IPv6 が使えるネットワークインタフェースを再立ち上げすれば, IPv6 での通信が可能となります.

3.1.3 確認では, 正しく IPv6 アドレスが獲得できたか確認してみます. 以下のように ifconﬁg コマンドを実行すると, IPv4 アドレスと共に, IPv6 アドレスが表示されていれば, 第一段解突破です.
[ftp]% ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:06:5B:3C:B7:AE
inet addr:133.30.10.10 Bcast:133.30.10.255 Mask:255.255.255.0
inet6 addr: 2001:2f8:15:101:206:5bff:fe3c:b7ae/64 Scope:Global
inet6 addr: fe80::206:5bff:fe3c:b7ae/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:611323822 errors:0 dropped:0 overruns:0 frame:0
TX packets:654486989 errors:0 dropped:0 overruns:1 carrier:0
collisions:0 txqueuelen:100
RX bytes:839832407 (800.9 Mb) TX bytes:621018434 (592.2 Mb)
Interrupt:16 Base address:0xecc0 Memory:fe2ff000-fe2ff038[ftp]%

このように, グローバルアドレスと, リンクローカルアドレスの両方が設定されています. 万が一, リンクローカルアドレスだけの場合は, そのネットワークがまだ IPv6 に対応していないこと

が考えられます∗11 .
では本当に, IPv6 で通信できているかを確認してみます. そのためには IPv6 に対応したツールが必要です. ここでは ping6 というコマンド∗12 を使ってみます.
[ftp]% ping6 2001:2f8:15:100::1
PING 2001:2f8:15:100::1(2001:2f8:15:100::1) from 2001:2f8:15:101:206:5bff:fe3c:b7ae : 56 data bytes
64 bytes from 2001:2f8:15:100::1: icmp_seq=0 hops=63 time=1.397 msec
64 bytes from 2001:2f8:15:100::1: icmp_seq=1 hops=63 time=1.263 msec
64 bytes from 2001:2f8:15:100::1: icmp_seq=2 hops=63 time=1.275 msec

この例では ns.kobe-u.ac.jp に ping を打ってみました. このように返事が返ってくれば, IPv6 による通信ができていることになります.

3.2 Windows 編
Windows 環境で IPv6 を利用するにはいくつかの制限があります. まず利用できるのはWindows2000, XP に限定されてしまいます. Windows2000 以前の OS は残念ながら利用できません.

3.2.1 Windows2000 の場合
Windows2000 で IPv6 を利用するには IPv6 Technology preview∗13 というものを組み込む必要があります. またこのモジュールは名前の通り Technology Preview となっていますので, どんな問題が表面化するか分かりませんので, 実験環境で行うことをおすすめします. 導入時には脚注に挙げた URL の説明を良く読んでください. 現時点では IPv6 での通信においても, DNSへの問い合わせは IPv4 で行う様なので, 完全に IPv6 化が行えているというわけではないようです.
続いて, コントロールパネルにある, ネットワーク設定から IPv6 プロトコルのインストールをする必要があります. この作業を完了して, はじめて IPv6 の利用が可能となります. 詳しくはMicrosoft のページに FAQ∗14 がありますので, 参照してください.

3.2.2 WindowsXP の場合一方代って, Windows XP ではサービスパック 1 を導入することで, IPv6 スタックが利用でます∗15 . 実際に利用するには, コマンドプロンプトを立ち上げて,ipv6 installと実行する必要があります. XP の場合はこれで IPv6 を利用する準備が整います.
∗11 平成 15 年 2 月現在はまだ, 学内で IPv6 による通信はできません.
∗12 他に traceroute6 などがあります.
∗13 http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp∗14 http://www.microsoft.com/windowsxp/pro/techinfo/administration/ipv6/default.asp∗15 http://www.microsoft.com/windowsserver2003/technologies/ipv6/default.mspx

3.2.3 確認
この状態で, コマンドプロンプト上で ipconﬁg コマンドを実行すると, IPv4 アドレスと共に,IPv6 アドレスが表示されているとおもいます. また, Linux の時と同様に ping6 で確認ができます. 一番簡単な確認方法として, 自分に ping を打つ方法があげられます. 具体的には以下のようにします.

ping6 ::1

4 総合情報処理センタでの取り組み
最後に, 現在総合情報処理センタで取り組んでいる IPv6 への取り組みについて, 述べてみたいと思います.

4.1 フェーズ 1; SINET のサービス開始から NLA 取得まで
昨年 (平成 14 年) の 8 月に SINET で IPv6 接続サービス∗16 が立ち上がりました. そこで, 神戸大学もエントリを行い, 2001:2f8:15/48 という NLA∗17 を取得しました.

4.2 フェーズ 2; 実験環境の構築
NLA の取得後, 機器の手配などいろいろな事情から, 11 月に入って実験環境の構築に取り掛かりました. 現在まで, IPv6 による学外との通信は拠点間に張った IPv4 によるトンネルネットワークによって実現しています. そこで, トンネルルータを用意し, SINET の持つトンネル装置との間で, 経路を確立させました. 今のところ, 対外接続部分という非常に限られた場所のみデュアルスタック化を行っています. 従って, 恒常的に IPv6 でサービスを行っているサーバは, DNSと FTP のみとなっています. その他は, IPv6 化を行うための実験機材がつながっています.

4.3 今後の計画
今後は, デュアルスタック化を全学規模に展開しようと, 計画しています. しかし, 今のところ,IPv6 に対応するネットワーク機器は限られている上に非常に高価なため, いろいろと工夫する必要があります. そこで, 安価で高速処理ができるようになった PC を用いて IPv6 ルータを構築して, それを基幹ネットワークにアドオンする形で展開することを考えています. こうすることで,現行のネットワーク機器を変更すること無く, デュアルスタック化を実現できる予定です. サー∗16 http://www.sinet.ad.jp/sinet/ipv6/top/index.html∗17 Next Level Aggregator といい, 神戸大学のネットワークを指します. IPv4 でいう神戸大学のネットワークアドレス 133.30/16 と同じものです.

ビス面では DNS, FTP 以外に IPv4 で行っているサービスを透過的に利用できるよう, 順次整備を進める計画です. 現在のところ, IPv4 でもサービスインしていませんが, オンデマンドストリーミングサービス∗18 を検討しているところです. 全学規模に展開するにあたって, プレフィックスの仕様を固める必要があるのですが, 今の計画ではプレフィックス長 64 ビットで学部単位に配布する計画です. 従って理論上, 1 学部あたり 264 台分のアドレス空間が利用可能になります. また, DNS に関して, 従来通り手動で登録するか, EUI-64 形式で自動設定にするか, 検討を行っています. いずれの場合においてもネットワークセキュリティ問題が関係してきますので,この問題に関しても何らかの解を見つける必要があります.

5 むすび
これまで述べてきたように, 現状では全学規模の実験サービスを開始するには至っていません.
また, 運用面においても, いくつか問題があるため, これらを解決していく必要があります. これ
らの検証のため, 今年の秋を目処にほぼ全学規模で IPv6 による通信が行えるように改良していく計画です. まだ今のところ, IPv6 サービスは実験的な扱いですが, 今後穏やかに IPv6 へ移行していくことは間違いないと思われます. 実験サービスが開始された時点で, 研究などの題材としてとして大いに利用してもらえることを期待しています.

6 参考文献
本稿では非常に縮小して IPv6 の概略説明を行ったため, ほんの一部にしか過ぎません. IPv6に関して扱った書籍やネットワーク上の情報は非常に多岐に渡っています. もし, IPv6 のことをさらに詳しく知りたいという方のために, いくつか情報源を列挙してみたいと思います.

• 使って学ぶ IPv6, 砂原秀樹 監修, 増田康人, 長橋賢吾, 有賀征爾 著, 株式会社 ASCII 刊• USAGI Project; http://www.linux-ipv6.org/• KAME Project; http://www.kame.net/• IPv6 FAQ; http://www.v6.kddi.com/v6faq/v6faq.html∗18 教育研究用途に限定したサービスを開始する予定です.