中治@鳥取です。
先日の勉強会でヒントを得た気がしたので、おうちルータで、さらに、
○ OCN の IPv6 トンネル接続サービスを使った IPv6 ルータ
http://www.ocn.ne.jp/business/ipv6/tunnel/
までさせちゃおう作戦を決行しました。あらすじは以下の通りです。
誤りや改善点の指摘は歓迎します。
1. 準備
o OCNにトンネル接続サービスを申し込む
- トンネルのこっち側は 60.32.13.198、あっち側は 61.207.9.252
- 使える IPv6 アドレスは 2001:380:14b::/48
2. トンネル用の仮想環境を作る
最初、FreeBSD の jail を使おうとしたが、そのままでは tunnel を作れな
いようなので Solaris Zone にした。
2.1 Global Zone で仮想ネットワークインターフェース作成
global# dladm create-vnic -l rge0 vnic0
global# dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
bge0 phys 1500 up -- --
rge0 phys 1500 up -- --
e1000g0 phys 1500 up -- --
vnic0 vnic 1500 up -- rge0
2.2 zone 作成
global# zfs create rpool/export/home/zone-ocnipv6
global# zonecfg -z zone-ocnipv6
zonecfg:zone-ocnipv6> info
zonename: zone-ocnipv6
zonepath: /export/home/zone-ocnipv6
brand: ipkg
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
hostid:
fs-allowed:
[cpu-shares: 2]
net:
address not specified
allowed-address not specified
physical: vnic0
defrouter not specified
capped-memory:
physical: 512M
[swap: 1G]
rctl:
name: zone.max-swap
value: (priv=privileged,limit=1073741824,action=deny)
rctl:
name: zone.cpu-shares
value: (priv=privileged,limit=2,action=none)
(たぶん、cpu-shares 以下は余計)
2.3 zone に Solaris 環境をインストール
global# zoneadm -z zone-ocnipv6 install
2.4 zone を起動
global# zoneadm -z zone-ocnipv6 boot
ここで、
zone 'zone-ocnipv6': WARNING: The zone.cpu-shares rctl is set but
zone 'zone-ocnipv6': FSS is not the default scheduling class for
zone 'zone-ocnipv6': this zone. FSS will be used for processes
zone 'zone-ocnipv6': in the zone but to get the full benefit of FSS,
zone 'zone-ocnipv6': it should be the default scheduling class.
zone 'zone-ocnipv6': See dispadmin(1M) for more details.
という警告が出るので、きっと、上記の zonecfg でなんか余計なことをしたに
違いないのです。
3. zone-ocnipv6 でネットワークの設定
3.1 vnic0 の設定
zone# ipadm create-if vnic0
zone# ipadm create-addr -T static -a 60.32.13.198/29 vnic0/v4
zone# ipadm create-addr -T addrconf vnic0/v6
zone# ipadm create-addr -T static -a 2001:380:14b::3/64 vnic0/v6add
3.2 トンネルの設定
3.3 IPv4 でトンネルを作る
zone# dladm create-iptun -T ipv4 -a local=60.32.13.198,remote=61.207.9.252
tunnel0
3.4 できたトンネルにリンクローカルアドレスを割り当ててもらう
zone# ipadm create-addr -T addrconf tunnel0/v6
3.5 確認
zone# dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
vnic0 vnic 1500 up -- ?
tunnel0 iptun 1480 up -- --
zone# ipadm show-addr
ADDROBJ TYPE STATE ADDR
lo0/v4 static ok 127.0.0.1/8
vnic0/v4 static ok 60.32.13.198/29
lo0/v6 static ok ::1/128
vnic0/v6 addrconf ok fe80::8:20ff:fefe:30aa/10
vnic0/v6add static ok 2001:380:14b::3/64
vnic0/? addrconf ok 2001:380:14b:0:8:20ff:fefe:30aa/64
tunnel0/v6 addrconf ok fe80::3c20:dc6->fe80::3dcf:9fc
3.6 デフォルトルートの設定(不要かも…)
zone# route -p add -inet6 default fe80::3dcf:9fc
4. IPv6 ルータとしての設定
4.1 routeadm コマンドで、zone-ocnipv6 で ipv6-forwarding と ipv6-routing
を有効にする
zone# routeadm -e ipv6-forwarding -u
zone# routeadm -e ipv6-routing -u
zone# routeadm
Configuration Current Current
Option Configuration System State
---------------------------------------------------------------
IPv4 routing enabled enabled
IPv6 routing enabled enabled
IPv4 forwarding disabled disabled
IPv6 forwarding enabled enabled
Routing services "route:default ripng:default"
Routing daemons:
STATE FMRI
disabled svc:/network/routing/rdisc:default
online svc:/network/routing/route:default
online svc:/network/routing/ndp:default
online svc:/network/routing/ripng:default
disabled svc:/network/routing/legacy-routing:ipv4
disabled svc:/network/routing/legacy-routing:ipv6
4.2 global zone の rge0 (zone-ocnipv6 の vnic0) と同一セグメントには
zone-ocnipv6 で 2001:380:14b:0::/64 を広告する
zone# cat /etc/inet/ndpd.conf
ifdefault AdvSendAdvertisements on
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
if vnic0 AdvSendAdvertisements 1
prefix 2001:380:14b:0::/64 vnic0
4.3 global zone では bge0 のセグメントに 2001:380:14b:1::/64 を広告する
global# # cat /etc/inet/ndpd.conf
ifdefault AdvSendAdvertisements on
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
if bge0 AdvSendAdvertisements 1
prefix 2001:380:14b:1::/64 bge0
5. global zone でやっている IPFilter の設定を、「60.32.13.198 を出入りす
る ipv6 プロトコルを許可する」ように修正する
これに気づくのに2時間ほど悩んだのはくれぐれもナイショです。(^^;
6. 周辺の機器を適宜設定変更する
7. www.v6.ntt.net への到達性を確認する
7.1 zone-ocnipv6 で
zone# traceroute -n -A inet6 www.v6.ntt.net
traceroute: Warning: Multiple interfaces found; using 2001:380:14b::3 @ vnic0:1
traceroute to www.v6.ntt.net (2001:218:2001:3005::8a), 30 hops max, 60 byte
packets
1 2001:380:80a0::d 21.863 ms 21.606 ms 21.556 ms
2 2001:380:80a0:6::1 21.474 ms 54.569 ms 21.533 ms
3 2001:380:8130:11::19 22.062 ms 22.113 ms 22.498 ms
4 2001:380:0:2e05::2 21.950 ms 23.398 ms 22.109 ms
5 2001:218:0:6000::189 86.397 ms 117.880 ms 22.033 ms
6 2001:218:0:2000::1cd 21.823 ms 21.839 ms 24.276 ms
7 2001:218:0:6000::52 25.950 ms 24.962 ms 25.008 ms
8 2001:218:2001:17::2 24.947 ms 25.819 ms 24.914 ms
9 2001:218:2001:3005::8a 24.891 ms 24.717 ms 24.926 ms
7.2 global zone で
# traceroute -n -A inet6 www.v6.ntt.net
traceroute: Warning: Multiple interfaces found; using 2001:380:14b::2 @ rge0:1
traceroute to www.v6.ntt.net (2001:218:2001:3005::8a), 30 hops max, 60 byte
packets
1 2001:380:14b::3 0.392 ms 0.118 ms 0.109 ms
2 2001:380:80a0::d 21.590 ms 21.401 ms 21.562 ms
3 2001:380:80a0:6::2 21.677 ms 38.622 ms 21.646 ms
4 2001:380:8130:12::19 21.708 ms 21.906 ms 21.992 ms
5 2001:380:0:2e05::2 127.427 ms 100.023 ms 21.747 ms
6 2001:218:0:6000::189 47.606 ms 75.928 ms 43.703 ms
7 2001:218:0:2000::1cd 22.230 ms 23.173 ms 24.662 ms
8 2001:218:0:6000::52 24.854 ms 24.884 ms 29.377 ms
9 2001:218:2001:17::2 25.025 ms 25.610 ms 24.963 ms
10 2001:218:2001:3005::8a 25.140 ms 25.034 ms 25.432 ms
7.3 他のマシンでも
pc98$ traceroute6 -n www.v6.ntt.net
traceroute6 to www.v6.ntt.net (2001:218:2001:3005::8a) from
2001:380:14b:0:200:4cff:fe17:573c, 64 hops max, 12 byte packets
1 2001:380:14b::3 0.842 ms 0.616 ms 0.592 ms
2 2001:380:80a0::d 22.425 ms 23.376 ms 22.360 ms
3 2001:380:80a0:6::1 22.470 ms 22.681 ms 59.194 ms
4 2001:380:8130:12::19 22.835 ms 54.425 ms 22.744 ms
5 2001:380:0:2e05::2 23.130 ms 23.344 ms 22.946 ms
6 2001:218:0:6000::189 22.656 ms 22.860 ms 205.998 ms
7 2001:218:0:2000::1cd 22.782 ms 22.912 ms 22.892 ms
8 2001:218:0:6000::52 25.890 ms 54.523 ms 25.730 ms
9 2001:218:2001:17::2 26.215 ms 25.854 ms 25.526 ms
10 2001:218:2001:3005::8a 25.817 ms 25.626 ms 25.952 ms
7.4 www.kame.net でカメ動いた!
8. まとめ
正しい使い方ができている自信を持てていないけれど、Zone って便利かも。
参考文献
[1] OCN IPv6トンネル接続サービス 詳細 技術情報 | OCN for ビジネス
http://www.ocn.ne.jp/business/ipv6/tunnel/tech.html
[2] Solaris8:矢吹さまご作成 IPv6 on Solaris のページ
http://www.optix.org/~dxy/solaris/ipv6/
--
NAKAJI Hiroyuki (中治 弘行)
_______________________________________________
ug-jposug mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/ug-jposug