IPv6 on Windows 7 in localnetwork


 こんな事に高いセミナー代金を支払う価値はない。 まだ仕様が固まっていないし、運用実績も乏しいし、営利で情報隠しが多いし。

 ローカルネットワークにおいてDHCPv6を運用するまでの手順

1. 構成

 ・rtadvd (IPv6 RA)
 ・ISC-DHCP 4.2.3-P2 (FreeBSD9-STABLE)
 ・Windows 7 SP1 (Ultimate)
 ・ISC-BIND 9.8.2

2. 条件

 ・IPv6アドレスは、ユニークローカルユニキャストアドレスを使用(fd00::/8)
 ・DHCPv6でアドレスを蒔く(ISC-DHCPv6)
 ・クライアントのアドレスをDNS へ動的に登録
 ・DNS サーバは、DMZ に配置する外部サーバと、内側にサービスする内部サーバとを分離する(ユニークローカルアドレスを自動登録するので必須)
 ・IPv6アドレスは外へ出さない

3. 各自が決める必要があること

 ・IPv6ネットワーク構成(どうセグメントを割るか)

4. 前置き(前提知識)

 ・デフォルトルート(=ネットワーク)は、RAが自動的に「リンクローカルアドレス」を振る
 ・サブネットという概念は無い
 ・DHCPv4と比較して撒けるサーバアドレスに制限がある(DHCPv6-Clientが未対応とかがよくある)
 ・実装によっては、RAがDNS を撒けたりする
 ・まずRA。 全てはそこから。 IPv6ルータ=DHCPv6とか、アドレスの自動割り当てが可能とかの幻想を一度全て忘れる
 ・IPv6アドレスには色々な種類がある。 全部意味不明な番号の羅列だけど、一部のアドレスには利用上の縛りがある
 ・RAが複数いるとネットワーク全体がダウンする(=通信不能になる)ことを覚えておく(どこかの馬鹿がRAをしゃべる個人PCをつないだら…?
 ・IPv6-Client は、リースされたアドレスを簡単には手放さない(ディスクに記録して再起動しても使おうとする)
 ・IPv6ルータやサーバには固定でIPv6アドレスを振るのがベスト(自動割り当てされるアドレスとは別にアドレスを振る)

5. アドレス

 ・DNS サーバ : 3ffe:501:ffff:100::10/64
 ・DHCPサーバ : 同上
 ・PROXY サーバ: 同上
 ・NTP サーバ : 同上
 ・WWW サーバ : 同上
 ・クライアント: 3ffe:501:ffff:100::1001/64
 ・割り当て空間: 3ffe:501:ffff:100::1001/64〜3ffe:501:ffff:100::7fff/64

6. 構成作業の外観

 1)IPv6ルータ(RA)を立てる
 2)DNS サーバを立てる
 3)各種サーバを立てる
 4)DHCPv6サーバを立てる
 5)クライアントを構成
 6)クライアントをつなぐ
 7)設計通りに構成されていることを検査
 8)疎通確認

7. ここまでのまとめ

 上記の通り、全てを書こうとすると無償で技術情報を書くには手間が掛かり過ぎる。
 従って、IPv4アドレスをIPv6アドレスに置換するだけで終わる部分は割愛する。
 具体的には、DNS(BIND), PROXY(squid), WWW(apache), NTP が該当する。

8. 作業

1)IPv6ルータを立てる

 /etc/rtadvd.conf

re0:\
 :raflags#192:mtu#9000:

 他のディストリビュートは知らないが、FreeBSD はデフォルトだとファイルがないから、このパスに このファイル名でパラメータファイル作る。
 やっていることは、RAメッセージのMとOフラグを立てている。 これによりDHCPv6からアドレスを構成することを案内させる。
 これをやらないと、IPv6クライアントは、DHCPを探さない。 RAがないと探したりするし、RAが怪しい事を案内していると案内を無視してDHCPを探すクライアントもある。
 ※全角空白の部分は「必ずタブ文字」にする。

 FreeBSD の、このRAに対する予防線からわかる通り、IPv6ホストがRAを語り始めるとIPv6ネットワークは一時的だが致命傷を負う。

2と3)割愛

4)DHCPv6サーバを立てる

 /usr/local/etc/dhcpd6.conf

authoritative;
default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
/* ↑ デフォルト。 これらの時間を短縮するとWindows7が嫌がってDHCPの案内を全て華麗に無視する様子あり */

option dhcp6.name-servers 3ffe:501:ffff:100::10; ← DNS サーバのIPv6アドレス
option dhcp6.domain-search "kuchidake.se.info"; ← ドメイン名を省略した時につけるドメイン名
option dhcp6.info-refresh-time 21600;

host ggrdakenoSE {  ← hostの後は、任意の識別子
 host-identifier option
  dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;  ← 固定でアドレスを割り当てたいホストのDUIDを設定
 fixed-address6
  3ffe:501:ffff:100::1001;  ← 上記DUIDのホストへ割り当てるIPv6アドレスを指定
 option dhcp6.name-servers
  3ffe:501:ffff:100::10;  ← セグメント毎に異なるDNS を立てている場合に使う。 ほとんどの場合は要らない
};

subnet6 3ffe:501:ffff:100::/64 {
 range6 3ffe:501:ffff:100::1000 3ffe:501:ffff:100::7fff;
 option dhcp6.domain-search "marupaku.se.info"; };

 これ以降の肉付けは「dhcpv6 dhcp-options」ってキーワードを探せば幾らでもできるはずです。

 はまりやすいポイントを書いておきます。

  1. Windows 7クライアントは、IPアドレスを簡単には手放さない(→ ipconfig /release6 インターフェース名)
  2. 上記を実行しても、ループバックは解放できない。
  3. IPv6ホストは、IPv6アドレスを複数持つ(Windows 7の場合、デフォルトだと4つ(リンクローカル, 一時, 自動, dhcp)
  4. Windows 7クライアントがDNS を受け入れない場合は、以下のコマンドを試す
  5. 「ipconfig /renew6 インターフェース名」
    「netsh interface ipv6 delete neighbors」

5)クライアントを構成

