AWS Client VPN接続後にVPCを経由せずにインターネットにアクセスする方法

記事タイトルとURLをコピーする

こんにちは、技術1課の小倉です。
先日、AWS Client VPNのブログを書いたのですが、このときにVPN接続をしたあとにクライアントからインターネットに接続できなくなって不便だなと感じていたのですが、クライアントからVPCを経由せずにインターネット接続する方法がありました。

AWS Client VPNでSAMLによるフェデレーション認証ができるようになりました!

デフォルトでは、VPN接続をすると宛先がクライアントVPNエンドポイントのデフォルトルートがクライアントで設定されます。そのため、すべての通信がクライアントVPNエンドポイントあてに通信するようになります。このデフォルトルートを入れないようにするためには、クライアントVPNエンドポイントを作成するときに スプリットトンネルを有効にする にチェックを入れる、たったこれだけです。

既存設定であれば、対象のクライアントVPNの設定を選択し、[アクション] - [クライアントVPNエンドポイントの変更] をクリックし、変更することができます。

クライアントのルートテーブルの比較

スプリットトンネルの設定ありなしでクライアントのルートテーブルを比較します。先頭に★がついているルートが注目すべきルートです。

VPN接続前

VPN接続前のルートテーブルです。余計なものがたくさんありますが、前後の比較ということで、すべてを記載します。デフォルトルートがインターネットに向いています。

>netstat -nr
 ~省略~
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
★         0.0.0.0          0.0.0.0     192.168.86.1    192.168.86.22     40
     18.177.91.48  255.255.255.255      192.168.0.1    192.168.86.22     20
     18.177.91.48  255.255.255.255     192.168.86.1    192.168.86.22     20
        127.0.0.0        255.0.0.0            リンク上         127.0.0.1    331
        127.0.0.1  255.255.255.255            リンク上         127.0.0.1    331
  127.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
   175.41.206.125  255.255.255.255      192.168.0.1    192.168.86.22     20
     192.168.56.0    255.255.255.0            リンク上      192.168.56.1    281
     192.168.56.1  255.255.255.255            リンク上      192.168.56.1    281
   192.168.56.255  255.255.255.255            リンク上      192.168.56.1    281
     192.168.86.0    255.255.255.0            リンク上     192.168.86.22    276
    192.168.86.22  255.255.255.255            リンク上     192.168.86.22    276
   192.168.86.255  255.255.255.255            リンク上     192.168.86.22    276
        224.0.0.0        240.0.0.0            リンク上         127.0.0.1    331
        224.0.0.0        240.0.0.0            リンク上      192.168.56.1    281
        224.0.0.0        240.0.0.0            リンク上     192.168.86.22    276
  255.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
  255.255.255.255  255.255.255.255            リンク上      192.168.56.1    281
  255.255.255.255  255.255.255.255            リンク上     192.168.86.22    276
===========================================================================
固定ルート:
  なし
 ~省略~

VPN接続後(スプリットトンネル無効)

スプリットトンネルを無効(デフォルト)の場合、クライアントVPNエンドポイント向けのデフォルルート(10.200.0.130あて)が追加されます。追加されたルートのネットマスクは128.0.0.0で、ロンゲストマッチに従い、追加された方のルートが優先されます。これはメトリックを下げてもロンゲストマッチが優先されるので変わりません。

>netstat -nr
 ~省略~
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
          0.0.0.0          0.0.0.0     192.168.86.1    192.168.86.22     40
