OpenWrt + Cloudflare WARP で v6 だけ WARP を通す
https://scrapbox.io/files/673bb3f1e13449a2ff0f1251.png
IPv4 しかない、もしくはネットに疎通する IPv4 に加えて NGN 閉域網の v6 アドレスしか降ってこない回線を使っていて、v4 はそのままの経路でインターネットに出つつ Cloudflare WARP で v6 も仮想的に開通させたい時の設定記録。
Cloudflare WARP に接続する
基本的にはこのページに従えば WARP の設定が完了するが、以下に記す点に注意する。 NGN 閉域網の v6 アドレスが降ってくる環境の場合、wan6 を無効化する
無効化しないと opkg update 等で失敗する
LuCI の Interfaces ページで wan6 を Edit → "Disable this interface" を check + "Bring up on boot" を uncheck
wireguard なるパッケージは存在しないので代わりに kmod-wireguard をインストールする(他の WireGuard 関連パッケージを入れたら一緒に入るかも)
wgcf-profile.conf の内容をコピーする時、キー情報だけでなく IP アドレスの設定も忘れずコピーする
/etc/config/network を書く時…
config_wireguard_Cloudflare の allowd_ips のうち v4 のは消す
gateway はルーターの v4 IP にする
NAT を設定する
加えて v6 の NAT を設定する。通常のネットプロバイダなら prefix だけくれて後はルーターが好きにアドレスを割り当てられるが、WARP は VPN であり持てるアドレスが1つしかないため。
Interfaces ページで Cloudflare インターフェースを Edit
"Firewall Settings" タブで "wan" ゾーンに追加
Save & Apply
Interfaces ページで lan インターフェースを Edit
DHCP Server タブにある IPv6 Settings タブで RA-Service と DHCPv6−Service を "server mode" にする
DHCP Server タブにある IPv6 RA Settings タブで Default router を "forced" にする
つまり、ルーターを強制的に v6 の default gateway にする
Save & Apply
Firewall ページで "wan ⇒ REJECT" とある項目 (wan zone) を Edit
Advanced Settings ページで "IPv6 Masquerading" を check し Save
Save & Apply
トラブルシューティング
Q. WARP 繋がってるかわからん
A. OpenWrt に ssh して ping6 2606:4700:4700::1111(1.1.1.1 の v6 版)してみましょう
Q. 一通り設定したけど手元の {任意の機器} で IPv6 のテストに通らん
A. その機器の iface を一旦落として再度上げてみましょう、そして v6 の default gateway としてルーターの v6 IP が設定されてるか見ましょう
Q. uci でやりたいんすけど