OpenWrtでWireGuardのピアの設定あれこれ

以前の投稿に関連した内容になります。

WireGuardを成る可くシンプルな設定で接続出来るようにしたかったので設定を見直してみました。結果的に二つの設定を使い分ける事にしました。

ドメイン名で接続させる設定とIPv6アドレスで接続させる設定の二つです。接続をコントロールできるので便利な解決方法かと思います。

目次

  1. 設定を二つに分けた理由
  2. ピアの設定生成とスマートフォンでの読み込み
  3. ハンドシェイクの確認
  4. WireGuardアプリの設定
  5. まとめ

設定を二つに分けた理由

二つに分けた理由は宅内のWiFi環境でドメイン名での接続を試すとIPv4(PPPoE経由で)接続が優先されてしまいハンドシェイクが出来ず、それを解決する為に宅内のWiFi環境からもハンドシェイクが出来るIPv6アドレスでの接続(IPoE経由)が必要だったからです。

誤解を無くす為に補足するとドメイン名での接続でもIPoE経由で接続させれます。ただ、私の環境ではPPPoEが優先されてしまっている様です。

二つに分けても設定の生成は簡単なので秒で終わります。少し面倒なのはスマートフォンのWireGuardアプリでトンネル対象にするアプリを選ぶ作業を2度する事くらいです。

少し話が脱線しますが、諸事情がありまして、バージョンの23.05.5のVMのスクリーンショットを使っています。以前の投稿までバージョン24.10.0を使っていたので、設定内容など画像に部分的な違いが有るかもしれません。なので参考程度にして頂ければと思います。

ピアの設定生成と読み込み

では設定を見ていきたいと思います。「ネットワーク」→「インターフェース」で画面を表示したら、「プロトコル: WireGuard VPN」の列にある「編集」をクリックして「ピア」のタブを開きます。タブを開くと以下の様な画面が表示されます。

OpenWrt、WireGuardのピアのタブを開いた画面。
ピアのタブを開くと設定の完了したリストが表示されます。

ピアのタブ内に表示された内容を確認すると「エンドポイントホスト」のカラムが「*:XXXX4」となっています。これは設定で「エンドポイントホスト」が未入力の為ワイルドカードになっています。

私はPixel用に二つの設定を生成して行きたいので「編集」をクリックしピアの編集画面を表示します。

OpenWrt、WireGuardのピアの設定画面。
ピアの編集画面です。オプションはなるべく入力せずシンプルにしています。

編集」をクリックすると上記の様な画面が表示されると思います。

エンドポイントホスト」については未入力にします。理由としては同じ設定を接続の違いで使い回したいのと、「Generate configuration…」 をクリックした後に選択ボックスから楽に設定できるからです。

エンドポイントポート」については、ここで設定しないと接続する端末側で入力する事になるので先に設定します。ただ、もしかしたらデフォルトのポートを使っている場合は「51820」が自動的に設定されるかもしれませんが、デフォルトのポートのままで使った事が無いので未検証です。

永続的なキープアライブ」については私の環境では問題がなさそうなので未入力にしています。

設定を終えたら「Generate configuration…」をクリックします。

OpenWrt、WireGuardのピアの設定生成画面。
「Generate configuration…」をクリックすると設定が生成されます。生成された設定画面の上部の「Connection endpoint」に注目して頂きたいのですが、選択ボックスから接続の仕方を変更できます。

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

WireGuardのアプリを開きます
WireGuardアプリでトンネルを追加するための最初のステップ。
アプリを開いたら右下の「+」ボタンをタップ
WireGuardのトンネルを追加をタップした後の仮面。
「QRコードをスキャン」をタップしカメラを起動したらモニターに映るQRコードをスキャンします。

QRコードをスキャンしたらトンネル名を決めます。とりあえずIPv4で接続されてしまうので、トンネル名を「v4」としました。厳密に言うとv4&v6が正しいですが自分が分かれば良いのでシンプルにしてます。

では、次にIPv6用の設定を作ってい行きます。と言っても、だだ「Connection endpoint」の選択ボックスからOpenWrtのIPv6アドレスを選択するだけです。

OpenWrt、WireGuardのピアの設定生成画面。
「Connection endpoint」の選択ボックスからOpneWrtのIPv6アドレスを選ぶとQRコードと設定内容が即座に変更される。

Connection endpoint」の選択ボックスからOpenWrtのIPv6アドレスを選択しすると、すぐさまQRコードと設定内容の表示が変わります。再びスマートフォンのアプリでQRコードを読み込みます。今度はトンネル名を「v6」としました。

Connection endpoint」の選択を変えるだけで、簡単に複数の設定を生成できるのは本当に有難いです。

ハンドシェイクの確認

接続を確認してみたいと思います。下の画像は自宅のWiFiに接続している時にWireGuardのスイッチをONした時と、モバイル通信に切り替えてWireGuardのスイッチをONにした時です。

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

スマートフォンでWireGuardがIPv6にてハンドシェイクされているスクリーンショット。
IPv6アドレスで接続する場合は自宅のWiFi環境下でもハンドシェイクされる。

IPv6アドレスを使用して接続すると、宅内のWiFiからもアクセスできることが確認できます。複数の設定を作成して端末側から接続をコントロールできるようにしておけば、非常に便利です。

注意点としてはIPv6を使って接続する場合、端末にIPv6のアドレスが割り振られている必要があります。モバイル通信などでハンドシェイクができないと思ったら、モバイル通信回線やWiFiがIPv6に対応してるか確認しましょう。

次に接続の状態を確認してみたいと思います。上部メニューの「状態」→「WireGuard」からステータスを確認します。

OpneWrtのWireGuardステータスページ。IPv4で接続時。
IPv4で接続されている時はエンドポイントホストがIPv4アドレスになる。
OpneWrtのWireGuardステータスページ。IPv6で接続時。
IPv6アドレスで接続された場合はエンドポイントホストがIPv6アドレスになる。

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

WireGuardアプリの設定

WireGuardのアプリを開きトンネル名タップし詳細画面を表示します。

スマートフォンのスクリーンショット。WireGuardのアプリでトンネル名をタップした後に表示される画面。右上の鉛筆マークをタップすると編集画面に移動が出来る。
トンネル名をタップ後、表示される詳細画面の右上の鉛筆マークをタップする事で設定を編集できる。
スマートフォンのスクリーンショット。WireGuardのアプリの設定編集の初期画面。中央のすべてのアプリがトンネル対象をタップするとトンネルするアプリを個別で選べる。
画面中央の「すべてのアプリがトンネル対象」をタップして対象にするアプリを選択する。
スマートフォンのスクリーンショット。WireGuardのアプリで設定編集画面中央のトンネリング対象アプリをタップした後に表示される画面。トンネルするのタブを選び対象アプリを選択後、右下のXアプリが対象をタップする設定され編集画面に戻る。
「トンネルする」をタップしトンネルしたいアプリを選択したら「Xアプリが対象」をタップして元の面に戻る。
スマートフォンのスクリーンショット。WireGuardのアプリでトンネル対象を選択後に設定を確認している。右上のフロッピーディスクマークをタップすると設定が保存反映される。
「トンネリング対象アプリがX個」となっているのを確認したら上部の「フロッピーディスク」マークをタップし設定を保存する。
スマートフォンのスクリーンショット。WireGuardのアプリでトンネル名をタップした後に表示される画面。トンネル対象の選択を終えて設定が反映されているのを確認している。
詳細画面に戻ると設定が反映されている事を確認できる。

まとめ

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

コメントする