自宅の固定網は楽天ひかりで、クロスパス接続しています。
ルーターは「ヤマハ RTX830」です。
Casa と Wireguard のために、外部からの接続要求を受け入れるための IPv6 開放設定をしています。
クロスパスは DS-Lite 方式ですので IPv4 ではポート開放はできませんが、IPv6 ならば制約を受けることなくポート開放ができます。
ちなみに V6 プラス(MAPe 方式)の場合は IPv4 でも割り当てられたポートであれば開放設定できます。
IPv6 の場合は、クロスパス同様、MAPe 方式でも制約なしにポート開放が可能です。
❏ Casa
esp(プロトコル 50)と IPsec IKE(udp 500)を開放設定します。
❏ Wireguard
Raspberry Pi に Wireguard サーバーを立てていますので、
Client からの接続要求を受けるためのポートを開放します。
※ Client はスマホおよび MacBook Air です
IPv6 で接続できるように IPv6 DDNS として i.open.ad.jp を利用しています。
サーバーの IPv6 アドレスを [XXXXXXXX].i.open.ad.jp という DDNS 名で登録します。
RTX830 の IPv6 フィルターのうち、これらに関連した設定は次の部分です。
----------<< ここから >>----------
ipv6 filter 200030 pass * * icmp6 * * # ICMPv6の通信許可
ipv6 filter 200031 pass * * 4 # IPinIP(encapsulation)のプロトコル4の通信許可
ipv6 filter 200038 pass * * udp * 546 # DHCPv6の通信許可
ipv6 filter 200039 reject * * # 上記と下記以外の WAN->LAN はすべて拒否
ipv6 filter 500100 pass * ra-prefix@lan2::/64 esp
ipv6 filter 500101 pass * ra-prefix@lan2::/64 udp * 500
ipv6 filter 500200 pass * ra-prefix@lan2::/64 udp [Client側ポート] [サーバー側ポート]
#
ipv6 lan2 secure filter in 200030 200031 200038 500100 500101 500200 200039
---------<< ここまで >>----------
[ra-prefix@lan2::/64] は IPv6 WAN インタフェースのプリフィックスアドレスで、ひかり電話契約がない場合の設定です。
ひかり電話契約時は [dhcp-prefix@lan2::/64] になります。
IPv6 プリフィックスアドレスに対して許可設定していますので同じプリフィックスの、ルーター配下の機器にパス設定していることになります。
ですが、実際には esp/IPsec を開放した Casa と Wireguard サーバー の IPv6 アドレスに対してのみ有効になりますので、他の機器が同じプリフィックスアドレスだからといって影響を受けることはありません。
ディスクリプター番号 500100 と 500101 が Casa 用の esp/IPsec IKE の受け入れです。
500200 は Wireguard サーバー用の接続受け入れ設定です。
[Client 側ポート] から [サーバー側ポート] に対して通過設定しています。
[Client 側ポート] と [サーバー側ポート] は同じポートでもいいのですが、我が家はあえて別々のポートにしています。
NEC Aterm での設定事例では [Client 側ポート] が [12345]、[サーバー側ポート] が [54321] としています(実際の我が家の設定番号とは異なります)。
これは2つのポート番号をそれぞれ 5 桁、合計で 10 桁の数字が合わない限り接続できないようにして、セキュリティ度を高めているためです。
さらに Raspberry Pi の IPv6 アドレスが一致しないと接続できません。
RTX830 については設定に関してルーターに関するリテラシーと、RTX830 の設定コマンドに関する知識を要します。
市販ルーターでの事例として NEC Aterm で設定する場合を以下に記載しますので、参考にしてください。
1つ目は esp プロトコルの開放設定です。
2つ目は IPsec IKE のポート開放設定です。
3つ目は Wireguard サーバーへのポート開放設定です。
例では [送信元ポート番号] として [12345] を、[宛先ポート番号] として [54321] を設定した事例です。
以上の設定により、Casa については楽天モバイルの「コントローラー」からの接続要求に応えることになります。
Wireguard は、クライアントアプリの設定で、クライアント自身の Listen ポートを [12345] にして、「エンドポイント(宛先)」のアドレスとポートをそれぞれ、[XXXXXXXX].i.open.ad.jp と [54321] にします。