★         0.0.0.0        128.0.0.0     10.200.0.129     10.200.0.130     25
     10.200.0.128  255.255.255.224            リンク上      10.200.0.130    281
     10.200.0.130  255.255.255.255            リンク上      10.200.0.130    281
     10.200.0.159  255.255.255.255            リンク上      10.200.0.130    281
     18.177.91.48  255.255.255.255      192.168.0.1    192.168.86.22     20
     18.177.91.48  255.255.255.255     192.168.86.1    192.168.86.22     20
   18.178.252.187  255.255.255.255     192.168.86.1    192.168.86.22     20
        127.0.0.0        255.0.0.0            リンク上         127.0.0.1    331
        127.0.0.1  255.255.255.255            リンク上         127.0.0.1    331
  127.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
        128.0.0.0        128.0.0.0     10.200.0.129     10.200.0.130     25
   175.41.206.125  255.255.255.255      192.168.0.1    192.168.86.22     20
     192.168.56.0    255.255.255.0            リンク上      192.168.56.1    281
     192.168.56.1  255.255.255.255            リンク上      192.168.56.1    281
   192.168.56.255  255.255.255.255            リンク上      192.168.56.1    281
     192.168.86.0    255.255.255.0            リンク上     192.168.86.22    276
    192.168.86.22  255.255.255.255            リンク上     192.168.86.22    276
   192.168.86.255  255.255.255.255            リンク上     192.168.86.22    276
        224.0.0.0        240.0.0.0            リンク上         127.0.0.1    331
        224.0.0.0        240.0.0.0            リンク上      192.168.56.1    281
        224.0.0.0        240.0.0.0            リンク上     192.168.86.22    276
        224.0.0.0        240.0.0.0            リンク上      10.200.0.130    281
  255.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
  255.255.255.255  255.255.255.255            リンク上      192.168.56.1    281
  255.255.255.255  255.255.255.255            リンク上     192.168.86.22    276
  255.255.255.255  255.255.255.255            リンク上      10.200.0.130    281
===========================================================================
固定ルート:
  なし
 ~省略~

VPN接続後(スプリットトンネル有効)

スプリットトンネルが有効な場合は、デフォルトルートが入らず必要なVPN接続に必要なルートが個別で登録されます(VPNを経由して接続するアドレスは172.31.0.0/16)。そのため、AWSへの通信はVPN経由、その他の通信はインターネットへ直接通信できます。

>netstat -nr
 ~省略~
IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
★         0.0.0.0          0.0.0.0     192.168.86.1    192.168.86.22     40
     10.200.0.128  255.255.255.224            リンク上      10.200.0.130    281
     10.200.0.130  255.255.255.255            リンク上      10.200.0.130    281
     10.200.0.159  255.255.255.255            リンク上      10.200.0.130    281
   18.178.252.187  255.255.255.255     192.168.86.1    192.168.86.22     20
        127.0.0.0        255.0.0.0            リンク上         127.0.0.1    331
        127.0.0.1  255.255.255.255            リンク上         127.0.0.1    331
  127.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
★      172.31.0.0      255.255.0.0     10.200.0.129     10.200.0.130     25
     192.168.56.0    255.255.255.0            リンク上      192.168.56.1    281
     192.168.56.1  255.255.255.255            リンク上      192.168.56.1    281
   192.168.56.255  255.255.255.255            リンク上      192.168.56.1    281
     192.168.86.0    255.255.255.0            リンク上     192.168.86.22    276
    192.168.86.22  255.255.255.255            リンク上     192.168.86.22    276
   192.168.86.255  255.255.255.255            リンク上     192.168.86.22    276
        224.0.0.0        240.0.0.0            リンク上         127.0.0.1    331
        224.0.0.0        240.0.0.0            リンク上      192.168.56.1    281
        224.0.0.0        240.0.0.0            リンク上     192.168.86.22    276
        224.0.0.0        240.0.0.0            リンク上      10.200.0.130    281
  255.255.255.255  255.255.255.255            リンク上         127.0.0.1    331
  255.255.255.255  255.255.255.255            リンク上      192.168.56.1    281
  255.255.255.255  255.255.255.255            リンク上     192.168.86.22    276
  255.255.255.255  255.255.255.255            リンク上      10.200.0.130    281
===========================================================================
固定ルート:
  なし
 ~省略~

まとめ

AWS Client VPNを利用してもスプリットトンネルの設定を有効にすることで、クライアントからVPCを経由せずにインターネットに接続できます。もしインターネットに接続するためにVPCを経由して通信しているのであれば、スプリットトンネルを使ったほうが不要な通信がAWS内に流れなくなりますので、設定することをおすすめします。

小倉 大(記事一覧)

アプリケーションサービス部ラーニングエクスペリエンス課 札幌在住

AWSトレーニングの講師をしています。

最近は5歳の息子と遊ぶのが楽しいです!

Twitter: @MasaruOgura