FreeBSD 3.X + KAME
FreeBSD+kame のマシンをトンネルサーバとして、トンネリング実験に参加する場合のトンネルサーバの設定手順や確認方法について、以下に説明いたします。
実験パートナ様が利用されるIPv6アドレスや、トンネル接続用のIPv4アドレスについては以下の通りとします。
| ご利用IPv6アドレス | 2001:218:xxx::/48 |
|---|---|
| トンネリング接続IPv4アドレス | 210.aaa.bbb.ccc |
| OCN側のトンネル接続IPv4アドレス | 210.163.36.3 |
| 実験パートナ様トンネルマシン | --- … --- | OCN側トンネルマシン |
| 210.aaa.bbb.ccc | 210.163.36.3 |
作業の大まかな流れは次のようになります。
- 1. トンネルの設定
- 2. デフォルト経路の設定
- 3. トンネルのupの確認
- 4. 経路設定の確認
では、各ステップについて説明します。今回は FreeBSD-3.3 + kame-19991213-freebsd33-stable を利用しています。
1. トンネルupの確認
gifconfig コマンドでトンネルインタフェースを gif0 を設定します。
# gifconfig gif0 inet 210.aaa.bbb.ccc 210.163.36.3
(ただし gifconfig = /usr/local/v6/sbin/gifconfig)
2. トンネルインタフェースの設定
トンネルのインタフェースに対して ff02::1 を宛先とした ping6 コマンドを実行します。 ("ff02::1" というアドレスは「当該リンク上のすべてのノード」を意味するマルチキャストアドレスです。)
以下の例のように、2種類のリンクローカルアドレスから応答があれば、トンネルが up していることになります。
% /usr/local/v6/sbin/ping6 -I gif0 ff02::1
PING6(56=40+8+8 bytes) fe80::260:efff:fe20:9925 --> ff02::1
16 bytes from fe80::260:efff:fe20:9925@lo0, icmp_seq=0 hlim=64 time=0.207 ms
16 bytes from fe80::2c0:4fff:fe15:f4b0@gif0, icmp_seq=0 hlim=64 time=18.26 ms(DUP!)
16 bytes from fe80::260:efff:fe20:9925@lo0, icmp_seq=1 hlim=64 time=0.148 ms
16 bytes from fe80::2c0:4fff:fe15:f4b0@gif0, icmp_seq=1 hlim=64 time=17.131 ms(DUP!)
16 bytes from fe80::260:efff:fe20:9925@lo0, icmp_seq=2 hlim=64 time=0.147 ms
16 bytes from fe80::2c0:4fff:fe15:f4b0@gif0, icmp_seq=2 hlim=64 time=18.782 ms(DUP!)
16 bytes from fe80::260:efff:fe20:9925@lo0, icmp_seq=3 hlim=64 time=0.226 ms
16 bytes from fe80::2c0:4fff:fe15:f4b0@gif0, icmp_seq=3 hlim=64 time=15.526 ms(DUP!)
^C
--- ff02::1 ping6 statistics ---
4 packets transmitted, 4 packets received, +4 duplicates, 0% packet loss
round-trip min/avg/max = 0.147/8.803/18.782 ms
3. デフォルト経路の設定
デフォルト経路をトンネルに向けてスタティックに設定します。
# route add -inet6 add default -interface gif0
(ただしroute = /usr/local/v6/sbin/route)
※トンネルマシンのブート時にトンネルと経路の設定が行われるように(1)、(2) で設定したコマンドを "/usr/local/v6/etc/rc.net6" などに記述しておきます。 (rc.net6 は rc.net6.sample をコピーし、ご自分の環境に合わせて設定した上でご利用ください。)
4. 経路設定の確認
デフォルト経路をトンネルに向けてスタティックに設定します。
IPv6のグローバルアドレスに対して、ping6 を実行し接続性を確認します。IPv6OCNトンネリング実験では、接続性を確認して頂くためのアドレスとして、2001:218::1 を準備しております。
以下のように ping6 が成功すれば、経路が正しく設定されていることになります。(1種類のリンクローカルアドレスからしか応答が無い場合は、トンネルの相手から返事が戻ってきておりません)
% /usr/local/v6/sbin/ping6 2001:218::1
PING6(56=40+8+8 bytes) 2001:218:xxx:yyy:zzz:xxx:yyy:zzz -->2001:218::1
16 bytes from 2001:218::1, icmp_seq=0 hlim=63 time=17.96 ms
16 bytes from 2001:218::1, icmp_seq=1 hlim=63 time=15.492 ms
16 bytes from 2001:218::1, icmp_seq=2 hlim=63 time=16.035 ms
16 bytes from 2001:218::1, icmp_seq=3 hlim=63 time=18.16 ms
^C
--- 2001:218::1 ping6 statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 15.492/16.911/18.16 ms
DNSサーバへの問い合わせができるなら、以下のようにホスト名を指定して実行することもできます。
% /usr/local/v6/sbin/ping6 www.ocn.v6.ntt.net.
PING6(56=40+8+8 bytes) 2001:218:xxx:yyy:zzz:xxx:yyy:zzz --> 2001:218::80
16 bytes from 2001:218::80, icmp_seq=0 hlim=63 time=16.302 ms
16 bytes from 2001:218::80, icmp_seq=1 hlim=63 time=18.441 ms
16 bytes from 2001:218::80, icmp_seq=2 hlim=63 time=16.986 ms
^C
--- www.ocn.v6.ntt.net. ping6 statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 16.302/17.243/18.441 ms
ping6 の代わりに traceroute6 コマンドを用いることもできます。また、"netstat -r" によりdefault経路が設定されたことを確認することができます。(netstat = /usr/local/v6/bin/netstat)