👾

OpenWRTでV6プラス(MAP-E)に接続する

2021/08/11に公開

前提条件

  • OpenWRT 19.07.4 r11208-ce6496d796 (WSR-1166DHP)
  • WAN6 に IPv6-PD が表示されている(/openwrt-ipv6-to-lan-without-hikari-denwa/)
  • プロバイダは so-net、V6 プラスオプションを契約済み

手順

本当なら Luci で設定…と行きたいところだが、Javascript エラーで設定できない。

修正自体はされているようなので次のリリースでは治りそう(だと思われる)

map パッケージインストール

ここだけは Web からできる。

System-Software から map パッケージをインストールする。

MAP-E パラメータの計算

http://ipv4.web.fc2.com/map-e.html

MAP-E 接続に必要なパラメータ類は IPv6 に割り当てられたアドレスから算出できる。

自分の IPv6 アドレスを入力して算出してもらう。

MAP-E インターフェイスの設定

ここからは SSH 等で OpenWRT に接続する必要がある。

/etc/config/network の設定

/etc/config/network に以下を追記する。これにより mape インターフェイスが作成される。

config interface 'mape'
        option proto 'map'
        option type 'map-e'
        option mtu '1424'
        option encaplimit 'ignore'
        list tunlink 'ONU6'   # ONU6は当方環境。通常はWAN6
        # ↑ここまで固定
        # ↓ここからは算出結果の下に書いてあるのをコピペ
        # ↓この設定をコピペしても動かない
        option peeraddr '2404:9200:225:100::64'
        option ipaddr '106.72.0.0'
        option ip4prefixlen '15'
        option ip6prefix '240b:10::'
        option ip6prefixlen '31'
        option ealen '25'
        option psidlen '8'
        option offset '4'

編集が終わったら

uci commit /etc/config/network

で設定を反映させる。

/etc/config/firewall

mape インターフェイスがどこにも属していないので WAN グループに属させる

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option network 'wan wan6 ONU ONU6 mape'   # この行に mape を追加

uci commit /etc/config/firewall で反映させる

map.sh

MAP-E の細かい設定等を入れる。

参照 → https://gist.github.com/anonymous/0fdec75fa20a7f1ce4806391d6b0429b

ここでコメントを入れている人は本件の修正を入れてくれた人。ありがたい。

/lib/netifd/proto/map.sh.orig /lib/netifd/proto/map.sh を編集

変更箇所

`# uncomment for legacy MAP0 mode
#export LEGACY=1
# コメントアウトされているので外す
export LEGACY=1
`json_add_boolean connlimit_ports 1
# json_add_boolean -> string
json_add_string connlimit_ports "1"

これは uci commit 不要

MAP-E インターフェイスの開始

ここからは Luci で操作できる。(設定変更はできないが見ることはできる)

Network-Interface から mape を Restart させると接続されるはず。

また、接続されると自動的にデフォルトゲートウェイが MAP-E に向く。

うまく接続されない場合は、SSH から logread -f をすることでログを見ながら

MAP-E を Restart するとなにかエラーがでるはず。

残っている問題等

Local address not yet configured!

MAP-E を接続した際に上記メッセージが複数(8 個くらい)表示されるが接続されているので

とりあえず無視。

一部サイトが見れない

ここのブログ主と同じく、一部のサイトへの接続が失敗したり、すごく遅かったりする。

https://blog.misosi.ru/2019/12/14/openwrt-v6plus-stuck/

具体的には上記ブログの内容からだが、

その他、Skype のログインが遅くなる、音声がおかしくなる等…
OpenWRT での MAP-E 接続はまだ色々とあるのかもしれない。

参考資料

Discussion