首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在freebsd上使用openbgpd时负载平衡出站流量

问在freebsd上使用openbgpd时负载平衡出站流量
EN

Server Fault用户
提问于 2010-03-03 16:25:16
回答 4查看 3.3K关注 0票数 8

我使用openbgpd在freeBSD与两个ISP连接。我有自己的号码和一个/22网络。目前,我正在两个网络上为整个/22做广告。入站流量进来,但我的出站流量通过一个链接。

我想要么通过两个链接分发我的出站流量,这样出站流量也是负载平衡的。

如何在freebsd中使用openbgpd进行配置?

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

代码语言:javascript
复制
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
EN

回答 4

Server Fault用户

回答已采纳

发布于 2010-03-20 17:41:52

我已经几年没有使用openbgpd了,所以,我将给您一些理论,您可以应用于您的配置。

提供商可以向您发送路由。通常,它们会发送“默认”、“客户”或“完整”。默认路由就是向您宣布0.0.0.0/0,您知道通过它们达到0.0.0.0/0 (任何IP)。您的情况听起来像是两个提供商都在为您提供默认路由,而ASN较低的提供商很可能获得了所有流量(ASN是当数据包可以到达多个目的地且AS路径长度相等时,ASN是平局者)。

一个‘客户’的提要会让他们宣布每条直接连接到他们的路线。如果你有一个像Level3这样的提供商,你可能会通过这个提要看到一半的互联网。如果您的另一个供应商有一个较低的ASN,他们将获得任何流量,没有直接连接到同行宣布他们的客户路线给你。

“完整”提要将为供应商知道如何到达的每个站点发布路由公告--而不仅仅是那些直接连接的站点。

你应该能够做这样的事情:

显示ip bgp摘要(IOS命令)

它应该列出在某个地方收到的前缀的数量。

如果两个现有提供程序都向您发送了默认路由,则您的连接当前已设置为故障转移。提供者A下降,然后您将路由到提供者B。如果您将客户提要与默认路由一起,流量将流向具有最短ASpath以到达给定地址的提供者,如果它找不到地址,则会返回到默认路径。如果两者都提供了完整的提要,则根据提供者之间的重叠程度,您将向每个提供者发送“最佳”路径。

在我们的一个边界路由器上,我向您展示了310540条活动路由,确保您有足够的RAM并配置了机器来处理来自两个提供商的路由,如果您选择了完整的路由。你可以尝试从这两种方式选择顾客路线,直到你变得更舒服为止。或者从这两家较小的供应商那里选择客户路线,看看事情是如何变化的。

这仍然不‘负载平衡’或分配流量均匀和取决于您的流量。您可能会发现,一个提供商仍然获得了最大的流量份额。此时,您需要执行一些前缀/路由映射来调整流量,以选择一个对等点或另一个对等点。

一旦您设置了路由地图或ASN匹配以移动您的流量,如果目标站点出现故障,并且将其路由从该提供商移除,则您的路由器仍然会将流量发送出另一个连接。BGP有点自愈。

我们所做的是,我们有一些地图定义的匹配基础上的ASN。

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

Juniper使这比使用社区更容易,但是,您也可以这样做。

我们的前缀列表查看目的地是否是特定的ASN,如果是,则通过_TO映射。如果ASN是在_THROUGH中列出的,它会更喜欢这个提供者。由于我们的一个提供商与AT&T有直接连接,所以PROVIDER_B_THROUGH匹配7018\7019(和一些其他的ASN),因此AT&T流量默认为提供者B。即使AT&T两者都可以到达,我们还是倾向于通过提供者B发送它。

我相信openbgpd也有类似的方法。

票数 2
EN

Server Fault用户

发布于 2010-03-05 22:07:17

BGP不是一个负载平衡协议。

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

如果所有通信量都只有一个连接,那么我的第一个猜测是,您不会从被忽略的提供者那里得到一个完整的提要。路由是将优先级赋予更特定的路由,因此,如果您的路由为192.168.0.0/23到提供者a,而将192.168.0.0/24和192.168.1.0/24的两个路由发送到提供者b,则提供者a将被完全忽略。我对OpenBGP不熟悉。所以我不能告诉你如何在不看的情况下验证一些东西的细节。但是您需要做的第一件事是验证这两个提供者是否都给了您一个完整的提要,而不仅仅是一个默认的路由。

如果是这样的话,那么您需要查看出站流量的路由首选项和入站流量的路径填充。确保在配置更改之间等待24至48小时,以确保您有足够大的数据集来确定更改的有效性。

票数 3
EN

Server Fault用户

发布于 2010-03-12 08:19:28

建一座桥。Freebsd实际上会在当前前缀的上游特性上负载平衡,并且负载平衡非常好。BGP不会的。您可以同时安装上游ISP,并根据您的/22向两个ISP宣布,并且很可能会拒绝您的/30 wan前缀,但是iBGP会捡起来的。iBGP将运行良好的桥梁,然后没有真正的需要OSPF。您现在有一个负载均衡器和完全冗余的BGP设置。我们有几个起来,并喜欢他们在演唱会上的链接到互联网。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/118812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档