1. ホーム >
  2. サービス・ソリューション >
  3. IPv6 >
  4. OCN IPv6 トンネル接続サービス >
  5. 技術情報 >
  6. 各機種の設定例 Linux

OCN IPv6 トンネル接続サービス 各機種の設定例
Linux

Linux

Linux のマシンをトンネルサーバとして用い実験参加する場合の、トンネルサーバの設定手順や確認方法について以下に説明いたします。

今回は Kondara MNU/Linux 1.2 [FTP版] を使用し、Compaq Proliant DL360上で動作確認を行いました。

他のディストリブ−ションを使用される場合は、IPv6が利用可能であることをご確認ください。

IPv6を利用可能にするために、カーネルの再構築が必要となる場合があります。

参考: カーネルの再構築例

Kondara MNU/Linux 1.2 [FTP版] は最初からIPv6が利用可能ですので、Red Hat Linux6.2J改訂版[FTP版]を使った再構築例を書きます。尚、カーネル再構築の際にはカーネルのソースをあらかじめインストールしておく必要があります。また、再構築の方法はディストリビューション、カーネルのバージョン、機種によって異なりますので、実際の再構築にあたっては、それぞれのケースに応じた方法で行ってください。

# cd /usr/src/linux
# make menuconfig

 Code maturity level options --->

[*] Prompt for development and/or incomplete code/drivers

 Networking options --->

<*> The IPv6 protocol (EXPERIMENTAL)
[*] IPv6 : enable EUI-64 token format
[*] IPv6 : disable provider based addresses

# make dep
# make clean
# make bzlilo
# make modules
# make modules_install
# vi /etc/lilo.conf

 image=/boot/vmlinuz-2.2.14-5.0
     ↓ (修正)
 image=/vmlinuz

# /sbin/lilo

Turbo Linux Server日本語版6.1[FTP版]の場合、基本的にはRed Hatと同じですが、下記のコメントを参考にしてください。

「インストールタイプ」で「オールインワン」を選択すればkernelのソースがインストールされます。

make menuconfig が作動しない場合は、make xconfigで代用できます。

Turbo Linuxの場合、/etc/lilo.confを修正する必要はありません。

『トンネルの設定方法』

作業の大まかな流れは次のようになります。

  • 1. 必要なアプリケーションのインストール
  • 2. トンネル導通の確認
  • 3. ルータ機能の設定
  • 4. デフォルト経路の設定:(Dynamic Routing をご希望の方は別途ご相談ください)
  • 5. アドバタイズの設定

今回は、IPv6アドレスやトンネル接続用のIPv4アドレス等を以下の通 りと仮定して設定を行います。

ご利用IPv6アドレス 2001:218:xxx::/488
トンネリングサーバに割り当てるIPv6アドレス 2001:218:xxx::1
トンネリング接続IPv4アドレス uuu.sss.eee.rrr
OCN側のトンネル接続IPv4アドレス 210.ooo.ccc.nnn
Ethernetのインタフェース名 eth0
実験パートナ様トンネルマシン --- … --- OCN側トンネルマシン
uuu.sss.eee.rrr xl0 210.ooo.ccc.nnn

また、pathが設定されていない場合は、それぞれ下記の通りに読み替えてください。

ifconfig -> /sbin/ifconfig
ping -> /usr/inet6/bin/ping
route -> /sbin/route

1. 必要なアプリケーションのインストール

今回の設定、および確認のために、以下のアプリケーションをインストールする必要があります。各アプリケーションのインストール方法については、それぞれのマニュアルをご参照ください。

inet6-apps-xxxx : トンネル設定確認に必要な ping コマンド等が含まれます。

radvd-xxxx : アドバタイズ設定に必要な radvd コマンド等が含まれます。

その他、traceroute-xxxx もインストールしておくと便利です。

2. トンネル導通の設定

ethernet インタフェースの eth0 に対してIPv6 over IPv4 トンネルインタフェースのsit1 を設定します。

# ifconfig sit0 mtu 1280
# ifconfig sit0 tunnel ::210.ooo.ccc.nnn/96
# ifconfig sit1 mtu 1280
# ifconfig sit1 up

トンネルが導通していることを確認します。

# ping -I sit1 ff02::1

以下の例のように、"(DUP! )"という文字の付いた表示があれば、トンネリングサーバが応答しており、トンネルがup していることになります。ここで "ff02::1" というアドレスは「当該リンク上のすべてのノード」を意味するマルチキャストアドレスです。

#ping -I sit1 ff02::1
PING ff02::1 (ff02::1): 56 data bytes
64 bytes from ::1: icmp_seq=0 ttl=64 time=0.221 ms
64 bytes from fe80::2c0:4fff:fe15:f4b0: icmp_seq=0 ttl=64 time=37.332 ms (DUP!)
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.114 ms
64 bytes from fe80::2c0:4fff:fe15:f4b0: icmp_seq=1 ttl=64 time=29.272 ms (DUP!)
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.093 ms
64 bytes from fe80::2c0:4fff:fe15:f4b0: icmp_seq=2 ttl=64 time=29.903 ms (DUP!)

--- ff02::1 ping statistics ---
3 packets transmitted, 3 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max = 0.091/15.422/37.332 ms
#

3. ルータ機能の設定

下記の設定を行うことにより、eth0側にIPv4とIPv6のデュアルスタックを設定します。

# echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
# echo 1 > /proc/sys/net/ipv6/conf/all/accept_redirects
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

# ifconfig eth0 add 2001:218:xxx::1/64
# route -A inet6 add 2001:218:xxx::0/64 dev eth0

設定はifconfigコマンドを使って確認することができます。

# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:50:8B:D3:56:D5
inet addr:uuu.sss.eee.rrr Bcast:uuu.sss.eee.xxx Mask:255.255.255.248
inet6 addr: fe80::250:8bff:fed3:56d5/10 Scope:Link
inet6 addr: 2001:218:xxxx::1/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:119 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xb000

つづいて、導通を確認します。

#ping 2001:218:xxx::1
PING 2001:218:xxx::1 (2001:218:xxx::1): 56 data bytes
64 bytes from 2001:218:xxx::1: icmp_seq=0 ttl=64 time=0.07 ms
64 bytes from 2001:218:xxx::1: icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from 2001:218:xxx::1: icmp_seq=2 ttl=64 time=0.065 ms

--- 2001:218:xxx::1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.024/0.053/0.07 ms
#

4. デフォルト経路の設定

(Dynamic Routing をご希望の方は別途ご相談ください)
デフォルト経路をトンネルに向けてスタティックに設定します。ただし、linuxではdefault を示す0::0/0 をトンネル側に設定することは今のところ正しい動作が保証されていないので、ここでは次の設定を行って代用しています。

# route -A inet6 add 2000::/3 dev sit1

2000::/3はグローバルアドレスを示しています。

次にIPv6のグローバルアドレスに対して、ping6 を実行し接続性を確認します。IPv6 OCNトンネリング実験では、接続性を確認して頂くためのアドレスとして、2001:218:0:1000::1 を準備しています。

以下のように ping が成功すれば、経路が正しく設定されていることになります。

# ping 2001:218:0:1000::1
PING 2001:218:0:1000::1 (2001:218:0:1000::1): 56 data bytes
64 bytes from 2001:218:0:1000::1: icmp_seq=0 ttl=63 time=107.818 ms
64 bytes from 2001:218:0:1000::1: icmp_seq=1 ttl=63 time=28.838 ms
64 bytes from 2001:218:0:1000::1: icmp_seq=2 ttl=63 time=30.129 ms

--- 2001:218:0:1000::1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 28.838/55.594/107.818 ms
#

DNSサーバへの問い合わせができる場合、以下のようにホスト名を指定しても確認することができます。

# ping www.ocn.v6.ntt.net
PING www.ocn.v6.ntt.net (2001:218:0:1000::80): 56 data bytes
64 bytes from 2001:218:0:1000::80: icmp_seq=0 ttl=63 time=30.328 ms
64 bytes from 2001:218:0:1000::80: icmp_seq=1 ttl=63 time=31.293 ms
64 bytes from 2001:218:0:1000::80: icmp_seq=2 ttl=63 time=32.168 ms

--- www.ocn.v6.ntt.net ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 30.328/31.262/32.168 ms
#

5. アドバタイズの設定

最後に、新しいセグメントに接続するIPv6端末に対し、アドレスのprefix(ここでは、2001:218:xxx::/64)、デフォルト経路を通 知(アドバタイズ)する必要があります。

アドバタイズを行うためには、アドレスを要求してきたIPv6端末に対し必要な情報を通 知するための radvd を起動させる必要があります。 radvd を起動させるには次のファイルを準備する必要があります。

# cat /etc/radvd.conf

interface eth0
{
AdvSendAdvert on;
#
# new EUI-64 prefixes
#
prefix 2001:218:xxxx::0/64
{
AdvOnLink on;
AdvAutonomouns on;
};
}

#

設定ファイルが準備できたら、次のように起動させます。

# /usr/sbin/radvd -C /etc/radvd.conf

新たに接続したIPv6端末から、ifconfig コマンドと ping コマンドを使って、IPv6のprefix(2001:218:xxx::0/64)が付与されていることと、2001:218:0:1000::1まで正しくルーチングされていることを確認してください。

以上で設定は完了です。

参考として、現在こちらのマシンで設定しているscriptを紹介します。一部IPアドレス等は伏せておりますので、ご注意ください。

======

#!/bin/bash
# tunnel
/sbin/ifconfig sit0 mtu 1280
/sbin/ifconfig sit0 tunnel ::210.ooo.ccc.nnn/96
/sbin/ifconfig sit1 mtu 1280
/sbin/ifconfig sit1 up
# router
echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
echo 1 > /proc/sys/net/ipv6/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
# default route
/sbin/route -A inet6 add 2000::/3 dev sit1 # for global unicast
# dual stack
/sbin/ifconfig eth0 add 2001:218:xxx::1/64
/sbin/route -A inet6 add 2001:218:xxx::/48 dev eth0
/usr/sbin/radvd -C /etc/radvd.conf
#

参考

Compaq Proliant DL360はハードディスクがRAIDのみであるため、インストールには注意が必要です。FreeBSDであれば、OS4.1でインストールでき、今のところ安定して動いています。Linuxの場合、Kernelをそのまま再構築すると、RAIDの認識のところで失敗します。makemenuconfigする際に、RAIDの項目をすべて "*" とし、さらにCompaq SMART2 Supportの項目も"*"に設定することで再構築でき、今のところ安定して動いています。