如何通过Quagga在/ 30 netblock上运行冗余BGP?


9

我的新BGP上游分配了一个IPv4 / 30网络块作为连接路由器的粘合块。但是,我想运行两个路由器,并在它们之间进行故障转移。如果netblock较大(/ 29),则无论有没有VRRP,我都可以轻松地从两个路由器运行BGP会话(它们也可以运行VRRP)。

是否可以实施一个合理的VRRP / keepalived故障转移配置,而无需让他们扩展粘合块?

我的两个路由器都在Quagga上运行Linux(一个Ubuntu,一个Gentoo);基本配置正常。

Answers:


8

您具有多种Linux解决方案,用于将LAN中的第一跳冗余备份到两个路由器(Quagga本身不支持VRRP,但您可以将Quagga与其中的任何一个结合使用而不会出现任何问题):

  • 保持活力(正如您已经提到的)
  • uCARP -OpenBSD的CARP(通用地址冗余协议)的Linux端口
  • vrrpd-稀疏记录且未经测试的VRRP守护程序,但是仍然可以选择

请注意,这些都与BGP冗余无关,我认为这是您要解决的真正问题。但是,应该很有可能在两个Quagga主机的提供程序端运行VRRP,并将VRRP虚拟IP配置为ISP分配的/ 30的“您的端”,并使用它与ISP对等。故障转移时间可能接近下面的Linux-HA解决方案的时间(如果不是仅仅比头发快)。话虽如此,我个人认为Linux-HA解决方案会更干净,更简单,但这也可能取决于拓扑。

至于使用BGP的选项,有一个IETF的“多会话BGP”草案,它引入了一个新的BGP功能代码,该代码旨在支持同一地址上具有相同对等体的多个BGP会话,但是该草案假定两个会话都将可以在同一设备上使用,但是该草案是全新的,因此Quagga的当前版本不太可能支持此草案。

另一种选择是使用Linux-HA在两个设备之间设置心跳群集,并对其进行配置,这样,如果主路由器发生故障,则心跳将识别出该心跳并在备用路由器上打开Quagga / BGPd / etc当那件事发生时。

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.