Arch Linuxで6to4

今までは、
FreeBSDでIPv6〜ルータ
を使っていたので、今回もFeel6を使おうかと思ったのですが
Arch LinuxにはどうやらDTCP-Clientパッケージが無い。

ソースから入れるのもアレだったので、
6to4(Tokyo6to4)
http://www.tokyo6to4.net/index.php
を使って見ることにします。

Ubutuの場合は、こちら
Ubuntuで6to4

特に追加するパッケージは無いですが、
ipv6が使えるようにしておいてください。
(デフォルトでは使えるようなっています)


Arch LinuxでIPv6
で、設定された方は、IPv6の設定をコメントアウトしておきます。

# vi /etc/network.d/eth0 

#IP6='static'
#ADDR6=('2001:3e0:aaaa:bbbb::xxx/64')
#ROUTES6=('::0')
#GATEWAY6='2001:3e0:aaaa::bbbb::1'

IPv6アドレスを手動で算出します。
例)グローバルIPアドレスが、202.212.90.xxxxの場合

# printf "2002:%02x%02x:%02x%02x::1\n" 202 212 90 xxxx
2002:c058:xxxx::1

2002:c058:xxxx::/48
これが、自分に割り当てられるIPv6アドレス空間です。

わかった所で、トンネルデバイスを作ってIPやらを与えてみましょう。

・トンネルデバイス名=tun6to4
・トンネル先=192.88.99.1
・2000::/3=IPv6グローバルスコープ

# ip tunnel add tun6to4 mode sit remote 192.88.99.1 local any ttl 64
# ip link set mtu 1434 dev tun6to4 up
# ip -6 addr add 2002:c058:xxxx::1/48 dev tun6to4
# ip -6 route add 2000::/3 dev tun6to4 metric 1

ttlを設定しないと、Ping6は通るけどtraceroute6ができないとか
悲惨な事になりますw

(kamyuさん、さんくす〜)
*追記 MTUの設定を行いました

うまくできたら、

# ifconfig tun6to4
tun6to4: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1434  metric 1
        inet6 fe80::c0a8:1f3  prefixlen 64  scopeid 0x20<link>
        inet6 2002:c058:xxxx::1  prefixlen 48  scopeid 0x0<global>
        sit  txqueuelen 0  (IPv6-in-IPv4)
        RX packets 10  bytes 1200 (1.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 720 (720.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

こんな感じになっていればOK。

疎通確認
いつものkameさんw

# ping6 -c 3 www.kame.net
PING www.kame.net(2001:200:dff:fff1:216:3eff:feb1:44d7) 56 data bytes
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=1 ttl=59 time=214 ms
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=2 ttl=59 time=200 ms
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=3 ttl=59 time=209 ms

--- www.kame.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 200.666/208.326/214.501/5.757 ms
#
# traceroute6 www.kame.net
traceroute to orange.kame.net (2001:200:dff:fff1:216:3eff:feb1:44d7) from 2002:cad4:5aea::1, 30 hops max, 24 byte packets
 1  2002:c058:xxxx::1 (2002:c058:xxxx::1)  232.186 ms *  225.782 ms
 2  gige-g3-14.core1.hkg1.he.net (2001:470:0:163::1)  235.207 ms  230.821 ms  224.433 ms
 3  gige-g3-7.core1.lax1.he.net (2001:470:0:16b::1)  227.24 ms  225.502 ms  230.988 ms
 4  10gigabitethernet7-4.core1.fmt2.he.net (2001:470:0:18d::1)  251.742 ms  251.688 ms  237.719 ms
 5  10gigabitethernet1-1.core1.sjc2.he.net (2001:470:0:31::2)  250.944 ms  265.445 ms  253.791 ms
 6  xe-0.equinix.snjsca04.us.bb.gin.ntt.net (2001:504:0:1::2914:1)  466.294 ms  391.156 ms  389.767 ms
 7  as-1.r21.osakjp01.jp.bb.gin.ntt.net (2001:218:0:2000::aa)  503.653 ms  513.734 ms  518.754 ms
 8  ae-2.r22.osakjp01.jp.bb.gin.ntt.net (2001:218:0:2000::1b6)  529.217 ms  520.296 ms  587.683 ms
 9  ae-5.r24.tokyjp01.jp.bb.gin.ntt.net (2001:218:0:2000::1de)  536.544 ms  550.798 ms  615.042 ms
10  po-1.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:0:6000::10e)  549.642 ms  545.745 ms  552.227 ms
11  ge-8-2.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:2000:5000::82)  228.381 ms  232.749 ms  230.727 ms
12  ve44.foundry6.otemachi.wide.ad.jp (2001:200:0:10::141)  233.254 ms  226.5 ms  218.496 ms
13  ve42.foundry4.nezu.wide.ad.jp (2001:200:0:11::66)  227.071 ms  201.236 ms  213.772 ms
14  cloud-net1.wide.ad.jp (2001:200:0:1c0a:218:8bff:fe43:d1d0)  202.411 ms  204.908 ms  211.337 ms
15  2001:200:dff:fff1:216:3eff:feb1:44d7 (2001:200:dff:fff1:216:3eff:feb1:44d7)  219.961 ms  232.602 ms  230.217 ms

まぁこんなもんですが、海外経由してる。。。

うまく行ったら、起動スクリプトを書きましょう
(あまり自信がないです。。。)

# vim /etc/rc.d/tun6to4 

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
  start)
    stat_busy "Starting tun6to4"
        ip tunnel add tun6to4 mode sit remote 192.88.99.1 local any ttl 64 &&
        ip link set mtu 1434 dev tun6to4 up &&
        ip -6 addr add 2002:c058:xxxx::1/48 dev tun6to4 &&
        ip -6 route add 2000::/3 dev tun6to4 metric 1
    if [ $? -gt 0 ]; then
      stat_fail
    else
      stat_done
    fi
    ;;

  stop)
    stat_busy "Stopping tun6to4"
        ip -6 tunnel del tun6to4
    if [ $? -gt 0 ]; then
      stat_fail
    else
      stat_done
    fi
    ;;

  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

これがスクリプトの中身

実行権限を与えます

# chmod +x /etc/rc.d/tun6to4

rc.confのDAEMONSに追記します。

# vim /etc/rc.conf 

DAEMONS=(... tun6to4 ...)

これで起動、停止が楽に行えます。

[tegaki]次はIPv6ルータ化。。。[/tegaki]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.