openvpn@centos7 その2スプリットトンネリング

さくらのvpsの2台のサーバは同じゾーンなので、
スイッチに接続するとローカルネットワークで通信できるようになる。

コントロールパネルでスイッチを作成し、サーバを停止してから接続する。

firewalldとiptablesの設定でローカルの通信を許可する。

pingが通ることを確認。

openvpn接続後、サーバのローカルネットワーク宛の通信ができることを確認。

ローカル間で接続したもう一台のサーバへのpingは応答がない。

openvpnで割り当てるサブネットのルーティングを追加してアクセスできるようになった。


接続したクライアントでroutingテーブルを見てみると、
デフォルトルートがVPN向けになっている...と思ったが
よくみると 0.0.0.0 128.0.0.0 だ。



IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.11     25
          0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6    281
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6    281
         10.8.0.4  255.255.255.252            リンク上          10.8.0.6    281
         10.8.0.6  255.255.255.255            リンク上          10.8.0.6    281
         10.8.0.7  255.255.255.255            リンク上          10.8.0.6    281
===========================================================================




設定ファイルserver.confの以下をコメントにする。

push "redirect-gateway def1 bypass-dhcp"


そして、以下を追加する。サーバのローカルネットワークである。

push "route 172.16.0.0 255.255.0.0"

これによって、サーバのローカルネットワークのみがVPN経由になる。





IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイス  メトリック
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.11     25
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6    281
         10.8.0.4  255.255.255.252            リンク上          10.8.0.6    281
         10.8.0.6  255.255.255.255            リンク上          10.8.0.6    281
         10.8.0.7  255.255.255.255            リンク上          10.8.0.6    281
       172.16.0.0      255.255.0.0         10.8.0.5         10.8.0.6    281
===========================================================================



こういうVPNの設定は「スプリットトンネリング」と言うと思うのだが、
openvpnではそのキーワードで検索してもヒットしない。