web-dev-qa-db-ja.com

ISPのセット間で移行しながら、非対称ルーティングを克服します

あるセットのアドレスから別のセット(両方とも/ 24)に移行し、移行中のダウンタイムを最小限に抑えようとしています。理想的には、古い回路をシャットダウンするときに、両方を一定期間実行します。合計4つのインターネット接続があり、各ペアはBGPを実行しています。

次に、これらはそれぞれCisco ASAにルーティングされます。CiscoASAは、そのサブネットに複数のサーバが接続されているスイッチに接続されています。

Netowrk-Diagram

上の図では、左側が現在の部分であり、右側を追加したいと考えています。

ASAを接続し、両方を10.20.20.0/24サブネット上に配置し、最初のASAインターフェイスを10.20.20.1、2番目のASAインターフェイスを10.20.20.254としました。

ここでの問題は、すべてのサーバーのデフォルトルートが10.20.20.1であるため、トラフィックを受信した方法にルーティングしたいということです。つまり、インターネット-> ASA#2->サーバー->に戻るASA#2。もちろん、今日のように、応答をASA#1に送り返しますが、その翻訳は見つかりません。

私はこれについて間違った方法で行っていますか?

編集:外部#1と外部#2は異なるパブリック/ 24ネットワークを持っていることに言及する必要があります。 ISPが提供するブロックから独自のブロックに移行しています。

5
fullstop

これは私がやったことです:

#!/bin/sh
echo 200 asa1 >> /etc/iproute2/rt_tables
echo 201 asa2 >> /etc/iproute2/rt_tables
ip route add table asa1 default via 10.20.20.1 dev eth0 metric 100
ip route add table asa2 default via 10.20.20.254 dev eth0 metric 100
ip rule add prio 100 from all fwmark 1 lookup asa1
ip rule add prio 110 from all fwmark 2 lookup asa2
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
iptables -t mangle -A INPUT -m mac --mac-source $(MAC_ASA1) -j MARK set-mark 1
iptables -t mangle -A INPUT -m mac --mac-source $(MAC_ASA2) -j MARK --set-mark 2
iptables -t mangle -A INPUT -j CONNMARK --save-mark

MAC_ASA1/MAC_ASA2を、ASAに接続されているインターフェイスのハードウェアアドレスに置き換えます。これは、ARPテーブルから収集できます。

特に、新しいスタイルのインターフェイス名でsystemdを使用している場合は、イーサネットデバイス名にも注意する必要があります。

0
fullstop