在我的公司,我们有一个运行 BGP 的 Cisco 3925sec/k9 路由器,与 2 个 ISP 建立连接。现在我们想购买一个相同型号的冗余路由器,以消除单点故障。
我可以毫无问题地在路由器和 ISP 之间设置 BGP。我们计划通过 ISP A 发送所有流量,并通过 ISP B 接收所有流量(ISP 只向我们发送默认网关,我们可以尝试使用 as-prepends 和 local_pref 属性来实现这一点)。
所以我的问题是,最好的解决方案是什么,以确保我同时在两个路由器上保持静态 NAT 和状态防火墙规则(不是 ZBF)的状态?同样,我希望流量通过 ISP A 离开并通过 ISP B 返回。
这是否可能,或者您认为最好购买一对具有 Active/Active 支持的 ASA 5500 系列并在它们上进行 NAT 和检查?
答案1
我很好奇你为什么要故意强制使用这种非对称路由?大多数解决方案都是基于使用 HSRP 跟踪来确定哪个路由器正在主动处理 NAT/防火墙规则,并假设同一个路由器同时看到出站和入站流量。让我来试验一下你建议的路由,看看备用路由器是否真的会为活动路由器发起的请求提供服务。
与此同时,您想要的功能在 IOS 中肯定是可用的。ASA 对的设计更适合于执行您想要的操作,但根据您对规则的控制程度,IOS 可能符合要求。
某物像这样应该可以跟踪您的 NAT 状态。它来自 CCIE 学习供应商,但解释得相当清楚。
另请参阅 Cisco 的文档IOS 防火墙状态故障转移。神奇的命令是......
(config-if) ip inspect <cbac-name> {in | out} redundancy stateful <hsrp-name>
编辑:我在 GNS3 中对此进行了实验,结果好坏参半。简而言之,NAT 可以正常工作。但是 CBAC 不行。
您可以使用冗余 NAT 在两个路由器之间共享状态,从而允许在“出口”路由器上创建的状态在“入口”路由器上创建相同的状态。这些状态处于活动状态,可以正常工作。
ip nat Stateful id <unique-router-num>
redundancy <hsrp-name>
mapping-id <mapping-id>
ip nat inside source list <acl> pool <pool> mapping-id <mapping-id> overload
然而,CBAC 将会成为一个更大的问题。您可以在两个路由器之间设置 IPC,并让它们共享状态。
redundancy inter-device
scheme standby <hsrp-name>
<reboot required>
ipc zone default
association 1 //only 1 is supported
protocol sctp
local-port <port-num>
local-ip <my-ip>
remote-port <port-num>
remote-ip <my-ip>
interface <WAN interface>
ip access-group <acl> in
ip inspect <inspect-name> out redundancy stateful <hsrp-name>
但是这种方法也存在一些主要问题...
- 这些状态在设备之间共享,但仅在 HSRP 活动设备上处于活动状态
- 当发生故障转移时,旧的活动设备强制重新加载
所以是的,CBAC 确实支持一些冗余,但对于您的情况来说,它几乎没用。您确定不能使用 ZBF 吗?基于区域的策略防火墙高可用性@Cisco.com
我仍然很好奇为什么您需要这种强制非对称路由,因为这会阻止您使用 CBAC。