多个 ISP、两个路由器和防火墙的负载平衡

网络工程 思科 路由器 思科 故障转移 负载均衡
2021-07-15 01:09:27

我在 Cisco ASA-5515 防火墙前面的两个 Cisco 2901 路由器上有两个 ISP 连接。我需要配置故障转移负载平衡网络。

  • 两个具有双(不同 ISP)连接的 Cisco 2901 路由器。

  • Cisco 2901 路由器后面的一个 Cisco ASA 5515 防火墙。

请建议我如何设计网络,然后配置路由器和防火墙。下面附上示例网络图。不知道这样对不对,请指教。

在此处输入图片说明

3个回答

您可以配置浮动静态路由。这是一种配置两条默认路由的方法,其中一条具有比另一条更高的 AD,以便当一条链路断开时,该路由将被删除,并插入备份以接管。为此,必须将 2901 直接插入防火墙以检测链路已关闭,从而从路由表中删除主要路由。

route outside 0.0.0.0 0.0.0.0 192.168.1.1 1
route outsidebackup 0.0.0.0 0.0.0.0 192.168.2.1 2

PS 在您说的问题中,您使用的是 5505 和 5515,它是哪个?我问的唯一原因是 5505 在命名接口方面可能有一些限制。

注意:之前提到的“浮动静态路由”是的,如所述,这将起作用。但是,如果路由器和 ISP 之间的连接出现故障怎么办?ASA 不会知道这一点,因此流量将在该路由器上丢弃。此外,如果 ISP 出现内部问题并且路由器、链接甚至路由器下一跳到互联网保持正常运行怎么办?同样,ASA 不会知道这一点,然后流量将在该路由器上被丢弃。我建议您在生产网络中避免使用此解决方案。请不要冒犯这一点,只是想提供一些反馈。


丢失的信息:

  1. NAT 将在哪里执行?
  2. 好奇您为什么使用路由器而不是将每个 ISP 直接连接到 ASA
  3. 计划与您的 ISP 运行 BGP

选项 1: ASA 处理故障转移(IP SLA 和浮动静态路由)

以下配置将 IP SLA 设置为 ping 8.8.8.8。然后我们启动 SLA 监视器并将其设置为永远运行。然后我们验证(显示命令)状态显示 OK 并且配置看起来正确。如果状态正常,那么我们添加浮动静态路由(如前面提到的),但我们添加了一个跟踪,这样当我们不能再 ping 8.8.8.8 时,静态路由出来,唯一剩下的默认路由是路由到第二个路由器。下面的配置假设您的 ISP1 的 nameif 在外部,而您的 ISP2 的 nameif 是备份。您必须将 xxxx 和 yyyy 替换为路由器的下一跳 IP。我还假设您想在面向路由器的 ASA 接口上运行动态 NAT。ASA 配置:

sla monitor 99
 type echo protocol ipIcmpEcho 8.8.8.8 interface outside
 num-packets 3
 frequency 10
!
sla monitor schedule 99 life forever start-time now
!
track 99 rtr 99 reachability
!
show run sla monitor
!
show run track
!
show sla monitor operational-state 99 | include operation
!
show sla monitor operational-state 99
!
route outside 0.0.0.0 0.0.0.0 x.x.x.x 1 track 99
route backup 0.0.0.0 0.0.0.0 y.y.y.y 254
!
object network isp1-nat
 subnet a.b.c.0 255.255.255.0
 nat (inside,outside) dynamic interface
!
object network isp2-nat
 subnet a.b.c.0 255.255.255.0
 nat (inside,backup) dynamic interface
!

选项 2: HSRP 和交换机

假设您不打算在 ASA 上进行 NAT,或者您可以在 ASA 和路由器上进行 NAT。我建议选择一个离您要转换的“内部”网络(NAT)最近的地方。

将路由器内部接口和 ASA 的“外部”接口连接到交换机,将这些端口中的每一个放入自己的 VLAN。在路由器上配置 HSRP,并将 ASA 的默认路由指向 HSRP VIP。 注意:GLBP 负载平衡(循环)在此处不起作用,因为源 MAC 地址不会更改,因此您将一直被锁定到其中一台路由器。VRRP 在这里也是可以接受的,无论你喜欢哪个。使用带有 HSRP 的“Track”来跟踪接口,但也设置 IP SLA,就像我们在连接到主要 ISP 的主要路由器上的 ASA 上所做的那样。我还建议调整 HSRP 超时并设置 HSRP 密码以增加安全性。

了解更多: http : //www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipapp/configuration/15-s/iap-15-s-book/iap-eot.html

示例配置:

router1:
interface gi0/0
 description outside
 ip address x.x.x.x x.x.x.x
 ip nat outside
 no shutdown
!
ip sla 99
 icmp-echo 8.8.8.8 source-interface GigabitEthernet0/0
 request-data-size 1
 tos 160
 timeout 2000
 threshold 2000
 frequency 15
 hours-of-statistics-kept 8
!
ip sla schedule 99 life forever start-time now
!
track 99 ip sla 99 reachability
 delay down 40
!
interface gi0/1
 description inside HSRP VIP: a.b.c.1
 ip address a.b.c.11 255.255.255.0
 standby 1 ip a.b.c.1
 standby 1 preempt
 standby 1 priority 105
 standby 1 track 99
 ip nat inside
!
ip access-list standard NAT
 permit a.b.c.0 0.0.0.255
!
ip nat inside source list NAT interface gi0/0 overload


router2:
interface gi0/0
 description outside
 ip address x.x.x.x x.x.x.x
 ip nat outside
 no shutdown
!
interface gi0/1
 description inside HSRP VIP: a.b.c.1
 ip address a.b.c.12 255.255.255.0
 standby 1 ip a.b.c.1
 ip nat inside
 no shutdown
!
ip access-list standard NAT
 permit a.b.c.0 0.0.0.255
!
ip nat inside source list NAT interface gi0/0 overload


ASA config:
route outside 0.0.0.0 0.0.0.0 a.b.c.1 1
!

选项 3:动态路由 Foo

每个人都有不这样做的理由,但这仍然是一种选择。尽管您可以运行其他路由协议,但我认为在这里运行 EIGRP 将是一个可以接受的解决方案。您可以将 2 个路由器和 ASA 连接到交换机并将它们放置在自己的 VLAN 中。然后您可以启动 EIGRP,将默认路由从两个路由器通告到 ASA,您将拥有冗余路径(负载平衡)。但是,这种情况下的负载平衡可能会产生不良结果,因此只需调整 ISP2 路由器上的指标(带宽或延迟)即可。我不打算为此编写配置,因为它很简单。


结束语: 我不相信只有一个正确的答案,但是有多种选择可以完成您想要的任务。我会查看选项并权衡利弊。此外,您始终可以还原更改并调整内容,以使它们按您想要的方式工作。我还建议看看强化这些路由器。本指南很旧,但过去曾多次帮助过我。您可能需要将一些命令转换为较新版本的 IOS,但仍然可以在这里阅读:http : //www.sans.org/reading-room/whitepapers/firewalls/cisco-router-hardening-step-by-step-794

祝你网络愉快!

如果您的交换机是第 3 层交换机,则可以通过子网或 vlan 或您可以使用 ACL 想到的任何标准来完成负载平衡。只需匹配流量并将路由映射应用于策略路由所述流量分别通过与 ISP1 和 ISP2 对应的 2901。

如果交换机仅为第 2 层,请将防火墙移至 2901 的另一侧,并使 2901 成为每个 VLAN/子网的默认网关。然后,您可以对每个 VLAN 的 ISP 进行负载平衡。