ショアウォールファイアウォールを使用していて、複数のISPソースを正常に構成できました。
現在、両方のISPへのすべてのトラフィックのバランスを取ります。私が達成したいのは、sshトラフィックをISP1にルーティングし、wwwトラフィックをISP2にルーティングすることです。これどうやってするの?
複数のルートテーブルを作成する必要があると思います。 1つは通常のトラフィック用のデフォルトで、次の1つは使用するISP接続専用のルートエントリを含む特別なSSHテーブルです。
次に、IPテーブルとリスニングSSHポートからのパケットをマークするようにiptablesを設定します。
最後に、ファイアウォールマークに基づいてルーティングするようにIPルールエントリを設定できます。
LARTCのドキュメントにはたくさんの情報があります(しかし、すでにこれまでのところ見ているかもしれません): http://lartc.org/howto/lartc.rpdb.html
したがって、例として:
名前を付けて新しいルーティングテーブルを追加します。
echo SSH 500 >>/etc/iproute2/rt_tables
正しいことを実行する別のルーティングテーブルにデフォルトルートを追加します。
ip route add default via $ISP2_GW table SSH
Fwmarkがこの新しいテーブルを使用するようにルールを設定します。
ip rule add fwmark 0x0001 table SSH
最後に、パケットをマークするためのiptablesルールを設定します。
iptables -I PREROUTING -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001
iptables -I OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 0x0001
それはうまくいけばあなたが正しく欲しいものをセットアップするはずです。また、この構成が再起動後も存続することを確認する必要があります。しかし、私はそれをあなたに練習として任せます。