在多组 ISP 之间迁移时克服非对称路由

ful*_*top 5 routing bgp cisco-asa policy-routing

我们正在从一组地址迁移到另一组地址,均为 /24,并尝试将迁移期间的任何停机时间降至最低。理想情况下,当我们关闭旧电路时,我们会同时运行一段时间。共有 4 个 Internet 连接,每对都运行 BGP。

然后将其中的每一个路由到 Cisco ASA,该 ASA 连接到交换机,该交换机在该子网上连接了多个服务器。

网络图

在上图中,左侧部分是今天存在的部分,我希望添加右侧部分。

我已经连接了 ASA 并且它们都在 10.20.20.0/24 子网上,第一个 ASA 接口为 10.20.20.1,第二个 ASA 接口为 10.20.20.254。

这里的问题是所有服务器都将 10.20.20.1 作为默认路由,我真的很想将流量路由回它进来的方式。也就是说,互联网 -> ASA #2 -> 服务器 -> 返回ASA #2。当然,就像今天一样,它将响应发送回 ASA #1,并且没有找到它的翻译。

我会以错误的方式解决这个问题吗?

编辑:我应该提到外 #1 和外 #2 有不同的公共 /24 网络。我们正在从 ISP 提供的块迁移到我们自己的块。

ful*_*top 0

这就是我最终所做的:

#!/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
Run Code Online (Sandbox Code Playgroud)

MAC_ASA1/替换MAC_ASA2为 ASA 上已连接接口的硬件地址。这可以从 ARP 表中收集。

您还必须注意以太网设备名称,特别是当您使用带有较新样式接口名称的 systemd 时。