特定のソースポートへのマルチゲートウェイルーティング

特定のソースポートへのマルチゲートウェイルーティング

インターネットにアクセスするための2つのゲートウェイがあり、何とかロードバランシングをしたいと思います。これまでは機能しますが、一部の接続またはサービスでは永続ゲートウェイIPを使用する必要があるため、クライアントが接続された後はそれを変更しないでください。ターゲットゲートウェイ。 、現在の実装はラウンドロビンのように見えます。

これは私のアイプロットです。

...
...
default
    nexthop via 192.168.1.1 dev eth0 weight 1
    nexthop via 192.168.1.2 dev eth0 weight 1

今何とか問題を解決したいと思います。たとえば、ソースポートを使用して、クライアントが使用するゲートウェイが事前に決定されています。ソースポートが偶数の場合はgw.1を使用し、奇数の場合はgw.1を使用してip Routeを使用してこれを実行しますか?

*ここにはアウトバウンドインターフェイスが1つしかありません(eth0)。

答え1

タグ付きパケットでポリシー ルーティングを使用します。どの構成形式かはわかりませんが、ディストリビューションで確認する必要があります。

コマンドラインで次のようにする必要があります(テストされていませんが機能する必要があります)。

iptables -A PREROUTING -t mangle -p tcp --dport 22 --set-mark 0x1 -j CONNMARK
echo "200 ssh" >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table ssh
ip route add default dev eth0 via 192.168.1.2 table ssh

編集する:ワイヤー

echo "200 ssh" >> /etc/iproute2/rt_tables

「ssh」という名前のルーティングテーブル200の名前を指定する。ブーツの間に保管されます。

関連情報