tabimoba.net

とあるエンジニアの雑記帳

OpenVPNでのスタティックルーティング設定あれこれ

OpenVPNで構成されたネットワーク(TUN)でrouteコマンドやipコマンドでスタティックルーティングを追加しようとすると、「SIOCADDRT: No such process」と表示され、ルーティングを追加することが出来ません。

OpenVPNでは、routeコマンドやipコマンドではなくOpenVPNの設定ファイルを変更してスタティックルーティングを追加します。手順は以下のとおりです。

なお、以下の各設定は、既にOpenVPNがルーティングモード(TUN)かつ証明書認証でVPN接続が可能な状態であることが前提となります。

クライアント→サーバ→別セグメントへのルーティング設定

サーバ側の/etc/openvpn/server.confに以下の記述を追加します。
以下は、192.168.10.0/24,192.168.20.0/24,192.168.30.0/24という別セグメントのネットワークがサーバ側に存在する場合の記述例となります。

push "route 192.168.10.0 255.255.255.0"
push "route 192.168.20.0 255.255.255.0"
push "route 192.168.30.0 255.255.255.0"

サーバ→クライアント→別セグメントへのルーティング設定

1.サーバ側の/etc/openvpn/server.confに以下の記述を追加します。

以下は、192.168.40.0/24という別セグメントのネットワークがexampleというコモンネーム(CN)のクライアント側に存在する場合の記述例となります。

client-config-dir ccd
route 192.168.40.0 255.255.255.0
2./etc/openvpn/ccdディレクトリ以下に、接続元クライアントごとのルーティング設定ファイルを作成します。ccdディレクトリが無い場合は作成します。

なお、ファイル名はクライアントのcrtファイルに記述されたコモンネーム(CN)です。
(例:CN=example→exampleとします)

iroute 192.168.40.0 255.255.255.0

OpenVPNクライアント間で通信するための設定

サーバ側の/etc/openvpn/server.confに以下の記述を追加します。
これにより、同じサーバに接続するクライアント同士が、サーバを介して接続できるようになります。

client-to-client