利尻山(オタドマリ沼)
Date/Time: 2018:05:27 16:17:12
Camera: RICOH
Model: GR DIGITAL 4
Exporsure Time: 1/1000 [s]
FNumber: 6.3
Aperture Value: 5.3
Focal Length: 6.0 [mm]

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

12

14

2025

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

v6プラスの固定IPサービスをOpenWRTで実装してみる



Banana Pi R4
テスト中のBanana Pi R4

OpenWRT + Banana Pi R4の組み合わせでのMAP-E接続については、OpenWRTのmapモジュールの実装が不十分で正常に稼働しないということが判明しているので、一先ず設定がシンプルで簡単なv6プラスの固定IP接続サービスから実装してみることにする.


前回の記事で、Banana Pi R4にOpenWRTの稼働環境を内蔵のeMMC領域(8GB)から起動させる準備が整ったので、ソフトウェアのアップデートとipipトンネル関連とMAP関連のパッケージを追加でインストールしておく.


今回は、向かって左側の 10G SFP+ポート(eth2) とONUを接続し、その右隣の SFP+ポート(eth1) にテスト用のClient PCが繋がっている.eth2とeth0の左端の”wan”ポートは、ブリッジ “br-wan”を介して接続されているので、10G ONUの場合は eth2 SFP+ポート、1G ONUの場合は “wan”ポートへ接続すれば良い.


1. IPv6通信環境の初期設定

WANポートにONUを接続すると、FLET’Sクロス回線なのでDHCPv6-PD prefix長56bitsで “wan6″インタフェースにIPv6 prefix が割当てられる.この状態で、何も設定を行わなくても”lan”インタフェースのポートに繋いだクライアントPCには、OpenWRTのDHCPサーバからprivate IPv4 アドレス(192.168.1.xxx/24)が割当てられている.IPv6アドレス( ::/60 ) も割当てられているのでIPv6のみの通信が行える状態になっている.


“lan” ポートの設定を変更する場合は自分の環境に合わせて変更しておく.私の場合はIPv6アドレスのprefix長を64bitsに変更し、Subnet ID として “c9” (201d) を設定した.


Initial interfaces
初期状態でもOpenWRT自身や配下のPCがIPv6のみの通信で外部と通信可能な状態になっている

lan setting 01
“lan”ポートのIPアドレスを変更する

lan setting 02
“IPv6 assign hint” に16進で”c9″を設定する(Subnet ID)

lan setting 03
“lan”インタフェースの設定完了


2. OpenWRTのシステムアップデート&追加パッケージのインストール

必要に応じてOpenWRTのシステムアップデートを行い、IPv4 over IPv6 を行うための “ip-full” と “map” パッケージを追加する.将来的にDS-Liteも使う場合は、”ds-lite” パッケージも追加しておくと良いだろう.


上記の必須パッケージ以外に、ユーティリティー関連ツールも必要に応じてインストールしておくことをお薦めする.


パッケージの追加は、”Luci” GUIインタフェースを通じて行うか、コンソールのコマンドラインから行うことになるが、今回はコマンドラインで行うことにする.




opkg update
opkg install ip-full map ds-lite 
opkg upgrade luci-proto-ipv6 
opkg install curl bind-dig fdisk parted losetup resize2fs blkid

reboot  <=== 追加パッケージを有効化するには再起動が必要



3. IPv6トンネルインタフェースの作成

固定IP接続用のIPv6トンネルインタフェースを新規作成する.インタフェース設定画面の左下にある"Add new Interface..." ボタンを押下するとインタフェースを作成する.インタフェース名は任意だがトンネルインタフェースであることが明確になるような名前にしておく.今回は "ip4ipv6" という名前にした."Protocol" のプルダウンメニューから "IPv4 over IPv6 (RFC2473-IPIPv6)"を選択する.


Create a tunnel interface 01
"ip4ipv6"という名前のトンネルインタフェースを作成する

Create a tunnel interface 02
プロバイダから指定されたInterface IDを設定したIPv6アドレスを設定する

”General Settings" の設定が済んだら 次に"Advanced Settings" ペーンに切り替え、必要な項目を設定する."Tunnel Link" は "wan6" インタフェースを指定する.トンネルインタフェースのMTUサイズは最大サイズの1,460よりも小さなサイズを指定する.今回は1,420に設定した.


"IPv6 assignment length" を64bitsに設定し、"IPv6 assignment hint" の値を必ず "0" に設定する.ここで設定した値はIPv6 prefix のSubnet IDとなるが、v6プラスの固定IPサービスでは、Subnet ID に "0" 以外を設定すると BR側からの通信ができなくなり、双方向の通信ができなくなり固定IPアドレスの通信ができなくなる.


"IPv6 suffix" 欄にはプロバイダから指定された Interface ID を設定する.64bitsのIDの先頭に"::" を付けないとエラーとなる.( "::xxxx:yyyy:zzzz:aaaa" )



ネットワーク関係のインタフェースの設定ファイルの中身を確認しておく.




root@OpenWrt:/etc# 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 'ipip6'
        option peeraddr '2404:9200:225:100::65'
        option ip4ifaddr '59.XXX.YYY.ZZZ'
        option ip6addr '240b:xxxx:yyyy:f400:3b:zzzz:f000:0'
        option encaplimit 'ignore'
        option tunlink 'wan6'
        option mtu '1420'
        option ip6assign '64'
        option ip6hint '0'
        list ip6class 'wan6'
        option ip6ifaceid '::3b:zzzz:f000:0'

root@OpenWrt:/etc#




Create a tunnel Interface 03
"Advance Setting" の項目を設定していく

Create a tunnel Interface 04
固定IPの双方向トンネルに必要な情報を設定する


4. Firewallの設定

OpenWRTのIPv6関連のFirewallの設定がデフォルト状態でどのように設定されているのかはまだ把握できていないが、とりあえずWAN側のデフォルトのFirewallをそのままトンネルインターフェースに適用で問題ないだろう.この時点では固定IPv4アドレスの通信も、LAN側からはNAPTによる変換がなされるので、特にIPV4のFirewall設定も必要ない.


勿論外部からのIPv4通信をDMZやLAN側に流す場合は、まともなFirewall設定が必要になることは言うまでもない.



Create a tunnel Interface 05
IPv6トンネルのFirewall設定は"WAN"側のゾーンに設定しておく

以上で、基本的なトンネルインタフェースの設定は完了だ.設定を保存しシステムをリブートする.リブート後にインタフェースのダイアログで、"ipv4ipv6" トンネルインタフェースの RX, TXのパケット数が増えていればトンネルの通信は問題ないだろう.



After Rebooted
IPv6のトンネルは問題なく開通しているようだ

OpenWRT Status
IPv4のoutbound接続はIPv4 over IPv6トンネル経由で出て行く/span>




ipv6 connection test
IPv4/IPv6のデュアルスタックで問題なく通信できている

Speed Test Data
IPv4のダウンロードが少し遅いが、一般的な用途では実用的なスピードだろう

Calendar

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

Latest Posts

  • Blogroll

  • Meta