web-dev-qa-db-ja.com

ポリシーベースのルーティング

http://www.diegolima.org/wordpress/?p=36 ..で、負荷分散に関する非常に優れた記事を見つけました。要件が純粋な負荷分散とは少し異なるため、実装できませんでした。 。

2つのISP接続があります。これらのルーターの両方をそれぞれeth0(public ip 121.XXX.XX.XXX)とeth1(192.168.129.XXX)のLinuxサーバーに接続し、内部ネットワークはeth2(192.168.1.XXX)にあります。

FTPはeth1インターフェースを使用し、Squidはeth0を使用し、Sendmailはeth0を使用し、一部のユーザーはeth0を使用し、他のユーザーはeth1を使用することにしました。

誰かがそれが可能かどうかを知ることができます、どうすればiptablesとiproute2を使用してこれを達成できますか?ステップバイステップのヘルプは高く評価されています。前もって感謝します。

5
Silkograph

IPROUTE2を構成する

echo "4        sendmail" >> /etc/iproute2/rt_tables
ip route add 121.XXX.XX.XXX/MASK dev eth0 src 121.XXX.XX.XXX table sendmail
ip route add 192.168.1.XXX/24 dev eth2 table sendmail
ip route add default via GATEWAY1 table sendmail
ip ru add from 121.XXX.XX.XXX lookup sendmail
ip ru add fwmark 2 table sendmail
ip route flush cache

IPTABLESを構成する

iptables -t mangle -I OUTPUT -p tcp --dport 25 -j MARK --set-mark 0x2
iptables -t mangle -I PREROUTING -i eth2 -p tcp --dport 25 -j MARK --set-mark 0x2

iptables -t nat -I POSTROUTING -s 192.168.1.XXX/24 -o eth0 -j SNAT --to-source 121.XXX.XX.XXX
3
topdog

私はshorewallを使って同じようなことをしました。
すべては、パケットのマーキングとフィルタリング、およびそれらへのいくつかのルールの適用に基づいています。すべてはlarchowtで説明する必要があります: http://lartc.org/howto/index.html プロセスは次のようになります(私は何かを読み直さなければなりません、私は数ヶ月前にそれをしました)::

  • パケットは内部ネットから来ます

  • netfilterはトラフィックにいくつかのマークを適用します

  • マークに基づくルールは、適切なデバイスを介してパケットをルーティングします

0
PiL