私はネットワーキングに関して特別な能力を持っていないので、私のニーズを説明するために最善を尽くします。 Linuxラップトップで、StrongSwan(NetworkManagerを使用)を実行して、IPsecを使用して特定のVPNに接続しています。このVPNを使用すると、この種のIPにアクセスできます10.*.*.*
。
さて、私の問題は、VPNを実行すると、すべてのトラフィックがVPNを通過するが、それらのIPにアドレス指定されたパケットのみをVPNにルーティングしたいということです(10.*.*.*
)。
どうすればいいですか?誰かが私に簡単なガイドを提供したり、必要な構成とそれらを適用する方法を共有したりできますか?
strongSwanのNetworkManagerプラグインは現在、提案されたトラフィックセレクター(トンネリングされるトラフィックを決定する)の変更を許可していません。したがって、常にすべてをトンネリングすることを提案し、サーバーがトラフィックセレクター(以下を参照)を絞り込まない限り、それがネゴシエートされます。
これを回避するための可能な方法:
charon-nmデーモンがルーティングテーブル220に独自のルートをインストールしないようにする(strongswan.confのcharon-nm.install_routesオプションを使用)か、ルーティングテーブル220をクリアします。接続が確立されました。次に、手動またはNMスクリプト(/etc/NetworkManager/dispatcher.d
内、 ここのドキュメント を参照)を介して、トンネリングするサブネットにのみ特定のルートをインストールします。例えば:
ip route add 10.0.0.0/8 dev <outbound interface> src <virtual IP> table 220
仮想IPアドレスをログまたはip addr
を介して(またはスクリプト内で環境変数を介して)決定する必要がある場合。ルートの自動インストールを無効にしない場合は、既存のルートから仮想IPを取得して、後で削除することもできます。
@ecdsaの回答の完全性に感謝します。
私はネットワーキングの初心者であり、些細なことでしたが、ソリューションの実装に非常に苦労しました。
次のソリューションは4番目の提案を採用し、次の手順を必要とします。
次のコマンドを実行して、NetworkManagerから作成されたルートを検出します
user@laptop:~$ ip route list table 220
default via 192.168.1.1 dev enp0s31f6 proto static src 172.26.199.15
インターフェイス(enp0s31f6)と仮想IP(172.26.199.15)に注意してください
次のコマンドを使用して、カスタムルートを使用するため、現在のルートをフラッシュします。
Sudo ip route flush table 220
次のコマンドを使用してカスタムルートを追加します
Sudo ip route add 10.0.0.0/8 dev enp0s31f6 via 172.26.199.15 table 220
これで、10.0.0.0/8にアドレス指定されたパケットのみがVPNを介してルーティングされます。