Routing
在 ISP 集之間遷移時克服不對稱路由
我們正在從一組地址遷移到另一組地址,均為 /24,並試圖在遷移過程中盡量減少停機時間。理想情況下,我們會在關閉舊電路時同時執行一段時間。共有 4 個網際網路連接,每對都執行 BGP。
然後將其中的每一個路由到一個 Cisco ASA,該 ASA 連接到一個交換機,該交換機在該子網上連接了多個伺服器。
在上圖中,左側部分是今天存在的部分,我希望添加右側部分。
我已連接 ASA 並將它們都放在 10.20.20.0/24 子網上,第一個 ASA 介面為 10.20.20.1,第二個 ASA 介面為 10.20.20.254。
這裡的問題是所有伺服器都將 10.20.20.1 作為預設路由,我真的很想將流量路由回它進入的方式。也就是說,internet -> ASA #2 -> server -> back to ASA #2。當然,就像今天一樣,它會將響應發送回 ASA #1,但它沒有找到它的翻譯。
我會以錯誤的方式解決這個問題嗎?
編輯:我應該提到Outside #1 和Outside #2 有不同的公共/24 網路。我們正在從 ISP 提供的區塊遷移到我們自己的區塊。
這就是我最終做的事情:
#!/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 時。