朝霧高原より富士山を望む
Date/Time: 2017:12:03 14:24:34
Camera: Apple
Model: iPhone SE
Exporsure Time: 1/1399 [s]
FNumber: 2.2
Aperture Value: 2.3
Focal Length: 4.2 [mm]

y2blog » OpenWRT + Banana Pi R4 で10Gのv6プラス(MAP-E & 固定IP)ルータを構築してみる(その3:MAP-E編)

12

16

2025

OpenWRT + Banana Pi R4 で10Gのv6プラス(MAP-E & 固定IP)ルータを構築してみる(その3:MAP-E編)

OpenWRTとBanana Pi R4の組み合わせでもv6プラスのMAP-Eに対応できた


OpenWRTでMAP-Eを実装する場合、64bit系のCPU(Soc)では上手く動かすことができなかったという報告がインターネット上に上がっていた(『OpenWRT mapcalc Issues on 64-bit Architecture / OpenWRTの64bitアーキテクチャで、mapcalcが適切に動かない話 [MAP-E]』)ので、今回のBanana Pi R4のSoC(mediatek/filogic) はARMv8 64bits系のプロセッサなので、MAP-Eが動作しないのではないかと危惧していた.


今回、駄目もとでNECのIXルータで得られた情報を基に、MAP-Eのパラメータを手動で設定して試してみたら、何とあっさりMAP-Eが動いてしまったので拍子抜けしてしまった.尚、今回テストしたOpenWRTのバージョンは、”OpenWrt 24.10.4, r28959-29397011cc” だった.


インターネット上でOpenWRTでMAP-Eに関する設定記事は沢山出回っているので、これらのサイトの情報を基に設定していけば良いだろう.これらのサイトではMAP-Eの設定パラメータを計算してくれるサイトを使って自分に割り当てられたIPv6 prefix情報から、MAP-E関連のパラメータを算出して貰った結果をそのままOpenWRTのMAP-E設定項目に入力することになっている.



MAP Calucurator
日本のMAP-E系のVNE事業者に対応した各種MAPパラメータを計算してくれる模様

このMAP-Eパラメータ計算サイトでは、入力パラメータはユーザのprefix情報だけなので、何故これだけの情報でMAP-Eのパラメータが算出できるのか腑に落ちないが、EAビット長、MAPドメインのIPv6 prefix長とIPv4 prefix長の情報は予め固定パラメータとして決め打ちなのだろう.このサイトで “2001:db8:12:3400::/56” のような実在しないIPv6 prefix を入力してみたところ、”未対応のプレフィクス” というエラー表示が出て計算できなかったので、日本のVNE事業者のMAP-Eのパラメータは全て内部の持っているということなのだろう.


本来であれば、これらのMAP-Eの設定に関するパラメータやBRの情報、マップルールサーバなどへアクセスするための情報などは、ユーザが契約しているI.S.P.を通じてエンドユーザに通知すべき内容なのだが、日本のVNE事業者やI.S.P.は秘密にして責任を放棄している.


OpenWRTでのMAP-Eの設定概要


設定手順は前回の固定IPの設定方法とほぼ同じで、IPv4 over IPv6 トンネルインターフェースを新たに作成し、それにMAP-E関連のパラメータを設定して行くことになる.


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

固定IPの場合と同じ様にIPv4 over IPv6トンネルインタフェースを新規に作成する.尚、今回は前回の固定IP用のインタフェースをそのまま流用したので名前は “ipv4ipv6″のままになってしまっているが、”map-e” のような分かりやすい名前にしておく方が良いだろう.


“General Settings” の項目では、”Protocol”は “MAP/LW4over6″、Typeは “MAP-E” とする.”BR / DMR / AFTR” の値は、JPIXのMAP-E用ルータのアドレス “2404:9200:225:100::64” を指定する.(この値もVNE事業者毎に異なるので正確なBRのアドレスを事前に把握しておく必要がある)


“IPv4 prefix”の値はv6プラスの場合、”106.72.0.0″ 、”IPv4 prefix length” は “15” に設定する.同様に、”IPv6 prefix” は “240b:10::”、”IPv6 prefix length” は “31” とする.(この値は割り当てられたIPv6 prefixの値から算出しているので、実際にはユーザの環境に応じた正確なIPv4 prefix情報を設定する必要がある)


