宛先ネットワークを介して別のゲートウェイからトラフィックをルーティングします。

宛先ネットワークを介して別のゲートウェイからトラフィックをルーティングします。

複数のゲートウェイがあり、宛先に応じて異なるゲートウェイからいくつかのトラフィックをルーティングしようとしています。 iproute2とiptablesルールを一緒に使用する必要があるようですが、どこから始めるべきかわかりません。
誰でも例をあげることができますか?

答え1

あなたはおそらくあなたが望むことをすることができますip route

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0

最初はip route add単一のIPアドレスを示し、指定されたイーサネットインターフェイス(ep3s8)をネクストホップルータ10.0.0.1に送信します。

2 番目のパスはネットワーク 10.xyz 全体で、指定されたイーサネット カード eth0 に転送されます。これは「ローカルネットワーク」で、ネクストホップルータはなく、すべて同じ論理ラインにあります。

しかし、何かをする前にまず読んでみたいと思いますman ip-route。また、再起動する準備をしてリモートで再起動しないでください。リモートアクセスを終了する間違ったパスを簡単に作成できます。私はこの最後のアドバイスで経験の声を表明します。

答え2

policy-based routingまたはについてお問い合わせいただきましたsource-based routing。持つ良い紹介著者: David Schwartz、のようなウェブサイト。

きちんとした小さなプログラムもあることを指摘したいです。ここで見つけることができます、特定のアプリケーションを特定のインターフェイスにバインドできます。もちろん、これは目的の受信アドレスにバインドするオプションを持つopensshなどのアプリケーションにとっては簡単です。ただし、このライブラリを使用すると、オプションがないアプリケーション(Firefoxなど)も指定されたIPアドレスにバインドできます。

これにより、すべてのアプリケーションに対して個別のルーティングテーブルを持つか、アプリケーションごとに同じ仕様を上書きするかを選択できます。

答え3

ソースベースのルーティングについて読むのに最適な場所は次のとおりです。Linux 高度なルーティングとトラフィック制御
コマンドラインからドキュメントを読むこともできます。

man ip rule
man ip route

man ip-rule注:一部のシステムでは、およびを実行する必要がありますman ip-route。あるいは、オンラインで読むこともできます。 ルール そして  路線。警告:オンライン版はそうではないかもしれませんまったく同じ システムのバージョンに合わせて。

通常、ルールを追加する必要があります。例では、インターフェース(eth1)を指定しました。これはオプションなので省略できます。

# ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000

分解:

  • dev eth1   – パケットを送信するために使用されるデバイス
  • to 170.10.0.10- 目的地
  • table 2    – パスを追加するテーブル
  • priority 20000– ルールの優先順位

次のコマンドを実行してルールを表示できます。

# ip ru sh
0:     from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default

次に、パスを追加し、パスを追加するテーブルを指定する必要があります。この場合は表2になります。

# ip route add table 2 via 170.10.0.1 default

パスを表示するには、以下を実行する必要があります。

# ip route show ta 2

関連情報