具有两个 ISP 的双归属站点的最佳实践?

网络工程 ipv6 路由
2021-07-05 16:49:38

我订阅了两个 ISP,一个快速昂贵的一个和一个便宜但速度慢的一个。他们使用不同的技术、电缆和 ADSL,所以没有太多的单点故障,而且我所有的通信设备都由 UPS 供电。

英国的 ISP 以相当随机的模式下降。多年来,我从未遇到过我的两个 ISP 都同时宕机的情况,所以如果您想在这里不间断地访问网络,那么两个 ISP 策略显然很有帮助。

然而,问题是如何组织站点的网络以利用这种改进的可用性。许多 ISP 不允许您运行自己的 AS 和路由协议,因此您大多坚持按目的地在两个出口管道上拆分静态路由。这并不出色,当一个 ISP 掉线时需要手动干预。在众多脚本的帮助下,我以合理的成功和不费力的方式处理了 ISP 中断,并且一切照旧。不过也不是很好。感觉好像缺少了一些技术。

  1. 一般有没有更好的方法?
  2. 是否有仅适用于 IPv6 的更好方法(我在一个 ISP 上有双堆栈,并且可以在另一个 ISP 上建立隧道)?这对 IPv6 来说是一个明显的好处。
4个回答

你有什么样的设备连接到供应商?如果它是 Cisco 设备,您可以使用 IP SLA 通过主 ISP ping 8.8.8.8 等目的地。一旦您没有收到到另一个静态路由的回复故障转移。示例配置:

! ISP1
ip route 0.0.0.0 0.0.0.0 x.x.x.x track 1
! ISP2
ip route 0.0.0.0 0.0.0.0 y.y.y.y 250
ip sla 1
icmp-echo 8.8.8.8 source-interface <ISP1_interface>
frequency 3
timeout 1000
ip sla schedule 1 life forever start-time now

您可能需要通过 ISP1 为 8.8.8.8 放置一条静态路由,以使其始终退出该路径。显然,如果您真的使用 8.8.8.8,请选择另一个 IP,否则如果 ISP1 出现故障,您将无法访问它。

!x.x.x.x is next-hop to ISP1
ip route 8.8.8.8 255.255.255.255 x.x.x.x

您可能想要调查是否有可用LISP提供程序。LISP 是一种协议,可以使站点独立于它所连接的上游 ISP。您从 LISP ISP 获得一个或多个 IP 地址,他们会将它们路由到您连接的任何地方。这是一种隧道技术,但具有许多很酷的功能。您可以控制链路上的入站和出站负载平衡,您可以执行 IPv6 多宿主,而无需求助于 NPT66(前缀转换)之类的技巧。您甚至可以在不更改 IP 地址的情况下移动到地球的另一端 ;-)

我自己使用 LISP,我的办公室网络有一个 /26 IPv4 块和一个独立于上游的 IPv6 地址块(一个带有一个动态 IPv4 地址的 UPC 电缆连接和一个带有静态 IPv4 地址的 Solcon DSL 连接)和 IPv6 地址的静态块)。Cisco 1841 在办公室运行 LISP,并使用任何可用的链接连接到 Internet 的其余部分。只要一个链接有效,我的办公室就会使用自己的地址连接。

完全披露:我在荷兰运行我自己的基于 LISP 的 ISP,所以我有偏见。LISP 仍然是一个很酷的协议 :-)

在具有提供商聚合地址的 IPv6 多宿主中,网络中的每个主机将从每个提供商处获得一个地址前缀。主机堆栈/应用程序的源地址选择 (RFC6724) 和 SA/DA 对的选择 (RFC6555) 决定使用哪个出口。

即主机/应用程序对源地址的选择选择使用哪个退出链接。各种实现以各种方式做到这一点,目前没有一个做得很好。

网络使用源地址相关路由将流量转发到正确的出口。(否则 BCP38(入口过滤)会丢弃使用 ISP B 的源地址发送到 ISP A 的数据包)。请参阅https://datatracker.ietf.org/doc/html/draft-troan-homenet-sadr-01 我们在 OpenWRT 中有一个实现。但它也可以在任何支持基于策略的路由的路由器上很好地实现。

应用程序应该足够智能以在当前连接失败时更改连接(选择另一个 SA/DA 对)。不是。同时,我们的建议是将故障链接地址前缀的生命周期设置为 0,这意味着新连接将不会使用该地址。

一季度。您可以安装支持多宿主的路由器/防火墙。在免费软件方面,pfSense 符合要求。http://www.pfsense.org/pfSense 文档将此称为多 WAN。http://doc.pfsense.org/index.php/Multi-WAN_2.0

有用的是,pfSense 具有自动故障转移和负载平衡功能。

我发现当您是多宿主时,少数网络应用程序不起作用。网络应用程序通常是金融网站,如银行。出于某种原因,Web 应用程序程序员有时认为基于 IP 地址测试安全性是可以的。对于需要此访问权限的用户,您可以为他们的计算机保留一个 IP 地址,并在 pfSense 中创建“LAN 规则”以始终使用某个网关而不是另一个用于该 IP 地址的网关。

我发现这对于电缆调制解调器和 ADSL 调制解调器的组合非常有效。

Q2。没有理由说明多宿主在 IPv6 和 IPv4 中都不起作用。也就是说,pfSense 没有完全支持的版本可以正确处理 IPv6。pfSense 的当前版本是 2.0x。一旦 2.1 发布,pfSense 将拥有良好的 IPv6 支持,并将包括多宿主。