我が家のNetwork構成3
ネットワーク構成
------+------------------------+----------------------+------
|Provider |IPv6 |IPv6
|IPv4 | |
| | |
+----+------------+ +---+---+ +---+---+2001:3e0:f15::/48
|DSLモデム(bridge)| | nanet | | Feel6 |------------------+
+----+------------+ +---+---+ +---+---+DTCP |
| |DHIS |
| tun0:(www.xxx.yyy.zzz) |2001:268:304:8200::/56 |
| rl0: |gif0:2001:268:304:8200:290:99ff:fe4b:c507 |
+----+----------------------------------------+ |
|leon(ns,www,proxy,cvsup,mail) |-----------------------------+
+----+----------------------------------------+ gif1:2001:3e0:f15:0:290:99ff:fe4b:c507
|rl1:IPv4/192.168.1.1
| IPv6/2001:268:304:8201:2a0:b0ff:fe2f:889f
| IPv6/2001:3e0:f15:1:2a0:b0ff:fe2f:889f
|
|
| +-----+
+---| prn | IPv4/192.168.1.3 IPv6/NONE
| +-----+ print server
|
| +---+---+Windows XP/FreeBSD
+---| HICKY |IPv4/192.168.1.11
| +-------+IPv6/2001:218:49a:8201:a00:46ff:fe17:5708
| 2001:3e0:f15:1:a00:46ff:fe17:5708
|
| +---+---+Windows XP/FreeBSD
+---| ODIN |IPv4/192.168.1.12
| +-------+ipv6/2001:218:49a:8201:290:ccff:fe00:4ba1
| 2001:3e0:f15:1:290:ccff:fe00:4ba1
|
ここまでくるともう訳がわかりません。まずプロバイダにはADSLを使って接続しています。キャリアはeAccessでPPPoEのルータタイプのモデムをブリッジにして使っています。セッションはFreeBSDのpppがやっています。
FreeBSDにはネットワークインタフェースカードを2枚さしてルータにしています。外側はDSLブリッジへ、内側にはスイッチングハブを通してデスクトップパソコン、ノートパソコン、プリンタサーバにつながっています。外側のNICはブリッジなので、IPは振っていません。PPPで作られるtun0にグローバルIPが振られます。
なお、IPv6トンネル接続実験 (nantoka.com)から2001:268:304:8200::/56のIPv6アドレスをお貸しいただいています。内側に2001:268:304:8201::/64を振っています。こちらはDHISで接続しています。また、Feel6から2001:3e0:f15::/48のIPの割り当てを受けていますので、こちらも内側に2001:3e0:f15:1:/64を振っています。こちらはDTCPで接続しています。
ちなみにこの状態はIPv4でいうマルチホームのような状態になっていますが、他の上流組織に向かって他から割り当てを受けたアドレスへの経路を*絶対に*広告してはいけません。 IPv6では仕様上ポータブルアドレスを禁じていますので、FreeBSD箱できちんとルーティングしてあげる必要があります。具体的には以下のようにします。Aオプションは経路集約です。
/usr/sbin/route6d -A 2001:268:304:8200::/56,gif0 -A 2001:03e0:0f15:0000::/56,gif1 -O 2001:268:304:8200::/56,gif0 -O 2001:03e0:0f15:0000::/56,gif1
IPv4パケットはPPPoEを経由してISPに流れます。IPv6パケットはルータで適切な返し先を判別されて、どちらかのIPv6トンネルで出て行きます。LANの内側の二台のPCはそれぞれIPv6 Readyな状態です。
bell@leon> ifconfig
rl0: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu
1500
ether 00:90:99:4b:c5:07
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::2a0:b0ff:fe2f:889f%rl1 prefixlen 64 scopeid 0x2
inet6 2001:268:304:8201:2a0:b0ff:fe2f:889f prefixlen 64
inet6 2001:268:304:8201:: prefixlen 64 anycast
inet6 2001:3e0:f15:1:2a0:b0ff:fe2f:889f prefixlen 64
inet6 2001:3e0:f15:1:: prefixlen 64 anycast
ether 00:a0:b0:2f:88:9f
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
tunnel inet 219.125.254.113 --> 210.196.249.131
inet6 fe80::290:99ff:fe4b:c507%gif0 prefixlen 64 scopeid 0x4
inet6 2001:268:304:8200:290:99ff:fe4b:c507 prefixlen 64
inet6 2001:268:304:8200:: prefixlen 64 anycast
gif1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
tunnel inet 219.125.254.113 --> 43.244.255.37
inet6 fe80::290:99ff:fe4b:c507%gif1 prefixlen 64 scopeid 0x5
inet6 2001:3e0:f15:0:290:99ff:fe4b:c507 prefixlen 64
inet6 2001:3e0:f15:: prefixlen 64 anycast
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet 219.125.254.113 --> 219.125.254.1 netmask 0xffffffff
Opened by PID 225
