【2023-11-22 一部修正】青字で記載部分が修正箇所
【2023-11-23 追記 】橙字が追記箇所
Raspberry pi3 B に OpenWrt を入れて Xpass で検証しました(記事末に追加)
GL-AXT1800 または MT2500A を xpass(DS-lite)ルーターにした場合、再起動で DS-lite が外れる問題に悩まされてきました。
ルーターはすでに RTX830 に戻していますが、この問題は刺さった棘みたいにズーッと気になっていたのです。
ブリッジモード(AP モード)にした AXT1800 を一時的にルーターモードに変え、刺さった棘を取ることにハマったのです。
試してみてはダメで AP モードに戻し、時間があれば再びルーターモードにして棘取りを試みる、ということを繰り返していました。
ルーターモードに戻した場合、管理画面で IPv6 は「Passthrough」にします。
なので LAN と WAN6 の【DHCP サーバー:IPv6設定】は「リレーモード」になります。
今回再起動問題がやっと処置できましたのでその顛末を記載します。
同事象に見舞われている方への処置になれば幸いです。
発生現象
再起動すると【ネットワーク】→【インタフェース】で LAN インタフェースの IPv4 アドレスの下に IPv6: fd70:a23c:cd9a::1/64 が表示され、LAN に割り当たっていることがわかります。
IPv6: fd70:a23c:cd9a::1/64 は「グローバルアドレス」になっていますが、何のアドレスか出どころが不明です。
リンクローカルならば fd80:~~/64 になるはずですが、そうでもありません。
アルテリアの Xpass のグローバルアドレスはウチの場合は、2001:f71:a0e0:5600:~~/128 ですから、これではありません。
この不明な「グローバルアドレス」が悪さをしているのか?
この IPv6: fd70:a23c:cd9a::1/64 が割り当たることが原因と思われる、「DS-lite が外れて IPv6 が正しく機能しない」という状況に陥っていました。
当初の処置
【ネットワーク】→【インタフェース】→【LAN】→【詳細設定】と進みます。
この中の「IPv6割り当て長」を「64」から「無効」にして【保存】で戻り【保存&適用】で反映させると IPv6: fd70:a23c:cd9a::1/64 が割り当たらなくなり、DS-lite が正しく処理されるようになるのです。
不思議なことにいったん「無効」にしたあとで「64」に戻して IPv6: fd70:a23c:cd9a::1/64 が割り当たるようになっても DS-lite は正しく処理されるのです。
わけがわかりません。
再起動で再発
ところが再起動すると元の木阿弥で、IPv6: fd70:a23c:cd9a::1/64 が割り当たってしまい、「DS-lite が外れて IPv6 が正しく機能しない」状態に戻ってしまうのです。
このとき「IPv6割り当て長」が「64」に戻っています。
DS-lite を正しく処理させるには再度「64」を「無効」にしなくてはならず、どうしても手動で再設定という手間がかかるのです。
抜本処置までの道のり
いろいろ試行錯誤の末に最終的に次のような措置をしてやっと、再起動しても DS-lite が正しく処理されるようになりました。
まず ifconfig で IP アドレスの割り当て状況を見てみます。
(マゼンタ色部分は隠蔽化しています)
root@GL-MT2500:~# ifconfig
br-lan Link encap:Ethernet HWaddr aa:bb:cc:dd:ee:ff
inet addr:192.168.xxx.1 Bcast:192.168.xxx.255 Mask:255.255.255.0
inet6 addr: fe80::~~/64 Scope:Link
inet6 addr: fd70:a23c:cd9a::1/64 Scope:Global → このアドレスが問題
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:65601 errors:0 dropped:3003 overruns:0 frame:0
TX packets:61494 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10899131 (10.3 MiB) TX bytes:38764310 (36.9 MiB)
ds-wan Link encap:UNSPEC HWaddr 20-01-0F-71-A0-E0-56-00-00-00-00-00-00-00-00-00
inet addr:192.0.0.2 P-t-P:192.0.0.1 Mask:255.255.255.255
inet6 addr: fe80::~~/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1460 Metric:1
RX packets:12675 errors:0 dropped:0 overruns:0 frame:0
TX packets:17468 errors:11 dropped:11 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5970263 (5.6 MiB) TX bytes:2851135 (2.7 MiB)
eth0 Link encap:Ethernet HWaddr aa:bb:cc:dd:ee:ff
inet6 addr: 2001:f71:a0e0:5600:~~/64 Scope:Global
inet6 addr: fe80::~~/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59982 errors:0 dropped:0 overruns:0 frame:0
TX packets:43547 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:43265468 (41.2 MiB) TX bytes:9732380 (9.2 MiB)
Interrupt:75
︙
︙
root@GL-MT2500:~#
GL.iNet のフォーラムに gl-mt300n でのこの問題が提起され、/etc/config/network の LAN の項目に【 option ipv6 '0' 】を追加してみたがうまくいかなかった、とあったのをみつけ、これがヒントになりました。
中身を確認してみます。
root@GL-MT2500:~# 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 'fd70:a23c:cd9a::/48' → これはなんでしょう?
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth1'
config device
option name 'eth1'
option macaddr 'aa:bb:cc:dd:ee:ff'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option isolate '0'
option ipaddr '192.168.xxx.1’
option delegate '0'
option ip6ifaceid '::1'
config device
option name 'eth0'
option macaddr 'aa:bb:cc:dd:ee:ff'
︙
︙
root@GL-MT2500:~#
【 'option ipv6 0' 】を追加して、再起動するとまたまた fd70:a23c:cd9a::1/64 が割り当たっており、相変わらず DS-lite が正常処理されなくなっています。
/etc/config/network 中の朱字部分が問題の根源に思えます。
そこで朱字部分の修正をしました。
併せて IPv6割り当て長が '64' にならないように ''(null値)にします。
(この部分は null値にしても再起動で元に戻ってしまいますが結果に影響ありませんでした)
root@GL-MT2500:~# 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 'fd70:a23c:cd9a::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth1'
config device
option name 'eth1'
option macaddr 'aa:bb:cc:dd:ee:ff'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option isolate '0'
option ipaddr '192.168.xxx.1’
option delegate '0'
option ip6ifaceid '::1'
option ipv6 '0'
option ip6assign '64' → この行は option ip6assign '' と、null 設定にする
option ip6hint '0000' → この行は option ip6hint '' と、null 設定にする
config device
option name 'eth0'
option macaddr 'aa:bb:cc:dd:ee:ff'
︙
︙
root@GL-MT2500:~#
これによって再起動しても LAN に fd70:a23c:cd9a::1/64 が割り当たらなくなり DS-lite が正しく処理されるようになりました。
IPv6 を Passthrough ではなく NAT6 にした場合については試していませんが、おそらく今回のような事象にはならないだろうと推察しています。
なぜなら、NAT6 はリンクローカルが割り当たって、NAT6 変換してグローバル空間にでていく仕組みだから、だと考えています。
本件は2週間ほど試行錯誤の連続で、最終的に /etc/config/network の設定見直しに行き着くまで悩みました。
本件は OpenWrt の問題なのか、GL.iNet の問題なのかはわかりませんが、どうも後者のような気がします。
ラズパイにでも OpenWrt を入れて検証すればどちらの問題かがハッキリするかも知れませんので、後日検証してみますか。
2023-11-23 に Raspberry Pi3 B に OpenWrt をインストールし、Xpass 設定して検証しました。
結論からいいますと、GL.iNet 機器のように、再起動で問題になることはなく、Xpass は正しく処理されています。
なので本事象は GL.iNet 機器の問題と思われます。
ただ、/etc/config/network には下記の2行が含まれています。
config globals 'globals'
option ula_prefix 'fd75:fe32:815a::/48'
なぜ、Raspberry Pi3 B の OpenWrt(Xpass)ではこれが問題とならないのかはわかりません。
ギガビット対応の USB-LAN アダプターを LAN に、元からある LAN ポートを WAN にして検証しました。
Raspberry Pi3 B は USB2.0 なのでギガビット対応の LAN アダプター(Buffalo LUA4-U3-AGT:USB3.0)でも最大 100 Mbps です。
Xpass での性能は DL/UP ともに 92 Mbps でした。
Pi4 ならば USB3.0 ポートがありますからもっと速度が出ると思います。
Xpass ルーターのほか、トラベルルーターとしても使えますが、GL-MT300N の方がコスパはいいですね。
0 件のコメント:
コメントを投稿