web-dev-qa-db-ja.com

マルチISP構成のポートによるルーティング

ショアウォールファイアウォールを使用していて、複数のISPソースを正常に構成できました。

現在、両方のISPへのすべてのトラフィックのバランスを取ります。私が達成したいのは、sshトラフィックをISP1にルーティングし、wwwトラフィックをISP2にルーティングすることです。これどうやってするの?

2
Ianpogi5

複数のルートテーブルを作成する必要があると思います。 1つは通常のトラフィック用のデフォルトで、次の1つは使用するISP接続専用のルートエントリを含む特別なSSHテーブルです。

次に、IPテーブルとリスニングSSHポートからのパケットをマークするようにiptablesを設定します。

最後に、ファイアウォールマークに基づいてルーティングするようにIPルールエントリを設定できます。

LARTCのドキュメントにはたくさんの情報があります(しかし、すでにこれまでのところ見ているかもしれません): http://lartc.org/howto/lartc.rpdb.html

したがって、例として:

  1. 名前を付けて新しいルーティングテーブルを追加します。

    echo SSH 500 >>/etc/iproute2/rt_tables
    
  2. 正しいことを実行する別のルーティングテーブルにデフォルトルートを追加します。

    ip route add default via $ISP2_GW table SSH 
    
  3. Fwmarkがこの新しいテーブルを使用するようにルールを設定します。

    ip rule add fwmark 0x0001 table SSH
    
  4. 最後に、パケットをマークするための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
    

それはうまくいけばあなたが正しく欲しいものをセットアップするはずです。また、この構成が再起動後も存続することを確認する必要があります。しかし、私はそれをあなたに練習として任せます。

2
Matthew Ife