5-1. Teredo インターフェースを止める

 IPv4-IPv6トンネルインターフェースのこと。 普通は要らない。 詳しく解析していないが、マイクロソフトのトンネルサーバに接続してIPv6ネットワークに接続するとか。
 漠然としたイメージだと「これって、バックドアじゃね?」と思ってしまう…。
 設計上要らない、意味がわからない、不都合が生じるのかもわからないというなら、大人しく無効化するのが良い。

netsh interface teredo set state disabled

 ちなみにudpの3544ポートを使って通信する「らしい」。
 tcp とudp 、全インターフェース、両方向、アドレス不問でポートを塞ぐと精神的に穏やかになれる。

5-2. 他のトンネルも止める(ISATAP, 6to4)

 デュアルスタックで通信するなら、トンネルインターフェースは要らない。 但し、時々言われる「6/4 フォールダウンのラグ」は以前として残る。

netsh interface ipv6 isatap set state disabled
netsh interface ipv6 6to4 set state disabled

最後に…

 「技術情報を無償で垂れ流しちゃう情報の価値がわからない糞豚ニートの情弱ちゃん! 美味しく自分のノウハウとしてまるっとぱくぱくいただきますね^^^」
 「この情報を使ってSEの仕事を楽しちゃいますねv^^^v」

 このページの情報を参考にする方は、必ず10回、上記を音読してください。 まあたいした情報じゃないけど。

 デュアルスタックで運用する場合、DNS 検索時にIPv4とIPv6のアドレスのどちらを優先的に返却するか(プリフィックスポリシーテーブル)を変更する必要があるかもしれない

netsh interface ipv6 show prefixpolicies

 後、当然の事ながら、これによって生じた損害に対して、当方は一切の責任を負いません。

Appendix. 駄文

 しかしまあ、DHCPv6って実は要らないんじゃないかね。 RAがDNS アドレスとサフィックスを案内すれば不要な気がする。
 BOOTPをわざわざインターネットに接続したネットワークで実行しても、リスクとトラフィック負荷を大きくするだけで必要がない。
 インターネットに接続するならIPv6、接続しないならIPv4で運用する。 この先も二つが平行して活用されるのかな。

 IPv6の弱点は、アドレス割り当てとルーティング機構の複雑さ。 IPv6を望んでいるのは「接続回線業者だけ」
 IPv6へ移行が始まったら、次に大きな声で騒ぎ出すのは「IPv4撤廃します!!!(きりっ」でしょ?

 1)IPv4のアドレス割当を整理して、どの業者がどの辺りのIPv4アドレスを持っているのかを定義
 2)定義したアドレス空間から、どこの国、業者のルータへ投げれば良いかを決める
 3)アドレス変換技術を流用して、自分の腹の中のネットワークにプライベートなアドレスを割り当てる

 これでアドレス枯渇問題は解決するんじゃないかね?
 2京のネットワークアドレスを持つインターネット。 ルーティングテーブルの肥大化は、やっぱりつきまとう訳だし。
 ま、単なる妄想、思いつきだし、これで解決するのかもしらん。 それを政治的に整理する労力も能力も無いがね。

 言いたいことは

 「IPv4アドレスが枯渇しましたとか、製品と技術を売りたいだけだろ? 五月蠅いから黙れ。 商業主義には反吐が出る

 「お為ごかしは大概にしろ。 商業主義を前提とした美人局と脅迫。 そうとしか見えない。 方向性と前提が間違っている

 「IPv6のような変な仕様にするぐらいなら、IPv4のアドレスサイズを拡張した方が安上がりじゃないのかよ!

 「IPv4のアドレスサイズを拡張すると、ルーティングテーブルが今以上に肥大化するから嫌><!ってことでしょ?

 ってこと。 インターネットなんかウェブにしか使っていないんだし、国や地域で一つ。ウェブサーバとメールサーバを立てればいいんじゃないかね。
 もしくは「あどばんすどイんタ〜ねっと(笑)」って名前で、まったく別のインターネットワークを作った方が早くないかいな?っと。

 もう既に別のネットワークになるんだから、デュアルスタックとかやらずに別のネットワークを設ければいいじゃん、と。

 パソコン通信からインターネットに切り替わったのと同じで、インターネットから

 「商業主義先行型 宣伝指向 顔だしおk 本格身売り宣伝目的な ぼくたちがかんがえた すんごい えくすとりーむ ねっとわ〜く(わら)」

 って名前でね。 共存させようとするから移行が進まない。 デュアルスタックって考え方が間違っている。

 選択権を利用者へ譲る。

 必要な時に、必要な状況下で、各組織、個人、企業が選択的に新しいネットワークに接続する選択肢を与える。

 そうなったら、俺はきっとテレビを観なくなるように、インターネットを観なくなるけどな。 今でもインターネットいらねって気持ちがある。
 少なくとも、自宅じゃ使わなくなるだろうな。 元々全世界とか必要ないしな。
 知り合いとメールで連絡が取れればいいだけなら、iモードで十分だしね。

 全世界規模で接続されたインターネットワークなどという技術者の願望と幻想のために、企業が金を払う時代はおかしい。

 バブルの如くに酔っている

 無計画なIPv4アドレス割当の問題を隠して、たかだがメールと商業宣伝目的でウェブにしか使っていないインターネットのために、こんな費用を払えるかって事です。


最終更新日:2012/05/13