ホーム > GNU/Linux > VPNのソースアドレス関係でルーティングテーブルと戦った

VPNのソースアドレス関係でルーティングテーブルと戦った

どうしてこんな構成にしてしまったのか。
vpn-gw用インターフェイス 192.168.1.250 (eth0)
管理用インターフェイス 192.168.122.137 (eth1) → natで192.168.1.137
デフォルトゲートウェイ 192.168.122.1

さて、この状況下でvpn-gwにインターネットからパケットが来ると当然送り返しはデフォルトゲートウェイになる。
すると困ったことに192.168.122.1は知らないので捨ててしまう。

それではデフォルトゲートウェイを192.168.1.1に変えてしまうとどうなるかというと、
192.168.1.0/24から192.168.1.137に対してsshをしたりなんかすると、帰りは192.168.1.250から出て行ってしまう。

正解はpolicy routingを使用して出口を切り分ける。
1. /etc/iproute2/rt_tablesに250 vpnと追記
2. /etc/sysconfig/network-scripts/route-eth0に以下の通り記述。これはそのままルーティングテーブル。

192.168.1.0/24 dev eth0 table vpn
default via 192.168.1.1 table vpn

3. /etc/sysconfig/network-scripts/rule-eth0に以下の通り記述。192.168.1.250に来た物はvpnルーティングテーブルにしたがって送り返せ、という意味らしい。

from 192.168.1.250 table vpn

4. service network restart

これで無事に切り替わった。

広告
カテゴリー:GNU/Linux
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。