Filtern, bevor Sie bevorzugen. Eine BGP-Edge-Policy, die sicher ausfällt
Wie Sie ein Multi-homed BGP-Edge aufbauen: zuerst eingehende Hygiene, dann ein gestuftes Local-Preference-Schema, ausgehende Disziplin und Anti-Spoofing. Mit Beispielen.

Multi-homed zu sein ist nicht dasselbe wie ausfallsicher zu sein. Zwei Transit-Carrier und ein Port an einem Exchange geben Ihnen Optionen. Die Routing-Policy entscheidet, ob diese Optionen Sie schneller und sicherer machen oder einer schlechten Route nur mehr Wege hinein geben. So denken wir über eine Edge-Policy, in der Reihenfolge, in der eine Route ihr tatsächlich begegnet.
Das Problem, das jedes Multi-homed Netzwerk hat
In dem Moment, in dem Sie volle Tabellen von mehr als einem Carrier annehmen, wählt Ihr Router den ganzen Tag, jeden Tag, zwischen Pfaden, und er wählt nach den Regeln, die Sie geschrieben haben. Haben Sie keine geschrieben, fällt er auf die Standard-Tie-Breaker von BGP zurück: kürzester AS-Pfad, dann eine Kaskade von Details, die nichts mit Latenz, Kosten oder Ihren Kunden zu tun haben.
Die übliche Abkürzung ist, zuerst Präferenzen an die Sessions zu hängen («bevorzuge Carrier A, er ist billiger») und das Filtern später hinzuzufügen, wenn überhaupt. Diese Reihenfolge ist verkehrt. Präferenz ist eine Entscheidung über gute Routen. Wenn der Müll nicht entfernt wurde, bevor diese Entscheidung fällt, sortieren Sie sorgfältig Müll.
Stufe eins: Hygiene, vor jeder Entscheidung
Jede eingehende Session, Transit oder Peer, durchläuft dieselbe Hygiene-Policy, bevor irgendetwas anderes die Route berührt. Die Liste ist kurz und langweilig, und genau das ist der Punkt:
- Bogons. Privater, reservierter, Dokumentations- und nicht zugewiesener Adressraum hat nichts damit zu tun, aus dem Internet anzukommen.
- Ihre eigenen Prefixes. Eine Route zu Ihrem eigenen Adressraum, die von außen gelernt wird, ist entweder eine Schleife oder ein Hijack. Verwerfen Sie sie.
- Die Default-Route. Sofern Sie einen Carrier nicht um eine Default gebeten haben, wollen Sie keine sehen, weil jemand upstream einen Fehler gemacht hat.
- Zu spezifisch. Alles, was länger ist als ein /24 bei IPv4 (und ein /48 bei IPv6), ist per Konvention nicht global routbar. Es anzunehmen lädt zu More-specific-Hijacks ein.
- Absurde AS-Pfade. Pfade mit privaten ASNs darin, oder Pfade, die weit länger sind, als irgendeine echte Route braucht.
In allgemeinen Begriffen einer Cisco IOS-XR Route-Policy sieht das Gerüst so aus:
route-policy TRANSIT-IN
if destination in BOGONS-V4 or destination in OUR-PREFIXES then
drop
endif
if destination in (0.0.0.0/0) then
drop
endif
if destination in (0.0.0.0/0 ge 25) then
drop
endif
if as-path in PRIVATE-ASNS then
drop
endif
apply SET-PREFERENCE
end-policy
Beachten Sie, dass die Präferenzlogik ganz am Ende angewendet wird, als separate Policy. Hygiene ist auf jeder Session identisch. Präferenz unterscheidet sich pro Session. Sie getrennt zu halten bedeutet, dass eine Änderung an der Steuerung das Filtern nie versehentlich schwächen kann.
Stufe zwei: Präferenz in Stufen
Sobald nur noch vernünftige Routen übrig sind, entscheiden Sie, welcher Pfad gewinnt. Wir verwenden Stufen von Local Preference statt einer Zahl pro Carrier, weil Stufen eine Absicht beschreiben:
- Direktes Peering gewinnt. Eine Route, die vom Netzwerk selbst gelernt wird, an einem Exchange oder über eine bilaterale Session, ist der kürzeste Pfad, den Sie bekommen können.
- Die eigenen Kunden eines Carriers kommen als Nächstes. Markiert ein Transit-Carrier die Routen, die er von seinen eigenen Kunden lernt, mit einer Community, bleiben diese Routen von Ende zu Ende im Netzwerk dieses Carriers.
- Alles andere geht über den Transit, der für den Großteil des Verkehrs am besten misst.
Ein zweiter Carrier wird als Reserve warm gehalten: volle Tabelle angenommen, niedrigere Präferenz, bereit in dem Moment, in dem der erste sich zurückzieht.
Eine weitere Regel verdient still ihren Platz: Nutzen Sie nie einen Transit-Carrier, um die Kunden eines anderen Carriers zu erreichen, wenn der zweite Carrier direkt mit Ihnen verbunden ist. Auf das Nachbar-AS im Pfad zu matchen und die Präferenz zu senken hindert den Verkehr daran, einen teuren Umweg über einen Dritten zu nehmen.
Stufe drei: ausgehende Disziplin
Die ausgehende Seite ist einfacher und wichtiger. Kündigen Sie genau die Prefixes an, die von Ihnen stammen, und nichts anderes:
prefix-set OUR-PREFIXES-V4
192.0.2.0/24,
198.51.100.0/24
end-set
route-policy TRANSIT-OUT
if destination in OUR-PREFIXES-V4 then
pass
else
drop
endif
end-policy
Eine ausdrückliche ausgehende Allow-List bedeutet, dass ein Fehler anderswo in Ihrem Netzwerk (eine redistribuierte statische Route, eine Kundenroute, die intern hätte bleiben sollen) Sie nicht zum Transitpfad für den Verkehr von jemand anderem machen kann. Die Gestaltung des Rückwegs, etwa AS-Path-Prepending in Richtung eines Carriers, den Sie eingehend weniger nutzen wollen, geschieht innerhalb dieser Policy, nie an ihrer Stelle.
Stufe vier: keinen gefälschten Verkehr erzeugen
Die Routing-Policy steuert, was Sie glauben. Anti-Spoofing steuert, was Sie senden. BCP38 besagt, dass ein Netzwerk keine Pakete weiterleiten sollte, deren Quelladresse nicht legitim von hinter dem Interface stammen könnte, auf dem sie ankamen. Auf Interfaces zum Internet und zu Kunden bedeutet das Unicast Reverse Path Forwarding im Strict Mode, wo die Topologie es erlaubt, oder ausdrückliche Quelladressfilter, wo sie es nicht erlaubt. Es ist eine der wenigen Kontrollen, die den Rest des Internets vor Ihnen schützt, und es ist der Unterschied dazwischen, ob ein kompromittierter Server in Ihrem Netzwerk Ihr Problem ist oder das Problem aller.
Ihr eigenes Edge prüfen
Wenn Sie Ihr eigenes Edge betreiben oder Ihrem Anbieter die richtigen Fragen stellen möchten, hier eine kurze Checkliste:
- Wird die Hygiene auf jeder eingehenden Session identisch angewendet, einschließlich der Route Server am Exchange und «vertrauenswürdiger» Peers?
- Können Sie zeigen, dass ein /25 oder Ihr eigenes Prefix, das Ihnen ein Nachbar schickt, verworfen wird? Testen Sie es im Labor, oder lesen Sie die Policy Zeile für Zeile.
- Ist Ihre ausgehende Policy eine ausdrückliche Allow-List oder «alles außer»?
- Wissen Sie, über welchen Carrier Ihr Verkehr zu den zehn wichtigsten Zielen hinausgeht, und warum? Ein Traceroute vom Edge plus
show bgp <prefix>beantwortet das in Minuten. - Ist das BCP38-Filtern an jedes Interface zum Internet gebunden, und haben Sie einen Test, der es beweist?
- Messen Sie Ihr Netzwerk von außen? Eine unabhängige Plattform wie RIPE Atlas zeigt, wie das Internet Sie tatsächlich erreicht, was oft nicht so ist, wie Ihr Router es glaubt.
Warum wir uns die Mühe machen
Jeder dieser Schritte ist an einem guten Tag unsichtbar. An dem Tag, an dem ein Carrier eine Tabelle leakt, eine Leitung zur Wartung herunterfährt oder ein Nachbar etwas ankündigt, was er nicht sollte, entscheiden sie darüber, ob Ihr Verkehr es bemerkt. Wir betreiben unsere eigenen autonomen Systeme mit dieser Struktur auf Routern Cisco ASR 9000 und Juniper MX, fortlaufend von außen gemessen, weil es der einzige Weg ist, den wir kennen, damit sich ein Multi-homed Netzwerk vorhersagbar verhält.
Wenn Sie ein zweites Paar Augen auf Ihre eigene Edge-Policy möchten, oder eine Plattform, die hinter einer so gebauten liegt, sprechen wir gern mit Ihnen.
Related
Verwandt: Unser eigenes Netzwerk: zwei ASNs, viele Carrier, Peering · Netzwerk-Monitoring und Nachweise · IPv6, nativ und Dual-Stack
Veröffentlicht am 5. August 2026.
Alle Notizen aus der Praxis