IPv6についてInternetWeek2008で勉強したことをまとめてみた
2009年、IPv6について変化が起きそうでそれほど起きなさそうで…でも、そろそろ勉強しておいた方がいいと感じてる。
そこで、2008年11月のInternetWeek2008でIPv6について勉強したことを少しまとめてみた。
IPv6ルータ設定前(IPv4ネットワークのみ有効)
C:\Users\hykt>ipconfig /all (説明に関係ない部分は省略) Windows IP 構成 ホスト名 . . . . . . . . . . . . : hykt-NOTE プライマリ DNS サフィックス . . . . . . . : subdomain.example.com ノード タイプ . . . . . . . . . . . . : ハイブリッド IP ルーティング有効 . . . . . . . . : いいえ WINS プロキシ有効 . . . . . . . . : いいえ DNS サフィックス検索一覧 . . . . . . : subdomain.example.com example.com イーサネット アダプタ ローカル エリア接続: 接続固有の DNS サフィックス . . . : 説明. . . . . . . . . . . . . . . : Intel(R) PRO/100 VM Network Connection 物理アドレス. . . . . . . . . . . : 00-0D-5E-XX-XX-XX DHCP 有効 . . . . . . . . . . . . : はい 自動構成有効. . . . . . . . . . . : はい リンクローカル IPv6 アドレス. . . . : fe80::756c:XXXX:XXXX:XXXX%8(優先) IPv4 アドレス . . . . . . . . . . : 192.168.100.4(優先) サブネット マスク . . . . . . . . : 255.255.255.0 リース取得. . . . . . . . . . . . : 2008年11月XX日 XX:04:33 リースの有効期限. . . . . . . . . : 2008年11月XX日 XX:06:41 デフォルト ゲートウェイ . . . . . : 192.168.100.1 DHCP サーバー . . . . . . . . . . : 192.168.100.1 DNS サーバー. . . . . . . . . . . : 202.243.XXX.XXX NetBIOS over TCP/IP . . . . . . . : 有効
- リンクローカルアドレスのみ有効。
- リンクローカルアドレスは、fe80::/64というアドレス。
- 下位64ビットは自動生成も可能。例えば、EUI-64*1
- VistaではEUI-64ではなく、ランダムに生成される。
- EUI-64では、MACアドレスを11:22:33:44:55:66とすると、次の方法で文字列を生成する。
手順 | 文字列 |
---|---|
上位24ビット(11:22:33)と下位24ビット(44:55:66)に分ける | 11:22:33 と 44:55:66 |
両者の間にff:fe(16ビット分)を挿入する | 11:22:33:ff:fe:44:55:66 |
上位から7ビット目を1にする*2 | 13:22:33:ff:fe:44:55:66 |
できあがり | 13:22:33:ff:fe:44:55:66 |
IPv6 ルータ設定後(IPv6/IPv4両方のネットワークが有効)
C:\Users\hykt>ipconfig /all (説明に関係ない部分は省略) Windows IP 構成 ホスト名 . . . . . . . . . . . . : hykt-NOTE プライマリ DNS サフィックス . . . . . . . : subdomain.example.com ノード タイプ . . . . . . . . . . . . : ハイブリッド IP ルーティング有効 . . . . . . . . : いいえ WINS プロキシ有効 . . . . . . . . : いいえ DNS サフィックス検索一覧 . . . . . . : subdomain.example.com example.com イーサネット アダプタ ローカル エリア接続: 接続固有の DNS サフィックス . . . : 説明. . . . . . . . . . . . . . . : Intel(R) PRO/100 VM Network Connection 物理アドレス. . . . . . . . . . . : 00-0D-5E-XX-XX-XX DHCP 有効 . . . . . . . . . . . . : はい 自動構成有効. . . . . . . . . . . : はい IPv6 アドレス . . . . . . . . . . . : 2001:db8::1000:756c:XXXX:XXXX:XXXX(優先) 一時 IPv6 アドレス. . . . . . . . . : 2001:db8::1000:34bb:XXXX:XXXX:XXXX(優先) リンクローカル IPv6 アドレス. . . . : fe80::756c:XXXX:XXXX:XXXX%9(優先) IPv4 アドレス . . . . . . . . . . : 192.168.100.4(優先) サブネット マスク . . . . . . . . : 255.255.255.0 リース取得. . . . . . . . . . . . : 2008年11月XX日 XX:04:33 リースの有効期限. . . . . . . . . : 2008年11月XX日 XX:06:41 デフォルト ゲートウェイ . . . . . : 192.168.100.1 DHCP サーバー . . . . . . . . . . : 192.168.100.1 DNS サーバー. . . . . . . . . . . : 202.243.XXX.XXX NetBIOS over TCP/IP . . . . . . . : 有効
ルータでIPv6を有効にするために設定したこと(YAMAHA RT58iの場合)
コマンド | 設定内容 |
---|---|
# ipv6 routing on | IPv6ルーティングを有効化 |
# ipv6 lan2 address fe80::1/64 | 上流側/外側インターフェースのアドレスを設定 |
# ipv6 route default gateway fe80::ffff/64%lan2 | IPv6ルーティングの経路の設定 |
# ipv6 lan1 prefix 2001:db8:0:1000::/64 | 下流側/内側インターフェースにプレフィクスを設定 |
# ipv6 prefix 1 2001:db8:0:1000::/64 | RAパケット用のプレフィックスを設定 |
# ipv6 lan1 rtadv send 1 | RAパケットを送出する設定 |
いろいろなIPv6アドレス
呼び名 | アドレスの例 |
---|---|
グローバルユニキャストアドレス (グローバルルーティングプレフィックス+サブネットID+インターフェースID) いわゆるグローバルアドレス |
2001:0db8::1000:1111:1111:1111:1111 |
リンクローカルアドレス リンク(IPv4のブロードキャストドメイン)内で一意のアドレス。 ルータとの通信などで使用。 |
fe80::/10 |
ループバックアドレス | ::1(最後が1) |
未指定アドレス アドレスが未割り当てのときの送信元アドレス |
::(全部0) |
マルチキャストアドレス(IPv4のブロードキャストアドレスに相当) リンク(IPv4のブロードキャストドメイン)内の全てのIPv6ノード (ルータ/端末/自分も含む) |
ff02::1 |
インターフェースの設定からIPv6アドレスを見る
C:\Users\hykt>netsh interface ipv6 show address インターフェイス 1: Loopback Pseudo-Interface 1 アドレス種類 DAD 状態 有効期間 優先有効期間 アドレス --------- ----------- ---------- ---------- ------------------------ その他 設定 infinite infinite ::1 インターフェイス 8: ローカル エリア接続 アドレス種類 DAD 状態 有効期間 優先有効期間 アドレス --------- ----------- ---------- ---------- ------------------------ Temporary 設定 6d23h53m41s 23h53m41s 2001:db8::1000:34bb:XXXX:XXXX:XXXX 2a Public 設定 29d23h53m41s 6d23h53m41s 2001:db8::1000:756c:XXXX:XXXX:XXXX その他 設定 infinite infinite fe80::756c:XXXX:XXXX:XXXX%8
一時IPv6アドレスに関する設定を見る
C:\Users\hykt>netsh interface ipv6 show privacy アクティブ状態を照会しています... 一時アドレス パラメータ --------------------------------------------- 一時アドレスの使用 : enabled 重複アドレスの検出の試み : 5 有効期間の最大値 : 7d 優先する有効期間の最大値 : 1d 再生成時間 : 5s ランダム時間の最大値 : 10m ランダム時間 : 0s
近隣キャッシュ(neighbor cache)を見る
C:\Users\hykt>netsh interface ipv6 show neighbors インターフェイス 1: Loopback Pseudo-Interface 1 インターネット アドレス 物理アドレス 種類 -------------------------------------------- ----------------- ----------- ff02::16 恒久 ff02::1:3 恒久 ff02::1:XXXX:XXXX 恒久 インターフェイス 8: ローカル エリア接続 インターネット アドレス 物理アドレス 種類 -------------------------------------------- ----------------- ----------- 2001:db8::1000:2a0:deff:feXX:XXXX 00-a0-de-XX-XX-XX 到達可能 (ルーター) fe80::2a0:deff:feXX:XXXX 00-a0-de-XX-XX-XX 到達可能 (ルーター) ff02::2 33-33-00-00-00-02 恒久 ff02::16 33-33-00-00-00-16 恒久 ff02::1:3 33-33-00-01-00-03 恒久 ff02::1:ffXX:XXXX 33-33-ff-XX-XX-XX 恒久 ff02::1:ffXX:XXXX 33-33-ff-XX-XX-XX 恒久 ff02::1:ffXX:XXXX 33-33-ff-XX-XX-XX 恒久
IPv6とIPv4が両方有効な場合の通信の優先順位を見る
C:\Users\hykt>netsh interface ipv6 show prefixpolicies アクティブ状態を照会しています... 優先順位 ラベル プレフィックス ---------- ----- -------------------------------- 50 0 ::1/128 (ループバック) 40 1 ::/0 (IPv6) 30 2 2002::/16 (6to4) 20 3 ::/96 (互換アドレス) 10 4 ::ffff:0:0/96 (IPv4) 5 5 2001::/32 (Toredo)
- 優先順位の数値が大きい方が優先度が高い。
IPv4を優先して通信するよう設定する
netsh interface ipv6 add prefixpolicy ::ffff:0:0/96 60 4 netsh interface ipv6 add prefixpolicy ::/0 40 1
コマンドプロンプトを管理者として実行しないとダメだと思う。
これを実行すると、
netsh interface ipv6 show prefixpolicies 優先順位 ラベル プレフィックス ---------- ----- -------------------------------- 60 4 ::ffff:0:0/96 40 1 ::/0
…となるはず。
その他…
- IPv6アドレスは、そのまま表記すると長いので省略して表記できる。(IPv6の基本中の基本なので省略)
- 文書用IPv6アドレスとして、2001:db8::/32 が用意されている。*3
- Vistaでは、IPv6が有効になると、ネットワーク利用時にDNSクエリとしてAAAAレコードとAレコードの両方をルックアップする。
- AAAAレコードが引けた場合、IPv6でアクセスする。AAAAレコードが引けたのに、IPv6でアクセスできない場合、IPv4でのアクセスに切り替わるのに約20秒かかる。(TCPフォールバック問題)
*1: http://itpro.nikkeibp.co.jp/free/v6start/word_v6/20020325/1/
*2:ちゃんと意味がある→*1のリンクを参照
*3: http://www.nic.ad.jp/ja/translation/apnic/IPv6-Document-prefix.html
*5:L3SW/ルータ同士のリンクセグメントは、リンクローカルアドレスで通信するのでグローバルアドレスを割り当てる必要がない。
*6:考え方としては、IPv4でブロードバンドルータを利用している場合に、WAN側がグローバルアドレスでLANがプライベートアドレスになっているのを、WAN側グローバスアドレスとしてIPv6のプレフィックスを割り当てててしまう感じ。