さくらの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ではそのキーワードで検索してもヒットしない。