Wie kann man redundantes BGP über Quagga on / 30 Netblock ausführen?

9

Mein neuer BGP-Upstream hat einen IPv4 / 30-Netzblock als Klebeblock für die Verbindung unserer Router zugewiesen. Ich möchte jedoch zwei Router und ein Failover zwischen ihnen ausführen. Wenn der Netblock größer wäre (/ 29), könnte ich problemlos BGP-Sitzungen von beiden Routern mit oder ohne VRRP ausführen (sie könnten auch VRRP ausführen).

Gibt es eine vernünftige VRRP / Keepalived-Failover-Konfiguration, die ich implementieren kann, ohne dass sie den Klebeblock erweitern müssen?

Auf beiden Routern läuft Linux (ein Ubuntu, ein Gentoo) mit Quagga. Die Grundkonfiguration funktioniert einwandfrei.

robbat2
quelle

Antworten:

8

Sie haben mehrere Linux-Lösungen für die Redundanz des ersten Hops von Ihrem LAN zu den beiden Routern (Quagga selbst unterstützt VRRP nicht, aber Sie können Quagga in Verbindung mit diesen problemlos verwenden):

  • Keepalived (wie Sie bereits erwähnt haben)
  • uCARP - Ein Linux-Port von OpenBSDs CARP (Common Address Redundancy Protocol)
  • vrrpd - Ein spärlich dokumentierter und weitgehend ungetesteter VRRP-Daemon, aber dennoch eine Option

Beachten Sie, dass keines davon etwas mit BGP-Redundanz zu tun hat. Ich glaube, dies ist das eigentliche Problem, das Sie lösen möchten. Es sollte jedoch durchaus möglich sein, VRRP auf der Anbieterseite Ihrer beiden Quagga-Hosts auszuführen und die virtuelle VRRP-IP als "Ihre Seite" Ihres vom ISP zugewiesenen / 30 zu konfigurieren und diese zu verwenden, um mit Ihrem ISP zu vergleichen. Die Failover-Zeit würde wahrscheinlich in etwa der gleichen (wenn nicht nur ein Haar schneller als) der Lösung mit Linux-HA entsprechen. Vor diesem Hintergrund würde ich persönlich glauben, dass die Linux-HA-Lösung sauberer und einfacher wäre, aber dies kann auch von der Topologie abhängen.

Für Ihre Optionen mit BGP gibt es einen IETF-Entwurf für "Multisesssion BGP" , der einen neuen BGP-Funktionscode einführt, der darauf abzielt, mehrere BGP-Sitzungen mit demselben Peer über dieselbe Adresse zu unterstützen. In diesem Entwurf wird jedoch davon ausgegangen, dass beide Sitzungen dies tun würden auf dem gleichen Gerät sein, aber der Entwurf ist brandneu und Unterstützung dafür wird wahrscheinlich nicht in aktuellen Revisionen von Quagga sein.

Eine andere Möglichkeit besteht darin, mit Linux-HA einen Heartbeat-Cluster zwischen Ihren beiden Boxen einzurichten und so zu konfigurieren, dass der Heartbeat dies erkennt und Quagga / BGPd / etc auf dem Standby-Router aktiviert, wenn der primäre Router ausfällt wenn das passiert.

John Jensen
quelle