web-dev-qa-db-ja.com

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

インターネットにアクセスするためのゲートウェイが2つあります。これまでのところ、負荷分散を行いたいのですが、一部の接続またはサービスでは永続的なゲートウェイIPを使用する必要があるため、クライアントが宛先に接続した後はゲートウェイを変更しないでください。私の現在の実装は、ラウンドロビンまたはそれが何であれのようです。

これは私のiprouteです

...
...
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を使用して修正できますか?ルート?

*ここではeth0という1つのアウトバウンドインターフェイスしかないことに注意してください。

6
uray

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

コマンドラインでは、次のようになります(テストされていませんが、機能するはずです)

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

ルーティングテーブル200に「ssh」という名前を付けます。ブーツ間で保存されます。

1