$Id: howto-v6.html,v 1.2 2001/05/15 07:36:44 sakane Exp $

%Hd: サルでも分かったつもりの IPv6

o 目次

o IPv6をサポートしてるOS
	Windows2000?
	Linux ?
	OpenBSD2.7
	FreeBSD4.0
	NetBSD1.5

	とりあえず KAME を突っ込んでみる。
	こっち


o アドレス表記のおさらい

	- IPv6 アドレスは 128 bit である。
	- 表記法は 16 bit 毎に `:' で区切る。
		e.g 1230:00cd:0078:ef01:0010:0bcd:0008:0f01
	- 16 bit 毎に先頭の 0 は省略出来る。::0501 -> ::501
		e.g 1230:cd:78:ef01:10:bcd:8:f01
	- 連続した 0 は 1 回だけ省略出来る。
		e.g. 0000:0000:0000:0000:0000:0000:0000:0000 -> ::
		     0000:0000:0000:0000:0000:0000:0000:0001 -> ::1
		     1230:00cd:0000:0000:0000:0000:0000:0f01 -> 1230:cd::f01

	未指定アドレス (unspecified address)
		正規のアドレスを取得していないホストの始点アドレス
		::

	ループバック・アドレス (loopback address)
		名前の如し
		::1

	IPv4 互換アドレス (IPv4-compatible address)
		(96 bit の 0) + (32 bit の IPv4 アドレス)
		e.g. ::10.0.0.1

	射影アドレス (IPv4-mapped address)
		(80 bit の 0) + (16 bit) + (32 bit の IPv4 アドレス)
		e.g. ::ffff:10.0.0.1

	サイトローカル・アドレス (site-local address)
		会社などの組織内で一意なアドレス。サイト外へ中継してならない。
		プレフィクス	1111 1110 11
		e.g. fec0:

	リンクローカル・アドレス (link-local address)
		リンク内でのみ一意なアドレス。ルータにより中継されない。
		プレフィクス	1111 1110 10
		e.g. fe80:

	マルチキャスト・アドレス
		(8 bit prefix) + (4 bit flag) + (4 bit scope) + (112 bit group)
		プレフィクス	1111 1111
		フラグ は 4bit目のTransient(一時的)だけが定義されている。
		スコープは 0〜F。
			0	予約
			1	ノードローカル
			2	リンクローカル
			5	サイトローカル
			8	組織ローカル
			e	グローバル
		これ以外は未割り当て。
		e.g. ff02::1

	テスト・アドレス
		6BONE で使うアドレス。
		プレフィクス	001

		TLA	pTLA	NLA1	POP-ID	ORG-ID	SLA
		3FFE	05	01	YY	YY	ZZZZ
		16 bit	8 bit	8 bit	8 bit	8 bit	16 bit

		e.g. 3ffe:501:4819:2000:260:8ff:fec9:9d58

		TLA	Top Level Aggregator
		pTLA	pseudo Top Level Aggregator
		NLA1	Next Level Aggregator
		POP-ID	接続ポイントID (Point Of Presence ID)
		ORG-ID	組織ID (Organization ID)
		SLA	Site Level Aggregator

	その他のプレフィクス
		0000 001	NSAP 割り当てのために予約
		0000 010	IPX 割り当てのために予約
		010		プロバイダ型ユニキャスト
		100		地域型ユニキャスト


o IPv6 の DNS

	AAAA レコードでアドレス解決。
	逆は 4 ビットで区切って IP6.INT. をくっつける。

	e.g.

	% dig @orange.kame.net. paradise.v6.kame.net. aaaa
	paradise.v6.kame.net. 3600 AAAA 3ffe:501:4819:2000:2a0:c9ff:fe84:ebd9

	% dig @orange.kame.net. 9.d.b.e.4.8.e.f.f.f.9.c.0.a.2.0.0.0.0.2.9.1.8.4.1.0.5.0.e.f.f.3.IP6.INT. PTR
	9.d.b.e.4.8.e.f.f.f.9.c.0.a.2.0.0.0.0.2.9.1.8.4.1.0.5.0.e.f.f.3.IP6.INT. 3600 PTR paradise.v6.kame.net.


o gifトンネルの設定

	on-linkでとりあえず遊んでみる。

	        ep0: inet 172.16.0.1
	             inet6 fec0::1
	   H1   gif0: fe80::260:1dff:fe21:f766
	   |
	===+===
	   |
	   H2   ep0: inet fec0::2
	        ep0: inet6 172.16.0.2
	        gif0: fe80::260:1dff:6081:f766

	H1 では…
	# ifconfig ep0 inet6 fec0::1 prefixlen 64
	# ifconfig ep0 inet 172.16.0.1 netmask 255.255.0.0
	# gifconfig gif0 inet 172.16.0.1 172.16.0.2
	# route add -host -inet6 fec0::2 fe80::260:1dff:fe21:f766%gif0

	H2 では…
	# ifconfig ep0 inet6 fec0::2 prefixlen 64
	# ifconfig ep0 inet 172.16.0.2 netmask 255.255.0.0
	# gifconfig gif0 inet 172.16.0.2 172.16.0.1
	# route add -host -inet6 fec0::2 fe80::260:1dff:fe21:6081%gif0

	でもって H1 から
	# ping6 -c 1 fec0::2
	してみる


o 6BONEにつないでみる。
	
	howto-6bone.html



o Windows2000でIPv6してみる
	ちなみにWindows怒素人なので下らない事もメモってます。
	適当にフィルタして下さい。

とりあえずインストール

	1. とりあえず↓からパッチを拾ってくる。
	http://www.research.microsoft.com/research/sn/msripv6

	READMEの system requirementsには
		Windows 2000 Professional
		Windows 2000 Server
		Windows 2000 Advanced Server with Service Pack 1
	で動作するとあった。

	[system property] を見ると、
		Microsoft Windows 2000
		5.00.2195
		service Pack 1

	2. setup.exe を実行してインストール
	3. [local area connection]->[protocol]->[add]で
	   Microsoft IPv6 Protocol を追加。

	以上。

IE5.5
	http://www.kame.net/
	亀泳ぐ。mozilla危うし。

users@jp.ipv6.org より:

	>> 誰かMicrosoftの新しいIPv6スタックを試した方はいますか?
	>> http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp

	- 以前に比べて install 作業の面倒くささが段違い。
	  日本語版 Windows2000 Professional SP1 でも素直に setup.exe を実行す
	  るだけでインストール可能。特に日本語版 Windows2000 を使い、
	  かつ IE 5.5 を入れている人にはうれしい。
	- wininet.dll は IE 5.5ベースの5.58.1.1が付属している。
	  IE は以前の 9 月 release 分でも使えていたが、この時は IE 5 ベースの
	  wininet.dll だった。
	- Enabled FTP EPRT command (bugfix) とかいうのも
	  microsoft.public.platformsdk.neworking.ipv6に書いてある。
	- 09/25版で既にIPv6対応のftp/telnet/telnetサーバが添付されている。
	- 最新の12/05版と一つ前の09/25版の差分は、インストーラでの言語チェックが
	  外れたのと、WININET.DLLのアップデートです。他のプロトコルスタック自体
	  やツール類の変更は一切ないようです。

	>> - メールやブラウザも揃っている/いない

	- Internet Explorer は v6 で動く。
	  アドレスを直接書いても使えるようだ。
	  e.g. http://[3ffe:501:4819:2000:5054:ff:fedc:50d2]/
	- TTSSH を使って v6 で mail server と接続し port forward を使って
	  v6 未対応の MUA で mail を読むこともできる。
	- Outlook Express (IE 附属のもの)も使ってみたが、pop3, smtp 共にIPv4
	  しか知らないような挙動を示す。多分使えない。
	- IPv6化したアプリケーションの中にEmacs(Meadow/NTEmacs)と
	  ActivePerl5+Socket6があります。この上で、Mew+IM, Wanderlust
	  などがIPv6で動いています。

	>> - プログラム開発環境も充実してる/してない/わからない

	- ある。けど、充実とは言えないかもしれない。
	- http://www.goto.info.waseda.ac.jp/~kato/ipv6/win2000-ipv6apps.html
	  に Windows2000 で使える IPv6 アプリケーションがいくつかある。
	- ヘッダファイルとTCPの簡単なサーバとクライアントのサンプルプログラムのソー
	  スがついてくる。ドキュメントはヘッダファイルとサンプルプログラムの
	  コメントを頼りにするしかないようだ。
	- ドキュメントが他にあるか未調査。
	- getaddrinfo()/getnameinfo()など、RFC2553におおむね準拠したAPIが提供さ
	  れています。MS Visual C++ 5.0以降のコンパイラの使用が仮定されています
	  が、Borlandのフリーなコンパイラでもビルドできると思います(試したことは
	  ありません)。

	>> - 完全にIPv6だけのネットワークで生活できる/できない

	- 名前を引くのに IPv4 が必要
	  /etc/hosts に相当するものもあるが、v6 アドレスを書いて試してみたけど、
	  使えなかった。

	>> - IPSecも使える/使えない/わからない

	- ipsec6 と言うのでできそう。
	  どこまでできるかは不明