多宿主 OpenBSD 系统:基于策略的路由与 mpath 默认路由

多宿主 OpenBSD 系统:基于策略的路由与 mpath 默认路由

TL;DR OpenBSD 基于策略的路由是否有助于解决多宿主服务器/网关的情况?如果可以,我该如何配置它?

长表

我正在管理一个具有两个 ISP 链路和通向远程路由节点的 VPN 隧道的 OpenBSD。

最初,我们使用具有不同指标的多个默认路由——首选路由是通过静态 IP 地址 NAT 路由器,而该路由器又具有动态分配的地址(它基本上是一个电缆调制解调器)。

在实践中,这并不理想,但效果还不错。如果网关(以下简称“gw”)处于开启状态,则从网关建立的新连接将选择速度更快、延迟更低的路由;如果链路断开,则通过电缆调制解调器发出。入站连接只能通过更好的路由,因为其他 IP 地址位于 NAT 后面(无法从外部路由)。

现在,我们需要通过“云中”的附加代理/VPN 路由器节点路由流量,以减轻静态 IP 地址上的 DDoS 风险。

它们通过隧道连接到网关。

首先。然后我们发现我们的管理员访问权限会偶尔丢失。

让问题更加复杂的是,该网关有其他活动接口连接到特定 VLAN。它们与此问题无关,但不会受到干扰。

可能的解决方案

我认为我们应该使用基于策略的路由,。我猜这意味着我为涉及的三个接口以及其中任何接口上的任何连接(包括tun0每个隧道接口都应该通过该域的表进行路由(因此每个域都可以有自己的默认路由)。

我走在正确的道路上吗?

以下是界面设置的图表和净化列表:

________
| 隧道 | _______
 ~~~++~~~~ | GW |======++
    | ~+~+~+~ ||                   
    | _________ | | | ||                                        
    +-----|前缀ISP |-------------+ | | __||____ .........               
           ~~~~~~~w~ | +-----| 开关 |-----( 集群 )                           
                                    | ~~~~~~~~ ^^^^^^^^^^           
           _________ .....|...... ||                              
          | fallISP |---------( LAN / WiFi ) ===++
           ~~~~~~~~~ ^^^^^^^^^^^^

    图表:我希望在通过隧道、通过首选 ISP 访问 GW 时以及在访问 GW 或集群(通过 GW 或从 LAN)时避免非对称路由。


 净化后的接口信息:

    em3:inet 123.45.67.118 网络掩码 0xfffffff8 广播 123.45.67.119 描述:prefISP
    em0:inet 10.1.1.100 网络掩码 0xffffff00 广播 10.1.1.255 描述:fallISP
    tun0:inet 192.168.2.2 --> 192.168.2.1 网络掩码 0xffffff00 描述:隧道
    em1:VLAN_TRUNK
          vlan1000:inet 172.29.1.1 网络掩码 0xffffff00 广播

如上所述:em3是我们与首选(更快)ISP 的链接;tun0经历它;em0与办公室 LAN/Wifi 位于同一网段,并作为我们的后备 ISP;GW 与集群和交换机有额外的链接。

答案1

欢迎来到负载平衡的梦想。

这是可能的,但最好的路线和无痛模式是使用 BGP 路由协议并使用策略管理下行和上行流量。

为了成功完成此操作,您必须与两个 ISP 协商,让他们将您作为内部 iBGP 节点,以便您可以将路由路径推送到互联网。

正确的方法是请求您自己的自治系统编号,并管理您拥有的所有 IP。由于要求,这有点复杂。

http://teamarin.net/2014/01/31/how-to-request-an-asn-from-arin/

如果您符合多宿主政策,您将需要提供要使用的外部网关协议、网络上当前使用的 IP 地址、每个上游提供商和/或同行的 AS 编号和名称以及至少其中两个的服务合同验证。

如果您符合独特路由策略的资格,则必须证明 AS 的路由策略与其边界对等体的路由策略不同。

无论您符合哪项政策,如果这不是您第一次申请 ASN,您还需要向我们展示您申请 ASN 的网络如何独立于您网络中的所有现有 AS。

这是一篇关于使用 BGP 进行多宿主的优秀论文:http://aspath.net/BGP-MHing-HOWTO-whitepaper.pdf

如果您不愿意,无法与您的 ISP 创建 BGP 会话,那么另一个解决方案是购买基于硬件的负载平衡器。(从技术上讲,大多数硬件运行一些修改过的 BSD 来实现产品功能。因此,如果您有知识,您可以在运行 BSD 的服务器上进行设置。但您永远不会获得具有专用硬件进行网络处理的硬件设备的吞吐量,但如果您的负载不大(我想说超过 50 Mbps)您可以这样做)

相关内容