15分で出来るRaspberryPi(Linux)でDS-Lite(IPv6/IPv4)
Raspberry Piで安定してDS-Lite(IPv6/IPv4)が使えるかを試してみました。
DS-Liteについては以前ブログで紹介しました。
DS-Liteを一言でいうと既存技術を組み合わせて、IPv6とIPv4通信の共存を実現する技術です。
前提としてプロバイダがDS-Liteの接続が出来る契約をする必要があります。
IPアドレスの打ち間違えに気づかず、無駄に3時間消費してしまったが(慣れたら)簡単にDS-Liteを設定できます。
今回はファイアウォールなどの設定していないため注意が必要です。
※DS-Liteで使用するIPv6はグローバルアドレスです。
今回構築した全体図を以下に示します。
詳細:
Raspberry Pi:Raspberry Pi2
OS:Raspbian
eth1:USB NIC (Logitec LAN-GT JU3)
設定は以下のページを参考にした。
参考ページ
http://www.iij.ad.jp/company/development/tech/techweek/pdf/141128_0.pdf
Linux Hacks: HOWTO: ipv6-ipv6 tunnel and ip4-ipv6 tunnel in linux
Vyatta改めVyOSでDS-Liteを使う(IIJmio+フレッツIPoE) — どこか遠くでのんびり怠惰に暮らしたい
基本的には上の参考ページ1を見れば簡単に構築できます。
Raspberry Piの設定
①eth1の設定(/etc/network/interfacesに以下を追加)
iface eth1 inet static
address 192.168.200.1
netmask 255.255.255.0
設定が終わったら、
$ sudo /etc/init.d/networking restart
$ sudo ifdown eth1
$ sudo ifup eth1
②eth0側の設定(IPv4 over IPv6トンネリング)
ローカル(eth0)のGlobal IPアドレスを確認
$ ifconfig -a または $ip addr show
IPv6トンネルの設定
- カーネルモジュールのロード
- トンネリングの接続設定
- トンネルインターフェースの有効化
$ sudo modprobe ip6_tunnel
$ sudo ip -6 tunnel add ip6tnl1 mode ipip6 remote 2404:8e00::feed:100 local 2409:xxx::xxxx dev eth0
$ sudo ip link set dev ip6tnl1 up
この時点でデバッグなどで
$ ping6 xxxx::xxxx
を使った。(外部ホストにping6が届くはず)
③ルーティングの設定
デフォルトルートの設定
$ sudo route add default dev ip6tnl1
IPv4アドレスのフォワーディングの許可
$ sudo sysctl -w net.ipv4.ip_forward=1
MacBookの設定
アドレス:192.168.200.1
ネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.200.1
DNS:8.8.8.8
以上で設定は終わり。
DS-Liteの接続が出来ました。
MacBookで実際に色々なサイトを問題なく見れました。
$ifconfig -a を使うとトンネルインターフェースで通信していることを確認できます。
$topコマンドで調べた結果、Raspberry PiのCPU使用率は3〜8%で、メモリも1GB中200MBくらいであった。
また、MacBookProで4k動画も見たが問題なく視聴できることを確認できました。
以下サイトでRTX1200をつかう時と回線速度が変わるかを計測をした。
Speedtest.net by Ookla - The Global Broadband Speed Test
①Raspberry Pi2
UL:14Mbps、DL:58Mbps
②RTX1200
UL:21Mbps、DL:65Mbps
速度に大きな違いはなかった。
思った以上に安定して接続できています。
Raspberry Pi2の威力素晴らしい。