フレッツ光クロスでのGUAプレフィックス変更の件で、ULA化していないとLANのメンテが非常に面倒な事が分かりました。 そこでLANのULA化をしたのですが、今回はGUA/ULA変換はMASQUERADEではなくNETMAPで変換することにしました。 変換そのものはip6tablesコマンド(もしくは iptables-persistent パッケージでは/etc/iptables/rules.v6)で行いますが、まず最初に、LAN側のインターフェースがenp1s0f1の場合、/etc/network/interfaces.d/enp1s0f1を以下のようにして固定します。 iface enp1s0f1 inet6 static address fd98:1:1:1::1/64 続いてip6tablesで以下を実行します。(240b:1122:3344:5501の部分は実際に割り当てられたPREFIXを基に指定してください。) ip6tables -t nat -A PREROUTING -d 240b:1122:3344:5501::/64 -i enp1s0f0 -j NETMAP --to fd98:1:1:1::/64 ip6tables -t nat -A POSTROUTING -s fd98:1:1:1::/64 -o enp1s0f0 -j NETMAP --to 240b:1122:3344:5501::/64 その他必要に応じて/etc/radvd.confの変更(ULA化)なども行い再読み込みを行ってください。基本的にはこれだけですが、ip6tablesが正常に機能していれば、以下のようにして設定を保存します。(iptables-persistent パッケージが必要です。) cd /etc/iptables sudo ip6tables-save > rules.v6 参考までに、GUAプレフィックスの変更があった場合に対応するため、以下を こちらのスクリプト /usr/local/sbin/ipt-v6p-static-lan-01.sh に追加しました。 ## 2024/05/12追記:LAN側IPv6アドレスのULA化に伴う/etc/iptables/rules.v6の変更と再読み込み PREFIX_CHAN
5月2日の朝なんですが、これまで特に通信ができなかったことはないのですが、突然インターネットに接続できないようになりました。 環境はフレッツ光コラボのenひかりクロス固定IP接続(v6プラス)で、ルーターはLinux(debian)で構成した自前ルータだったのですが、 こちらの自前のスクリプト(※1) とちがうものをつかっていてIPv6ネットワークプレフィックスを固定にしていた所為もあり、最初は原因がわからないしネットに接続できないのでやむなく一時的にスマホをUSBテザリングしてネットにつなげて情報収集しましたが、原因はわかりませんでした。 そこで、今一度スクリプトを見返したところ、前述のようにIPv6ネットワークプレフィックスを固定にしていたのでもしやと思い、dhclientをデバッグモードで走らせると指定していたプレフィックスとは異なるプレフィックスが割り振られていました。通信できないのは当然です。 今度は割り当てられたプレフィックスを指定し直したところIPv6は接続できるようになりましたが、IPv4で通信できません。これも前述のスクリプトと異なるものを使用していたので、少しづつデバッグしていったところ、curlで認証を受けるところがNGになっていました。ここで前出のスクリプトと見比べるとURLをダブルクォーテーションで囲っていなかったのでこれを修正したところ認証も通り、無事、IPv4も疎通できるようになりました。 これで一件落着と言いたいところなのですが、一部IPv6ネットワークプレフィックスを固定していたのでこれらの変更が必要だったので修正しました。小規模な宅内LANなので良かったのですが、これが大規模なLANでULA(ユニークローカルアドレス,IPv4のプライベートアドレスに相当)で運用されていない環境やIPv6でトンネルを張っていたりすると業務に支障がでるだろうなと思ったのは言うまでもありません。 最後に今後もプレフィックスが変更される可能性は否定できないので、スクリプトを前述のスクリプトに入れ替え(一部修正が必要でしたが)IPv6/IPv4の疎通を確認し、 宅内LANのULA化はまだですが 、ようやく一件落着となりました。 2024/05/12追記: こちら にULA化(GUA/ULA変換)について投稿しました。 今回は以上です。それでは