IPv6 トンネルブローカー設定

提供: ArchWiki
移動先: 案内検索

関連記事

Hurricane Electric は IPv6 に IPv4 だけしか使えないホストから接続することができる無料の トンネルブローカー サービスを提供しており、Arch でも比較的簡単に使うことができます。

以下の手順は SixXS トンネルでも通用します。

トンネルの登録

特に難しいことはありません。トンネルブローカーサイトにアクセスして登録を済ませるだけです。

SixXS トンネルの設定

まず、aiccu[リンク切れ: アーカイブ: aur-mirror]radvd のインストールが必要です。

そして /etc/aiccu.conf を編集してデータを入力してください。複数のトンネルを使用する場合、ファイルの中に tunnel_id オプションを記述する必要があります。以下は動的な ayiay トンネルの例です:

username <username>
password <password>
protocol tic
server tic.sixxs.net
ipv6_interface sixxs
automatic true
requiretls true
pidfile /var/run/aiccu.pid
defaultroute true
makebeats true
behindnat true

次のコマンドで設定をテストしてください:

# systemctl start aiccu

設定に問題がなければ NetworkManager に以下のディスパッチャスクリプトを追加することで、ネットワークに接続されたときにすぐ起動するようにできます。起動時にネットワークが必ずつながっているとは限らないため、systemd でサービスを有効化しても起動できません。詳しくは FS#38221 を参照。

/etc/NetworkManager/dispatcher.d/99-aiccu
#!/bin/bash
# -*- coding: utf-8 -*-
# Manual Running/Test: ./99-aiccu eth0 up
if [ -e /sys/fs/cgroup/systemd ]; then
  case "$2" in
    up)
      systemctl start aiccu.service
      ;;
    down)
      systemctl stop aiccu.service
      ;;
  esac
fi

Hurricane Electric トンネルの設定

以下の systemd ユニットを作成してください。太字の部分は HE から取得した IP アドレスに置き換えます:

ノート: NAT を通す場合 (大抵のホームルーターではそうなっています)、Client_IPv4_Address には IPv4 のローカルアドレスを指定してください。例: 192.168.0.2
/etc/systemd/system/he-ipv6.service
[Unit]
Description=he.net IPv6 tunnel
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ip tunnel add he-ipv6 mode sit remote Server_IPv4_Address local Client_IPv4_Address ttl 255
ExecStart=/usr/bin/ip link set he-ipv6 up mtu 1480
ExecStart=/usr/bin/ip addr add Client_IPv6_Address dev he-ipv6
ExecStart=/usr/bin/ip -6 route add ::/0 dev he-ipv6
ExecStop=/usr/bin/ip -6 route del ::/0 dev he-ipv6
ExecStop=/usr/bin/ip link set he-ipv6 down
ExecStop=/usr/bin/ip tunnel del he-ipv6

[Install]
WantedBy=multi-user.target

そして he-ipv6.service を起動・有効化します。

systemd-networkd

systemd-networkd でネットワークの接続を管理している場合、(.service ファイルを使わずに) 一緒にトンネルブローカーの設定も行なってしまうことができます:

/etc/systemd/network/he-tunnel.netdev
[Match]
 
[NetDev]
Name=he-ipv6
Kind=sit
MTUBytes=1480
 
[Tunnel]
Local=<local IPv4>
Remote=<tunnel endpoint>
TTL=255
/etc/systemd/network/he-tunnel.network
[Match]
Name=he-ipv6
 
[Network]
Address=<local IPv6>
Gateway=<IPv6 gateway>
DNS=2001:4860:4860::8888
DNS=2001:4860:4860::8844

[Route]
Destination=::/0

そして、デフォルトのインターネット接続に使っている .network ファイルの [Network] セクションに以下の行を追加してください:

Tunnel=he-ipv6

動的 IPv4 IP でトンネリングを使う

定期的にアドレスを更新する cron ジョブを設定するのが、動的な IPv4 IP でトンネリングを使用する最も簡単な方法です。crontab -e を開いて、以下の行を追加してください:

*/10 * * * * wget -O /dev/null https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID >> /dev/null 2>&1

wget によってエラーが吐き出されないことを確認してください。USERNAME, PASSWORD, TUNNELID はあなたのアカウントやトンネルの情報に置き換えて下さい。まずはコマンドを実行してみて問題がでないことを確認しましょう。以下を実行すれば確認できます:

wget https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID