概要
iPhoneからYamaha RTX1300ルーターとVPN接続する際に、特定の状況下でVPN接続するオンデマンド接続の設定を行いました。
その設定方法について説明します。
やりたいこと
iPhoneやiPadから接続する際に、なるべくすべての通信をVPN接続した状態で行いたいです。
これは、VPN接続先のネットワークにある、広告を削除するDNSサーバーを経由して通信を行いたいためです。
Apple Configuratorを使って、プロファイルを作成することで、常時接続が可能です。
しかし、常時接続ではIKEv2で証明書による接続が必須であるようで、現在のヤマハのルーターでは設定できません。
そこで、完全な常時接続ではありませんが、オンデマンド接続によって特定の条件下でVPN接続を行うように設定しました。
オンデマンド接続の注意点として、キルスイッチとは異なります。 あくまでも特定のタイミングの際に自動でVPN接続されるというだけで、VPN接続されていなければ通信を止めるという処理は行いません。 もし、VPN接続が確立する前に通信が発生した場合は、VPNを使わない通信が行われます。
オンデマンド接続の方法
オンデマンド接続の設定は、Apple Configuratorではできないようです。
しかし、設定自体はApple Configuratorで作成する設定ファイルのXMLファイルに追記する必要があります。 Apple Configuratorを使った、VPNプロファイルの作成方法は次の記事を参考にしてください。
次のように設定することで、オンデマンド接続を実現できます。
<key>IKEv2</key>
<dict>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<!-- 自宅Wi-FiではVPNを切断 -->
<dict>
<key>InterfaceTypeMatch</key><string>WiFi</string>
<key>SSIDMatch</key>
<array>
<string>HomeWiFi(Wi-Fiの名前)</string>
</array>
<key>Action</key><string>Disconnect</string>
</dict>
<!-- Wi-FiはVPN接続 -->
<dict>
<key>InterfaceTypeMatch</key><string>WiFi</string>
<key>Action</key><string>Connect</string>
</dict>
<!-- セルラーは常にVPN接続 -->
<dict>
<key>InterfaceTypeMatch</key><string>Cellular</string>
<key>Action</key><string>Connect</string>
</dict>
</array>
</dict>
<key>IKEv2</key>と記述されている内部に、オンデマンド接続の設定を追加します。
この設定では、自宅Wi-Fi以外でVPN接続を行うという設定にしています。
この設定プロファイルをiPhoneやiPadへ転送してインストールします。 これだけでは自動でオンデマンド接続されて不便なので、私はショートカットアプリを使って、オンデマンド接続の有効・無効を切り替えるようにしています。
接続を行うショートカットアプリの例です。 オンデマンド設定を有効にするだけで、自動で接続されます。
接続を解除するショートカットアプリの例です。 オンデマンド設定を無効にするだけでは接続解除されません。そのため、オンデマンド設定を無効にしてから接続解除しています。
これで設定できました。
さいごに
オンデマンド接続の設定がApple Configuratorからできなかったので最初は困惑しました。 しかし、生成される設定ファイルを直接編集することで設定可能なようです。 iOS、iPadOS、macOSどれでも同じ設定を記述することで設定できます。
みなさんの参考になれば嬉しいです。

