在freebsd上使用openbgpd时对出站流量进行负载平衡


8

我在带有2个ISP连接的freeBSD中使用openbgpd。我有自己的AS号码和/ 22网络。目前,我正在向两个网络宣传整个/ 22。进站流量进入,但我的出站流量通过单个链接。

我想通过两个链接分配我的出站流量,以便也可以平衡出站流量。

如何在freebsd中使用openbgpd配置它?

附上我当前的openbgpd配置以供参考。

AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
  remote-as 11remoteas-1
  neighbor bb.bb.bb.1 {
   descr "ISP1"
   announce all  
  }
}
group "ISP2" {
  remote-as 22remoteas-2
  neighbor cc.cc.cc.37 {
   descr "ISP2"
   announce all  
  }
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37

Answers:


2

我已经多年没有使用过openbgpd了,因此,我将为您提供一些可以应用于您的配置的理论。

供应商可以向您发送路线。通常,他们将发送“默认”,“客户”或“完整”。默认路由就是这样,即向您宣布0.0.0.0/0,您知道通过它们达到0.0.0.0/0(任何IP)。您的情况听起来像是两个提供商都在为您提供一条默认路由,最有可能的是,具有较低ASN的提供商正在获取所有流量(当数据包可以到达多个目的地并且AS路径相等时,ASN是决胜局。长度等)。

一个“客户”提要会让他们宣布与他们直接相连的每条路线。如果您拥有像Level3这样的提供商,则可能会通过此供稿看到一半的互联网。如果您的其他提供商的ASN较低,则他们将获得未直接连接到对等端的任何流量,从而宣布其到达您的客户路线。

“完整”提要将为提供商知道如何到达的每个站点提供路由通告,而不仅仅是直接连接的站点。

您应该能够执行以下操作:

显示ip bgp摘要(IOS命令)

其中应列出某处收到的前缀数量。

如果两个现有提供商都向您发送默认路由,则当前已建立您的连接以进行故障转移。提供商A掉线,然后您将路由到提供商B。如果您从这两个提供商中获取客户供稿以及默认路由,则流量将流到具有到达指定地址的最短ASpath的提供商,并且会回退到默认地址路由,如果找不到地址。如果您从这两个提供商那里获得了完整的Feed,则取决于提供商之间的重叠情况,您可以将流量从“最佳”路径发送到每个提供商。

在我们的其中一个边界路由器上,我显示了310540个活动路由,请确保您有足够的RAM,并且配置了计算机以处理来自两个提供商的路由(如果您采用完整的路由)。您可能会尝试从这两者获取客户路线,直到您感到更舒适为止。或从两者中较小的提供商那里获取客户路线,然后看情况如何变化。

这仍然不会根据负载量“负载均衡”或平均分配流量。您可能会发现,一个提供商仍然获得最大份额的流量。此时,您需要做一些前缀/路由映射,以调整流量以偏向一个或另一个对等端。

一旦设置了路由映射或ASN匹配以转移流量,如果目标站点断开,并且其路由已从该提供程序中删除,您的路由器仍会将流量发送到其他连接。BGP具有自我修复功能。

我们要做的是定义了一些基于ASN匹配的地图。

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

与使用社区相比,瞻博网络使此操作变得更容易,但是您可以选择两者之一。

我们的前缀列表可查看目的地是否为特定的ASN,如果是,则通过_TO映射。如果ASN在_THROUGH中列出,则它将首选该提供程序。由于我们的提供商之一直接连接到AT&T,因此PROVIDER_B_THROUGH在7018 | 7019(以及其他一些ASN)上进行匹配,因此AT&T流量默认为提供商B。即使AT&T可以从两者访问,我们还是希望通过提供商B发送。

我确定openbgpd具有类似的方法。


3

BGP不是负载平衡协议。

让我重复一遍,BGP 不是负载平衡协议。

如果所有流量都通过单个连接流出,我的第一个猜测是您没有从提供商那里获得完整的供稿,而该供稿将被忽略。路由的方式是优先级更高的特定路由,因此,如果您有通往供应商a的192.168.0.0/23路由,以及通往供应商b的192.168.0.0/24和192.168.1.0/24的两条路由一个将被完全忽略。我对OpenBGP不熟悉。因此,我无法不告诉您如何验证某些内容的细节。但是,您需要做的第一件事就是验证两个提供商都在为您提供完整的Feed,而不仅仅是默认路由。

如果是这种情况,那么您需要研究出站流量的路由首选项和入站流量的路径填充。确保在两次配置更改之间等待二十四至四十八小时,以确保您拥有足够大的数据集来确定更改的有效性。


1

建一座桥。Freebsd实际上将在当前前缀的上游功能上实现负载平衡,并且将很好地实现负载平衡。BGP不会。您可以安装两个上游ISP,并根据您的/ 22向两个ISP通告,并且可能会拒绝您的/ 30 wan前缀,但iBGP会选择。iBGP将在网桥上运行良好,因此不需要OSPF。现在,您有了一个负载均衡器和完全冗余的BGP设置。我们有几个,并喜欢他们在与Internet的演出链接上。


1

首先要检查的是两个BGP会话是否都在正常工作。采用

bgpctl显示摘要

并查看您是否与两个对等方交换消息。

并且除非您希望您的对等方通过您路由他们的流量,否则应删除“全部通告”;通常相反;

Juste删除所有公告,您应该会好的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.