以前の投稿に関連した内容になります。
WireGuardを成る可くシンプルな設定で接続出来るようにしたかったので設定を見直してみました。結果的に二つの設定を使い分ける事にしました。
ドメイン名で接続させる設定とIPv6アドレスで接続させる設定の二つです。接続をコントロールできるので便利な解決方法かと思います。
目次
設定を二つに分けた理由
二つに分けた理由は宅内のWiFi環境でドメイン名での接続を試すとIPv4(PPPoE経由で)接続が優先されてしまいハンドシェイクが出来ず、それを解決する為に宅内のWiFi環境からもハンドシェイクが出来るIPv6アドレスでの接続(IPoE経由)が必要だったからです。
誤解を無くす為に補足するとドメイン名での接続でもIPoE経由で接続させれます。ただ、私の環境ではPPPoEが優先されてしまっている様です。
二つに分けても設定の生成は簡単なので秒で終わります。少し面倒なのはスマートフォンのWireGuardアプリでトンネル対象にするアプリを選ぶ作業を2度する事くらいです。
少し話が脱線しますが、諸事情がありまして、バージョンの23.05.5のVMのスクリーンショットを使っています。以前の投稿までバージョン24.10.0を使っていたので、設定内容など画像に部分的な違いが有るかもしれません。なので参考程度にして頂ければと思います。
ピアの設定生成と読み込み
では設定を見ていきたいと思います。「ネットワーク」→「インターフェース」で画面を表示したら、「プロトコル: WireGuard VPN」の列にある「編集」をクリックして「ピア」のタブを開きます。タブを開くと以下の様な画面が表示されます。

ピアのタブ内に表示された内容を確認すると「エンドポイントホスト」のカラムが「*:XXXX4」となっています。これは設定で「エンドポイントホスト」が未入力の為ワイルドカードになっています。
私はPixel用に二つの設定を生成して行きたいので「編集」をクリックしピアの編集画面を表示します。

「編集」をクリックすると上記の様な画面が表示されると思います。
「エンドポイントホスト」については未入力にします。理由としては同じ設定を接続の違いで使い回したいのと、「Generate configuration…」 をクリックした後に選択ボックスから楽に設定できるからです。
「エンドポイントポート」については、ここで設定しないと接続する端末側で入力する事になるので先に設定します。ただ、もしかしたらデフォルトのポートを使っている場合は「51820」が自動的に設定されるかもしれませんが、デフォルトのポートのままで使った事が無いので未検証です。
「永続的なキープアライブ」については私の環境では問題がなさそうなので未入力にしています。
設定を終えたら「Generate configuration…」をクリックします。

「Connection endpoint」にDDNSで設定したドメイン名が選択ボックスに表示されているかと思います。この状態のQRコードを読み込む事でドメイン名での接続が可能になります。では、スマートフォンのアプリ開いて読み込んで行きましょう。



QRコードをスキャンしたらトンネル名を決めます。とりあえずIPv4で接続されてしまうので、トンネル名を「v4」としました。厳密に言うとv4&v6が正しいですが自分が分かれば良いのでシンプルにしてます。
では、次にIPv6用の設定を作ってい行きます。と言っても、だだ「Connection endpoint」の選択ボックスからOpenWrtのIPv6アドレスを選択するだけです。

「Connection endpoint」の選択ボックスからOpenWrtのIPv6アドレスを選択しすると、すぐさまQRコードと設定内容の表示が変わります。再びスマートフォンのアプリでQRコードを読み込みます。今度はトンネル名を「v6」としました。
「Connection endpoint」の選択を変えるだけで、簡単に複数の設定を生成できるのは本当に有難いです。
ハンドシェイクの確認
接続を確認してみたいと思います。下の画像は自宅のWiFiに接続している時にWireGuardのスイッチをONした時と、モバイル通信に切り替えてWireGuardのスイッチをONにした時です。

らではハンドシェイクに失敗する。

上記のスクリーンショットを見て頂くと分かりますが、ドメイン名で接続した場合は、自宅内のWiFi環境からではハンドシェイクされませんが、モバイル通信に切り替えた場合はハンドシェイクされています。次にIPv6での接続を確認してみましょう。

IPv6アドレスを使用して接続すると、宅内のWiFiからもアクセスできることが確認できます。複数の設定を作成して端末側から接続をコントロールできるようにしておけば、非常に便利です。
注意点としてはIPv6を使って接続する場合、端末にIPv6のアドレスが割り振られている必要があります。モバイル通信などでハンドシェイクができないと思ったら、モバイル通信回線やWiFiがIPv6に対応してるか確認しましょう。
次に接続の状態を確認してみたいと思います。上部メニューの「状態」→「WireGuard」からステータスを確認します。


では、最後に端末側で詳細な設定をします。初期状態ではWireGuardをONにすると「すべてのアプリがトンネル対象」になっています。PCなどではさほど問題にはならないのですが、スマートフォンではトンネル対象から除外したいアプリが有ると思います。私の場合は対象にしたいのはブラウザと自宅に接続するためのリモート接続関連のアプリ、それから海外に居る時には映像配信サービスのアプリも対象にしたい場合があります。設定の仕方は以下の様にします。
WireGuardアプリの設定
WireGuardのアプリを開きトンネル名をタップし詳細画面を表示します。





まとめ
OpenWrtを使用してWireGuardを設定すると、非常に簡単にVPNを構築できます。リソースをほとんど使わないため、余ったルーターにインストールして使用することもできますし、私のように仮想マシンにインストールして利用することも可能です。自宅に接続しながらデータの保管や活用が簡単にできるため、OpenWrtとWireGuardをセットで使うのは本当におすすめです。逆にセットで使わないのは勿体ないくらいに思います。興味がある方は以前の投稿などを参考にして、ぜひ環境を構築してみてください。