注意点
これは去年書いて、最後まで完成できなかったメモです。
参考情報として閲覧してください。
関連記事
はじめに
試行錯誤の末、特定端末に対する手動設定ではなく、LEDE(OpenWRT)を使ってLAN 内の機器に対してインターネット接続可能なIPv6アドレスを自動配布することができたので、やり方を記録する。
イメージ図
LEDEの入ったブロードバンドルータからSoftEtherでConoha VPSとVPN接続し、LAN向けにはRAでIPv6アドレスを配布し、NAT6アドレス変換により、IPv6インターネットにアクセスできるようにする。
なお、IPv4インターネットはVPSを経由せず、今まで通りブロードバンドルータから直接接続する。
PC -----[LEDE]---(IPv4 internet)---[Conoha VPS]---(IPv6 Internet)
iPhone---/
<----lan------><---wan---><--------ipv4-------><---------ipv6--------->
実現したこと
ISP からは IPv4 プライベートアドレスしか提供されていないNAT配下から、VPS経由でIPv6インターネット接続をLAN向けに提供する。
必要なもの
- LEDE及びSoftEther入りブロードバンドルータ *1:自分はBuffalo WZR-HP-AG300Hを使った。中古で3000円。
- Conoha VPS 1GBプラン *2:512MBプランだと、たまにOOM Killerが発動する。
ステップ
- Conoha VPSにSoftetherをServerモードで導入する。
- LEDEにkmod-ipt-nat6とSoftEtherモジュールを導入する。
- LEDEのStartupから、SoftetherClientとSoftetherServerのプロセスをDisableおよびStopする。
- LEDEとVPSのSoftetherを、それぞれtapでローカルブリッジする。
- LEDEのWAN6をtapに割り付ける。→LEDEとVPS間が、リンクローカルアドレスで疎通。
- VPSのLinux KernelのIPv6ルータ機能を有効化する。
- VPSからIPv6追加アドレスを削除し、そのひとつをVPSのtapに割り当て、LEDEのtapのリンクローカルアドレス向けにIPv6スタティックルートとProxy NDPを設定する。
- LEDEのWAN6に、先程VPSでスタティックルート設定したIPv6グローバルアドレスと、デフォルトゲートウェイとしてVPSのtapのリンクローカルアドレスを設定する。→LEDEから、IPv6グローバルアドレスで疎通。
- LEDEのWAN6のIPv6で、RAをServerモードで、Proxy NDPをDisabledに、そして、IPv6 ULA-Prefixの先頭2文字を、ddに変更する。
- LEDEでNAT6シェルを配置および実行し、LAN内機器の動作確認。→LAN内からIPv6グローバルが疎通。
- うまくいったら、LEDEのStartupに設定して終了。
- Wifiを有効にする。最大10dBに設定。
- 動作確認として、亀やIPv6 testなど。
#/bin/ash
line=0
while [ $line -eq 0 ]
do
sleep 10
line=`route -A inet6 | grep ::/0 | awk 'END{print NR}'`
done
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE
route -A inet6 add 2000::/3 `route -A inet6 | grep ::/0 | awk 'NR==1{print "gw "$2" dev "$7}'`
参考にしたリンク
http://fefcc.net/archives/202
https://wordpress.tirlins.com/2015/03/setting-up-softether-vpn-on-openwrt/
http://blog.iopsl.com/ipv6-nat-with-openwrt-router/