同一设备之间通过双 ISP(具有 2 对 Cisco ASA)的并发站点到站点 VPN 隧道

网络工程 思科 路由 思科-ASA 虚拟专用网 纳特
2022-03-04 01:30:32

我目前有一个简单的站点到站点 VPN 设置,使用一组 ASA 5506X 通过 1 个 ISP 将机器从站点 1 连接到站点 2。一切都很好。

我想将该设置“加倍”以实现冗余:

  • 2 个互联网服务提供商
  • 2套2个ASA
  • 两条隧道同时向上
  • 站点 1 和 2 上的机器可以同时使用两条隧道

我觉得这主要是一个 NAT 问题,我有点困惑

在此处输入图像描述

我希望能够通过选择不同的 IP 地址从 PC 连接到服务器(在 ping 或 ssh 或我 PC 上的任何客户端/服务器应用程序中)来“选择”要使用的隧道。我基本上会连接到同一台服务器,但根据我指向的 IP,我会使用隧道 A 或隧道 B。

目前我在 PC 上有一条静态路由,可以使用 10.10.10.100 访问 192.168.10.1

理想情况下,我会:

  • 为服务器定义另一个目标 IP(比如 192.168.20.1)
  • 在 PC 上添加一条路线以使用 10.10.10.200 到达那里
  • 在接收 ASA 上添加一些 NAT 以指向 192.168.10.1

那行得通吗?我觉得我错过了什么...

SERVER 是否能够使用相同的 Tunnel 进行回复?

我将不胜感激对此的任何见解,谢谢

2个回答

您正在创建非对称路由情况。目的地可能不同,但来源相同,因此返回流量将始终流经相同(“默认”)隧道。

解决这个问题的一种方法是做“两次 nat”;重写源和目标。这不一定要发生在同一个 ASA 上,但通常更符合逻辑。(即所有“出错”的地方)这看起来很像标准的“家庭网络”NAT,其中内部 LAN 看起来像外部的单个地址,但更巧妙的 1:1 网络转换也可以。(例如 192.168.101.0/24 <-> 192.168.201.0/24)

[我以前有过一次这种双重重写,它总是让所有参与的人感到困惑。我网络中的 src:dst 与其他网络中的完全不同。]

此外,如果您在已描绘交换机的位置添加路由器,ECMP(以及基于流的路由缓存以避免不对称和每个数据包链路选择的混乱)可以负载平衡隧道之间的流量,就好像它们是直接链路一样。不需要任何 NAT 欺骗,也无需更改任何内容来选择一条路径或另一条路径。(当然,这假设路径是相等的 cost。如果一个是 20 毫秒,另一个是 100 毫秒,那就不那么相等了。)

帮自己一个忙,不要在不需要的地方使用 NAT。您正在私有地址区域之间建立隧道,并且没有地址冲突,因此无需使用 NAT 使事情复杂化。

透明路由后,您只需在网络之间获得两条路径。我会使用回退策略路由。ECMP 需要会话跟踪和粘性来防止乱序数据包。