“EA-bits length” は “25”、”PSID-bits length”は “8”、”PSID offset” は “4” に設定する.(この値も本来はVNE事業者から提供された正確な値を設定する必要があるが、とりあえず計算サイトで提示された情報をそのまま設定すれば良いだろう.


MAP-E Interface General Settings
“General Settings” ではVNE事業者のMAP-E仕様に合わせたパラメータを設定

次に”Advanced Settings” の項目に移り、”Tunnel Link” を “wan6” 、”Use MTU on tunnel interface” の値をデフォルトの1,280のままか、もう少し大きめの値に設定する.この値が大きい方が通信のパフォーマンスが向上するが、伝送経路のMTUサイズが1,500を下回らないのであれば、1,420に設定すれば良いだろう.今回は安全を見越して1,400と若干低めに設定している.(1,280 〜 1,420を推奨)


“Use legacy MAP” のチェックを “ON” にする.(v6プラスはRFC7597になる前の”draft”仕様で実装されているので、必ずこのチェックを付ける)


“IPv6 assignment length”は “64” 、”IPv6 assignment hint” は必ず “0” を設定する.(Subnet IDに”0″ 以外を指定すると接続できない)


“IPv6 suffix” は空欄にしておくと自動で設定される模様.自分で設定する場合は、v6プラスの”draft”仕様のフォーマットで記載する.(前記事: 『MAP-Eの仕組みを簡単におさらいしておく』を参照)


MAP-E Interface Advanced Settings
“Advance Settings” ではVNE事業者のMAP-E仕様に合わせたパラメータを設定

最後に、”Firewall Settings” の項目を開き、前回の 固定IPの場合と同じく “wan” ゾーンに設定する.



MAP-E Interface FW Settings
“Firewall Settings” では “wan” ゾーンに設定


以上で、GUI画面によるMAP-Eの設定は完了である.作成したトンネルインタフェースの内容を保存し、インタフェースの再起動あるいはOpenWRTの再起動を行えば、MAP-Eのコネクションが確立されていることだろう.


参考までにインタフェース関係のOpenWRTのコンフィグ情報を下記に示す.





root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdf2:20bc:4f2e::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'eth1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '172.25.201.1'
        option netmask '255.255.255.0'
        option ip6assign '64'
        option ip6ifaceid '::1'
        option ip6hint 'c9'
        list ip6class 'wan6'

config device
        option name 'br-wan'
        option type 'bridge'
        list ports 'wan'
        list ports 'eth2'

config device
        option name 'wan'
        option macaddr '1e:60:ac:9d:ef:4b'

config device
        option name 'eth2'
        option macaddr '1e:60:ac:9d:ef:4b'

config interface 'wan'
        option device 'br-wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'br-wan'
        option proto 'dhcpv6'

config interface 'ipv4ipv6'
        option proto 'map'
        option maptype 'map-e'
        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'
        option tunlink 'wan6'
        option mtu '1400'
        option legacymap '1'
        option ip6assign '64'
        option ip6hint '0'

root@OpenWrt:~#  




MAP-E Interface Status
トンネルInterfaceの状況を確認

OpenWRT Status
IPv4通信がMAP-Eインタフェースを通じて外部に接続されている


MAP-EによるIPv4とIPv6ネイティブの通信状況


IPv6の確認サイトとスピードテストサイトにアクセスして、どの程度の性能差があるのかを簡単にテストしてみた.




IPv6Test MAP-E
Test-IPv6サイトでの確認

Dual Stack SpeedTest
IPv4/IPv6 Dual Stack Speed Test の結果

FAST Speed Test
FASTスピードテストの値(IPv6 Native)

スピードテストサイトは測定する時間帯やそのサイトとVNE事業者の間の接続環境に大きく依存するのであまり参考にはならないが、Banana Pi R4 と OpenWRTの組み合わせでもそこそこのスピードが得られているので、一般?家庭で使用する分には十分なスピードだろう.まだ長期間稼働させていないので安定性に関しては何とも言えないが、家庭用であればトラブルが発生したらとりあえずルータをリブートさせれば回復するので、そこそこ実用的なルータ環境が構築できるだろう.


今後はもう少しOpenWRTの設定に慣れて、NECのIXルータで構築しているような環境をOpenWRTでも実装してみようと思う.




Calendar

December 2025
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031  

Latest Posts

  • Blogroll

  • Meta