1つのインターフェイス(デフォルトゲートウェイ)でOpenVPN / tun0を介したすべてのトラフィックルーティング - ソースアドレス/インターフェイスに基づいてポリシーベースのルーティング

1つのインターフェイス(デフォルトゲートウェイ)でOpenVPN / tun0を介したすべてのトラフィックルーティング - ソースアドレス/インターフェイスに基づいてポリシーベースのルーティング

私は2つのインターフェースmyvpnserverと以下を備えたDebian Linux VPNルーターを持っていますeno1eno2

  • eno1LANとインターネットルーターに接続します。静的IPアドレスを持つこのインターフェイスにはmyvpnserverデフォルトゲートウェイ(インターネット接続)があります。 OpenVPNはこのインターネット接続を使用してVPNサーバーに接続します。
  • eno2スイッチに接続しました。 DHCPサーバーはこのインターフェイスで実行されます。接続されているクライアントからのすべてのトラフィックがeno2VPN / tun0を介してルーティングされるようにしたいです。

デフォルト設定はうまくいきます。私が接続しているホストからeno2VPN LANのリモートホスト(たとえば10.123.0.0/24)にアクセスできます。

次の目標は、myvpnserverソースアドレスまたはインターフェイスに基づいてルーティングすることです。

myvpnserverインターネット(ftp.debian.orgVPNホストなど)に接続している場合は、デフォルトゲートウェイを使用する必要がありますeno1。接続するクライアントがeno2同じインターネットホスト(たとえばftp.debian.org)に接続する場合は、トラフィックはデフォルトゲートウェイtun0ではなくVPN /を介してmyvpnserverルーティングする必要があります。

// For Incoming Traffic:
If( InputInterface = eno2 ) Then
    default_gateway = 172.17.100.1
Else
    default_gateway = gateway as declared in /etc/network/interfaces
End If

私が見つけたポリシーベースのルーティング行くべき道のようです。 「一般」ルーティングは宛先のみに基づいていますが、ポリシーベースのルーティングは入力インターフェイスや送信元IP範囲などの他の側面を考慮に入れることができます。

どのような措置を講じるべきですか? (私はDebian 11 / Bulseyeを使用しています。)

1000 vpntunnel1.)に1行を追加しました/etc/iproute2/rt_tables

何今後の計画?構成例を挙げることができますか?

どんなアドバイスでも心から感謝します!

答え1

次の手順は、ポリシールールとルーティングテーブルエントリを追加するのと同じくらい簡単です。

あなたは試すことができます:

ip route add default via 172.17.100.1 table 1000
ip rule add type unicast iif eno2 table 1000 pref 30000

私は172.17.100.1がVPNトンネルのもう一方の端であると仮定します。表では値 1000 を使用しましたが、「vpntunnel」という項目を追加したので、その名前を使用できます。

VPNに私の推奨事項と競合する可能性があるいくつかの構成設定が既に存在している可能性があります。 " ip rule show"と ""の出力はip route show table allこの問題に役立ちます。また、既存のiptables構成を推奨ソリューションに変更する必要があるかもしれません。

関連情報