VyOS BGP-Konfiguration auf einem VPS: Dual-Stack-Anleitung
BGP auf einer VyOS-Instanz auf einem VPS konfigurieren, um eigene IPv4- und IPv6-Prefixe anzukündigen. Mit Prefix-Lists, Route-Maps, Session-Absicherung und externer Verifizierung.
Netzwerktechniker, die täglich mit Junos oder IOS arbeiten, kennen den Schmerz, flache Konfigurationsdateien für BIRD2 oder FRR zu bearbeiten. VyOS bietet eine richtige Router-CLI auf einem VPS: hierarchische Konfiguration, Commit/Rollback, Tab-Completion. Dieses Tutorial führt durch ein vollständiges BGP-Setup auf einem Virtua Cloud VPS mit VyOS, von der Interface-Konfiguration bis zur verifizierten Dual-Stack Prefix-Ankündigung.
Am Ende haben Sie IPv4- und IPv6-Prefixe via BGP angekündigt, mit Prefix-Lists, Route-Maps, MD5-Authentifizierung, GTSM und Max-Prefix-Limits.
BGP und Bring Your Own IP auf einem VPS: Der vollständige Leitfaden
Voraussetzungen
Bevor Sie beginnen, benötigen Sie:
- Eine bei einer RIR (RIPE NCC, ARIN, APNIC) registrierte ASN. ASN bei der RIPE NCC registrieren: Ablauf, Kosten und Voraussetzungen
- Mindestens ein IPv4 /24- und/oder IPv6 /48-Prefix, das Ihrer ASN zugewiesen ist.
- Gültige ROA-Objekte, die in RPKI für jedes Prefix veröffentlicht sind. RPKI ROA für BGP: ROAs erstellen, Routen in BIRD2 und FRR validieren
- Einen Virtua Cloud VPS mit installiertem VyOS. Bestellen Sie einen VPS mit der ISO-Image-Option, mounten Sie das VyOS ISO und schließen Sie die Installation ab (
install imagevom Live-System). Neustart, ISO unmounten, und Sie haben eine persistente VyOS-Instanz. - Eine von Ihrem Upstream-Provider bereitgestellte BGP-Session. Sie benötigen: dessen ASN, die Peering-IPv4/IPv6-Adressen und das MD5-Passwort (falls gesetzt).
In diesem Tutorial verwenden wir folgende Platzhalter. Ersetzen Sie diese durch Ihre eigenen Werte:
| Parameter | Platzhalter | Beschreibung |
|---|---|---|
| Ihre ASN | 64512 |
Ihre Autonomous System Number |
| Router ID | 198.51.100.10 |
Üblicherweise Ihre primäre IPv4-Adresse |
| Upstream ASN | 64501 |
Die AS-Nummer Ihres Providers |
| Upstream IPv4 | 198.51.100.1 |
Peering-IPv4 des Providers |
| Ihre Peering-IPv4 | 198.51.100.10 |
Ihre Seite der Point-to-Point-Verbindung |
| Upstream IPv6 | 2001:db8::1 |
Peering-IPv6 des Providers |
| Ihre Peering-IPv6 | 2001:db8::10 |
Ihre Seite der IPv6-Peering-Verbindung |
| Ihr IPv4-Prefix | 203.0.113.0/24 |
Das Prefix, das Sie ankündigen |
| Ihr IPv6-Prefix | 2001:db8:1000::/48 |
Das IPv6-Prefix, das Sie ankündigen |
| MD5-Passwort | (vom Provider) | Shared Secret für TCP MD5 |
Wie greife ich auf VyOS auf einem VPS zu und bereite es vor?
Nach der Bereitstellung verbinden Sie sich per SSH mit der VyOS-Instanz. VyOS startet in einer Operational-Mode-Shell. Um Konfigurationsänderungen vorzunehmen, wechseln Sie in den Konfigurationsmodus:
ssh vyos@198.51.100.10
configure
Der Prompt wechselt von $ zu #, was den Konfigurationsmodus anzeigt. Jeder set-Befehl stellt eine Änderung bereit. Nichts wird wirksam, bis Sie commit ausführen.
Interface überprüfen
Prüfen Sie, ob Ihr Netzwerk-Interface die korrekten Adressen zugewiesen hat. Auf einem Virtua VPS ist das primäre Interface typischerweise eth0:
show interfaces ethernet eth0
Falls Ihre Peering-Adressen noch nicht konfiguriert sind (manche Provider verwenden ein separates /30 oder /31 für die Point-to-Point-Verbindung), fügen Sie diese hinzu:
set interfaces ethernet eth0 address 198.51.100.10/24
set interfaces ethernet eth0 address 2001:db8::10/64
Wie richte ich eine BGP-Session auf VyOS ein?
Die VyOS BGP-Konfiguration beginnt mit set protocols bgp. In VyOS 1.4+ (Sagitta) wird die AS-Nummer mit system-as gesetzt, nicht im veralteten Format set protocols bgp <ASN> aus älteren Releases.
Setzen Sie Ihre AS-Nummer und Router-ID:
set protocols bgp system-as 64512
set protocols bgp parameters router-id 198.51.100.10
IPv4-Neighbor konfigurieren
set protocols bgp neighbor 198.51.100.1 remote-as 64501
set protocols bgp neighbor 198.51.100.1 description 'Upstream-v4'
set protocols bgp neighbor 198.51.100.1 update-source 198.51.100.10
IPv6-Neighbor konfigurieren
Falls Ihr Provider IPv6 über eine separate Adresse peert (üblich), fügen Sie einen zweiten Neighbor-Block hinzu:
set protocols bgp neighbor 2001:db8::1 remote-as 64501
set protocols bgp neighbor 2001:db8::1 description 'Upstream-v6'
set protocols bgp neighbor 2001:db8::1 update-source 2001:db8::10
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast
Für den IPv4-Neighbor aktivieren Sie die ipv4-unicast Address Family explizit:
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast
Wie kündige ich IPv4- und IPv6-Prefixe auf VyOS an?
Um ein Prefix via BGP anzukündigen, sind zwei Dinge nötig: ein network-Statement unter der richtigen Address Family und das Prefix muss in der Routing-Tabelle vorhanden sein. Der Standardansatz ist eine statische Blackhole-Route (Null-Route) für jedes Prefix.
Blackhole-Routen erstellen
set protocols static route 203.0.113.0/24 blackhole
set protocols static route6 2001:db8:1000::/48 blackhole
Diese Routen stellen sicher, dass das Prefix immer in der Routing-Tabelle vorhanden ist, auch wenn keine spezifischeren Routen existieren.
Network-Statements hinzufügen
set protocols bgp address-family ipv4-unicast network 203.0.113.0/24
set protocols bgp address-family ipv6-unicast network 2001:db8:1000::/48
Der network-Befehl weist BGP an, diese Prefixe zu originieren. Ohne die zugehörige Blackhole-Route wird BGP das Prefix nicht advertisieren.
Wie filtere ich BGP-Routen mit Prefix-Lists und Route-Maps auf VyOS?
BGP ohne Filter zu betreiben ist fahrlässig. Sie sollten sowohl ausgehend (nur ankündigen, was Ihnen gehört) als auch eingehend (begrenzen, was Sie vom Upstream akzeptieren) filtern. VyOS verwendet prefix-list für IPv4 und prefix-list6 für IPv6. Das ist ein häufiger Fehler: prefix-list mit einem IPv6-Prefix zu verwenden schlägt stillschweigend fehl.
Ausgehende Prefix-Lists
Erstellen Sie eine Prefix-List, die nur Ihre Prefixe erlaubt:
set policy prefix-list EXPORT4 rule 10 action permit
set policy prefix-list EXPORT4 rule 10 prefix 203.0.113.0/24
set policy prefix-list6 EXPORT6 rule 10 action permit
set policy prefix-list6 EXPORT6 rule 10 prefix 2001:db8:1000::/48
Am Ende jeder Prefix-List existiert ein implizites Deny-All. Nur explizit erlaubte Prefixe passieren.
Eingehende Prefix-Lists
Begrenzen Sie eingehende Routen, um zu verhindern, dass Ihr Upstream Ihre Tabelle mit einem Full Feed flutet (falls Sie keinen angefordert haben) oder ungültige Routen durchlässt:
set policy prefix-list IMPORT4 rule 10 action permit
set policy prefix-list IMPORT4 rule 10 prefix 0.0.0.0/0
set policy prefix-list IMPORT4 rule 10 le 24
set policy prefix-list6 IMPORT6 rule 10 action permit
set policy prefix-list6 IMPORT6 rule 10 prefix ::/0
set policy prefix-list6 IMPORT6 rule 10 le 48
Dies akzeptiert jedes IPv4-Prefix bis /24 und jedes IPv6-Prefix bis /48. Passen Sie die le-Werte nach Bedarf an. Wenn Sie nur eine Default-Route wollen, entfernen Sie die le-Zeile und setzen Sie das Prefix auf 0.0.0.0/0 oder ::/0 mit exaktem Match.
Route-Maps
Route-Maps verknüpfen Prefix-Lists mit Neighbor-Sessions:
set policy route-map UPSTREAM-OUT4 rule 10 action permit
set policy route-map UPSTREAM-OUT4 rule 10 match ip address prefix-list EXPORT4
set policy route-map UPSTREAM-OUT6 rule 10 action permit
set policy route-map UPSTREAM-OUT6 rule 10 match ipv6 address prefix-list EXPORT6
set policy route-map UPSTREAM-IN4 rule 10 action permit
set policy route-map UPSTREAM-IN4 rule 10 match ip address prefix-list IMPORT4
set policy route-map UPSTREAM-IN6 rule 10 action permit
set policy route-map UPSTREAM-IN6 rule 10 match ipv6 address prefix-list IMPORT6
Route-Maps auf Neighbors anwenden
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast route-map export UPSTREAM-OUT4
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast route-map import UPSTREAM-IN4
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast route-map export UPSTREAM-OUT6
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast route-map import UPSTREAM-IN6
Wie sichere ich eine VyOS BGP-Session ab?
Vier Mechanismen härten eine BGP-Session: TCP MD5-Authentifizierung, GTSM (TTL Security), Maximum-Prefix-Limits und die ebgp-requires-policy-Einstellung. Die meisten Konkurrenzanleitungen behandeln keinen davon. Alle vier sollten standardmäßig aktiviert sein.
MD5-Authentifizierung
MD5 (RFC 2385) signiert jedes TCP-Segment. Es verschlüsselt den Traffic nicht, verhindert aber gefälschte TCP-Resets und Session-Hijacks:
set protocols bgp neighbor 198.51.100.1 password 'your-md5-secret'
set protocols bgp neighbor 2001:db8::1 password 'your-md5-secret'
Beide Seiten müssen dasselbe Passwort verwenden. Sie erhalten es von Ihrem Upstream-Provider bei der Session-Bereitstellung.
GTSM (Generalized TTL Security Mechanism)
GTSM (RFC 5082) verwirft BGP-Pakete mit einem TTL-Wert unter dem erwarteten. Für direkt verbundene eBGP-Peers setzen Sie Hops auf 1:
set protocols bgp neighbor 198.51.100.1 ttl-security hops 1
set protocols bgp neighbor 2001:db8::1 ttl-security hops 1
Dies verwirft jedes BGP-Paket, das mehr als 1 Hop durchlaufen hat, und blockiert Spoofing-Versuche aus der Ferne. GTSM schließt sich gegenseitig mit ebgp-multihop aus. Verwenden Sie nicht beides auf demselben Neighbor.
Maximum-Prefix-Limits
Schützen Sie Ihre Routing-Tabelle davor, dass ein Peer versehentlich eine Full Table (900k+ IPv4-Prefixe) oder ein Route Leak sendet:
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast maximum-prefix 10000
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast maximum-prefix 5000
Die Session wird beendet, wenn der Peer dieses Limit überschreitet. Setzen Sie die Werte basierend auf dem, was Sie erwarten. Für einen einzelnen Upstream mit Default-Route reichen 10. Für eine Full Table: 1000000.
eBGP-Policy erzwingen
VyOS deaktiviert die RFC 8212-Durchsetzung standardmäßig aus Gründen der Rückwärtskompatibilität. Aktivieren Sie sie, damit BGP ohne explizite Policy keine Routen sendet oder akzeptiert:
set protocols bgp parameters ebgp-requires-policy
Mit dieser Einstellung tauscht ein Neighbor ohne angewandte Route-Map keine Routen aus. Das verhindert versehentliche Route Leaks, wenn Sie einen neuen Peer hinzufügen und die Filter vergessen.
Wie konfiguriere ich die VyOS-Firewall für BGP?
BGP läuft auf TCP-Port 179. Wenn Sie eine VyOS-Firewall betreiben (und das sollten Sie), erlauben Sie BGP-Traffic nur von den Peering-Adressen Ihres Upstreams.
IPv4-Firewall-Regeln
set firewall ipv4 input filter rule 20 action accept
set firewall ipv4 input filter rule 20 protocol tcp
set firewall ipv4 input filter rule 20 destination port 179
set firewall ipv4 input filter rule 20 source address 198.51.100.1
set firewall ipv4 input filter rule 20 description 'BGP from upstream v4'
set firewall ipv4 input filter rule 21 action accept
set firewall ipv4 input filter rule 21 protocol tcp
set firewall ipv4 input filter rule 21 source port 179
set firewall ipv4 input filter rule 21 source address 198.51.100.1
set firewall ipv4 input filter rule 21 description 'BGP return from upstream v4'
IPv6-Firewall-Regeln
set firewall ipv6 input filter rule 20 action accept
set firewall ipv6 input filter rule 20 protocol tcp
set firewall ipv6 input filter rule 20 destination port 179
set firewall ipv6 input filter rule 20 source address 2001:db8::1
set firewall ipv6 input filter rule 20 description 'BGP from upstream v6'
set firewall ipv6 input filter rule 21 action accept
set firewall ipv6 input filter rule 21 protocol tcp
set firewall ipv6 input filter rule 21 source port 179
set firewall ipv6 input filter rule 21 source address 2001:db8::1
set firewall ipv6 input filter rule 21 description 'BGP return from upstream v6'
Regel 21 behandelt Rückverkehr, wenn die Gegenseite die TCP-Verbindung auf Source-Port 179 initiiert. Falls Sie Established/Related Connection Tracking in Ihrer Firewall aktiviert haben, ist Regel 21 möglicherweise überflüssig. Fügen Sie sie sicherheitshalber ein.
Commit, Save und der VyOS-Konfigurations-Workflow
VyOS verwendet einen zweistufigen Workflow. commit aktiviert die bereitgestellten Änderungen in der laufenden Konfiguration. save schreibt die laufende Konfiguration auf die Festplatte, damit sie Neustarts übersteht. Wenn Sie save vergessen, gehen Ihre Änderungen bei einem Reboot verloren.
commit
Falls der Commit ohne Fehler durchläuft, speichern:
save
Erwartete Ausgabe:
Saving configuration to '/config/config.boot'...
Done
Falls commit fehlschlägt, zeigt VyOS den Fehler an und macht ein Rollback. Lesen Sie die Fehlermeldung. Häufige Ursachen: Tippfehler in IP-Adressen, widersprüchliche Optionen (wie ttl-security und ebgp-multihop auf demselben Neighbor) oder Referenzen auf eine nicht existierende Prefix-List.
Um Ihre bereitgestellten Änderungen vor dem Commit zu überprüfen:
compare
Dies zeigt ein Diff zwischen der laufenden Konfiguration und Ihren ausstehenden Änderungen. Um nicht committete Änderungen zu verwerfen:
discard
Um zu einem früheren Commit zurückzukehren:
rollback 1
commit
save
Wie überprüfe ich, ob meine BGP-Ankündigungen sichtbar sind?
Die Verifizierung erfolgt in zwei Stufen: lokal (auf der VyOS-Instanz) und extern (aus dem Internet). Verlassen Sie zuerst den Konfigurationsmodus:
exit
Lokale Verifizierung
Prüfen Sie den Session-Status für beide Address Families:
show bgp ipv4 summary
Erwartete Ausgabe:
IPv4 Unicast Summary:
BGP router identifier 198.51.100.10, local AS number 64512 vrf-id 0
BGP table version 3
RIB entries 5, using 960 bytes of memory
Peers 1, using 725 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
198.51.100.1 4 64501 142 138 0 0 0 01:15:23 2
Die Spalte State/PfxRcd zeigt eine Zahl (empfangene Prefixe), wenn die Session aufgebaut ist. Falls dort Active, Connect oder OpenSent steht, ist die Session nicht aktiv. Siehe den Abschnitt zur Fehlerbehebung.
show bgp ipv6 summary
Überprüfen Sie, ob Sie die korrekten Prefixe advertisieren:
show bgp ipv4 neighbors 198.51.100.1 advertised-routes
Die erwartete Ausgabe enthält Ihr 203.0.113.0/24-Prefix. Falls es fehlt, prüfen Sie Ihr Network-Statement und die ausgehende Route-Map.
show bgp ipv6 neighbors 2001:db8::1 advertised-routes
Referenz der Verifizierungsbefehle
| Befehl | Was er anzeigt |
|---|---|
show bgp ipv4 summary |
Session-Status, empfangene Prefixe pro Peer |
show bgp ipv6 summary |
Dasselbe für IPv6 |
show bgp ipv4 neighbors <ip> advertised-routes |
Prefixe, die Sie senden |
show bgp ipv4 neighbors <ip> received-routes |
Vom Peer empfangene Prefixe |
show bgp ipv4 neighbors <ip> |
Vollständige Neighbor-Details (Timer, Capabilities, Zähler) |
show ip route bgp |
In der Routing-Tabelle installierte BGP-Routen |
show bgp ipv4 |
Vollständige IPv4 BGP-Tabelle |
Externe Verifizierung
Lokale Prüfungen bestätigen nur, was Ihr Router denkt. Verifizieren Sie aus dem Internet, dass Ihre Prefixe tatsächlich propagieren.
bgp.tools: Öffnen Sie https://bgp.tools/prefix/203.0.113.0/24 im Browser. Es zeigt, welche ASes das Prefix sehen, den AS-Pfad und den RPKI-Validierungsstatus. Falls das Prefix nicht erscheint, warten Sie 5-10 Minuten für die Propagation und prüfen Sie erneut.
RIPE Stat: Öffnen Sie https://stat.ripe.net/203.0.113.0/24 für den Routing-Status, die Sichtbarkeit über Route Collectors und den RPKI-Validierungsstatus.
Looking Glass: Viele Transit-Provider bieten Looking-Glass-Tools an. Fragen Sie das Looking Glass Ihres Upstreams ab, um zu bestätigen, dass Ihre Ankündigung sichtbar ist.
Falls Ihr Prefix auf bgp.tools als RPKI-invalid angezeigt wird, ist Ihre ROA fehlerhaft. Korrigieren Sie sie im RIPE-Portal, bevor Sie fortfahren. RPKI ROA für BGP: ROAs erstellen, Routen in BIRD2 und FRR validieren
VyOS CLI vs. BIRD2 vs. FRR: Kurzvergleich
Alle drei können BGP auf einem Linux-VPS betreiben. Die Wahl hängt von Ihren Workflow-Präferenzen ab.
| Aufgabe | VyOS CLI | BIRD2 Config-Datei | FRR vtysh |
|---|---|---|---|
| AS-Nummer setzen | set protocols bgp system-as 64512 |
protocol bgp { local 64512 as 64512; } |
router bgp 64512 |
| Neighbor hinzufügen | set protocols bgp neighbor 1.2.3.4 remote-as 64501 |
neighbor 1.2.3.4 as 64501; im Protocol-Block |
neighbor 1.2.3.4 remote-as 64501 |
| Prefix ankündigen | set protocols bgp address-family ipv4-unicast network 203.0.113.0/24 |
protocol static { route 203.0.113.0/24 blackhole; } + Export-Filter |
network 203.0.113.0/24 |
| Prefix-List | set policy prefix-list NAME rule 10 ... |
define PFXLIST = [ 203.0.113.0/24 ]; |
ip prefix-list NAME permit ... |
| Änderungen anwenden | commit / save |
birdc configure |
write memory |
| Rollback | rollback N + commit |
Backup-Konfigurationsdatei wiederherstellen | Kein eingebautes Rollback |
| Konfigurationsformat | Hierarchische CLI | Eigene DSL (C-ähnlich) | IOS-ähnliche CLI |
| Zugrunde liegender Daemon | FRR (gebündelt) | BIRD | FRR |
VyOS bündelt FRR intern, verpackt es aber in einen Commit/Rollback-Workflow. Wenn Sie atomare Konfigurationsänderungen und Rollback ohne eigene Skripte wollen, ist VyOS die richtige Wahl. Wenn Sie maximale Kontrolle über Filterlogik brauchen, bietet BIRD2 eine vollständige Programmiersprache. BIRD2 BGP-Konfiguration auf einem Linux VPS FRRouting BGP-Konfiguration auf einem Linux VPS
Was sind häufige VyOS BGP-Fehlerbehebungsschritte?
Wenn eine Session nicht aufgebaut wird oder Prefixe nicht sichtbar sind, arbeiten Sie diese Prüfungen systematisch ab.
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
Status bleibt auf Active |
TCP-Verbindung schlägt fehl. Firewall blockiert Port 179, falsche Neighbor-IP oder die Gegenseite ist nicht konfiguriert. | Firewall-Regeln prüfen. Neighbor-IP mit der Konfiguration des Upstreams abgleichen. ping zur Peer-Adresse versuchen. |
Status bleibt auf OpenSent |
TCP verbindet, aber BGP OPEN wird abgelehnt. AS-Nummern-Mismatch oder Capability-Negotiation-Fehler. | Prüfen, ob system-as dem entspricht, was der Upstream erwartet. show bgp ipv4 neighbors <ip> auf "Notification received" prüfen. |
Status bleibt auf OpenConfirm |
MD5-Passwort-Mismatch. TCP verbindet (SYN/ACK funktioniert ohne MD5-Prüfung), aber BGP-Nachrichten scheitern an der Authentifizierung. | password auf beiden Seiten bestätigen. MD5 unterscheidet Groß-/Kleinschreibung. |
| Session aufgebaut, aber 0 Prefixe empfangen | Upstream sendet keine Routen, oder Ihre eingehende Route-Map lehnt alles ab. | show bgp ipv4 neighbors <ip> received-routes prüfen. Falls leer, beim Upstream nachfragen. Falls Routen dort sichtbar, aber nicht in der Tabelle, Import-Route-Map prüfen. |
| Ihr Prefix extern nicht sichtbar | Ausgehende Route-Map blockiert, fehlendes Network-Statement oder keine Blackhole-Route. | show bgp ipv4 neighbors <ip> advertised-routes ausführen. Falls das Prefix fehlt, ausgehende Route-Map und network-Statement prüfen. Blackhole-Route mit show ip route 203.0.113.0/24 verifizieren. |
| RPKI Invalid auf bgp.tools | ROA-Mismatch. Die Origin-AS oder Max-Length in der ROA stimmt nicht mit Ihrer Ankündigung überein. | ROA im RIPE-Portal korrigieren. Sicherstellen, dass die Origin-AS mit system-as übereinstimmt und Max-Length /24 abdeckt. |
| Session flapped | MTU-Probleme, instabile Verbindung oder Max-Prefix-Limit erreicht. | show log auf BGP-Meldungen prüfen. Falls Max-Prefix ausgelöst wurde, Limit erhöhen oder untersuchen, warum der Peer zu viele Routen sendet. |
Logs lesen
VyOS protokolliert BGP-Ereignisse über das System-Journal:
show log | match bgp
Für Echtzeit-Monitoring:
monitor log | match bgp
Auf dem zugrunde liegenden System (falls Sie mehr Details benötigen):
journalctl -u frr -f
Dies zeigt die FRR-Daemon-Logs live an. Suchen Sie nach NOTIFICATION-Nachrichten, die den BGP-Fehlercode und Subcode enthalten.
Vollständige Konfigurationsreferenz
Hier der vollständige Konfigurationsblock als Referenz. Kopieren, Platzhalter ersetzen, in den Konfigurationsmodus einfügen, commit und save:
# Enter configuration mode
configure
# BGP core
set protocols bgp system-as 64512
set protocols bgp parameters router-id 198.51.100.10
set protocols bgp parameters ebgp-requires-policy
# Blackhole routes for prefix origination
set protocols static route 203.0.113.0/24 blackhole
set protocols static route6 2001:db8:1000::/48 blackhole
# Network statements
set protocols bgp address-family ipv4-unicast network 203.0.113.0/24
set protocols bgp address-family ipv6-unicast network 2001:db8:1000::/48
# IPv4 neighbor
set protocols bgp neighbor 198.51.100.1 remote-as 64501
set protocols bgp neighbor 198.51.100.1 description 'Upstream-v4'
set protocols bgp neighbor 198.51.100.1 update-source 198.51.100.10
set protocols bgp neighbor 198.51.100.1 password 'your-md5-secret'
set protocols bgp neighbor 198.51.100.1 ttl-security hops 1
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast maximum-prefix 10000
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast route-map export UPSTREAM-OUT4
set protocols bgp neighbor 198.51.100.1 address-family ipv4-unicast route-map import UPSTREAM-IN4
# IPv6 neighbor
set protocols bgp neighbor 2001:db8::1 remote-as 64501
set protocols bgp neighbor 2001:db8::1 description 'Upstream-v6'
set protocols bgp neighbor 2001:db8::1 update-source 2001:db8::10
set protocols bgp neighbor 2001:db8::1 password 'your-md5-secret'
set protocols bgp neighbor 2001:db8::1 ttl-security hops 1
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast maximum-prefix 5000
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast route-map export UPSTREAM-OUT6
set protocols bgp neighbor 2001:db8::1 address-family ipv6-unicast route-map import UPSTREAM-IN6
# Outbound prefix-lists (only announce what you own)
set policy prefix-list EXPORT4 rule 10 action permit
set policy prefix-list EXPORT4 rule 10 prefix 203.0.113.0/24
set policy prefix-list6 EXPORT6 rule 10 action permit
set policy prefix-list6 EXPORT6 rule 10 prefix 2001:db8:1000::/48
# Inbound prefix-lists
set policy prefix-list IMPORT4 rule 10 action permit
set policy prefix-list IMPORT4 rule 10 prefix 0.0.0.0/0
set policy prefix-list IMPORT4 rule 10 le 24
set policy prefix-list6 IMPORT6 rule 10 action permit
set policy prefix-list6 IMPORT6 rule 10 prefix ::/0
set policy prefix-list6 IMPORT6 rule 10 le 48
# Route-maps
set policy route-map UPSTREAM-OUT4 rule 10 action permit
set policy route-map UPSTREAM-OUT4 rule 10 match ip address prefix-list EXPORT4
set policy route-map UPSTREAM-OUT6 rule 10 action permit
set policy route-map UPSTREAM-OUT6 rule 10 match ipv6 address prefix-list EXPORT6
set policy route-map UPSTREAM-IN4 rule 10 action permit
set policy route-map UPSTREAM-IN4 rule 10 match ip address prefix-list IMPORT4
set policy route-map UPSTREAM-IN6 rule 10 action permit
set policy route-map UPSTREAM-IN6 rule 10 match ipv6 address prefix-list IMPORT6
# Firewall - allow BGP from upstream only
set firewall ipv4 input filter rule 20 action accept
set firewall ipv4 input filter rule 20 protocol tcp
set firewall ipv4 input filter rule 20 destination port 179
set firewall ipv4 input filter rule 20 source address 198.51.100.1
set firewall ipv4 input filter rule 20 description 'BGP from upstream v4'
set firewall ipv6 input filter rule 20 action accept
set firewall ipv6 input filter rule 20 protocol tcp
set firewall ipv6 input filter rule 20 destination port 179
set firewall ipv6 input filter rule 20 source address 2001:db8::1
set firewall ipv6 input filter rule 20 description 'BGP from upstream v6'
# Apply
commit
save
Weiterführende Lektüre
- BGP und Bring Your Own IP auf einem VPS: Der vollständige Leitfaden Übergeordnete Anleitung zum vollständigen BYOIP-Workflow
- BIRD2 BGP-Konfiguration auf einem Linux VPS -- Gleiches Ziel, anderes Werkzeug: BIRD2 auf blankem Linux
- FRRouting BGP-Konfiguration auf einem Linux VPS -- FRR-Ansatz für alle, die vtysh ohne VyOS bevorzugen
- RPKI ROA für BGP: ROAs erstellen, Routen in BIRD2 und FRR validieren -- ROA-Objekte einrichten, bevor Prefixe angekündigt werden
- BGP Route Filtering: Prefix-Listen, AS-Path-Filter, Bogon-Ablehnung und GTSM -- Vertiefung der Route-Filtering-Strategien
- ASN bei der RIPE NCC registrieren: Ablauf, Kosten und Voraussetzungen Eigene ASN bei RIPE NCC beantragen
- VyOS BGP-Dokumentation -- Offizielle Referenz für alle BGP-Optionen
- bgp.tools -- Externer BGP-Route-Sichtbarkeitsprüfer
Bereit, es selbst auszuprobieren?
Betreiben Sie BGP-Sessions auf Ihrem eigenen IP-Bereich mit Virtua.Cloud VPS. →