Auf dieser Seite
Beispiel: Konfigurieren von IPv6-BGP-Routen über IPv4-Transport
Ankündigung von IPv4-Routen über BGP IPv6-Sitzungen – Übersicht
Beispiel: Ankündigung von IPv4-Routen über IPv6-BGP-Sitzungen
Grundlegendes zur Neuverteilung von IPv4-Routen mit IPv6 Next Hop in BGP
BGP für die Neuverteilung von IPv4-Routen mit IPv6-Next-Hop-Adressen konfigurieren
Grundlegendes zu BGP-Datenstromrouten für die Datenverkehrsfilterung
Beispiel: Aktivieren von BGP für die Übertragung von Flow-Spezifikationsrouten
Beispiel: Konfigurieren von BGP für die Übertragung von IPv6-Datenflussspezifikationsrouten
Weiterleiten von Datenverkehr mithilfe der BGP-Datenstromspezifikation DSCP-Aktion
Multiprotocol BGP
Grundlegendes zu Multiprotokoll-BGP
Multiprotocol BGP (MP-BGP) ist eine Erweiterung von BGP, die es BGP ermöglicht, Routing-Informationen für mehrere Netzwerkschichten und Adressfamilien zu übertragen. MP-BGP kann die Unicast-Routen, die für das Multicast-Routing verwendet werden, getrennt von den Routen übertragen, die für die Unicast-IP-Weiterleitung verwendet werden.
Um MP-BGP zu aktivieren, konfigurieren Sie BGP so, dass es NLRI-Informationen (Network Layer Reachability Information) für andere Adressfamilien als Unicast-IPv4 überträgt, indem Sie die folgende Anweisung einfügen:family inet
family inet { (any | flow | labeled-unicast | multicast | unicast) { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } rib-group group-name; topology name { community { target identifier; } } } }
Damit MP-BGP NLRI für die IPv6-Adressfamilie übertragen kann, fügen Sie die folgende Anweisung ein:family inet6
family inet6 { (any | labeled-unicast | multicast | unicast) { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } rib-group group-name; } }
Fügen Sie nur auf Routern die folgende Anweisung ein:family inet-vpn
family inet-vpn { (any | flow | multicast | unicast) { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } rib-group group-name; } }
Damit MP-BGP Layer-3-VPN-NLRI für die IPv6-Adressfamilie übertragen kann, fügen Sie nur auf Routern die folgende Anweisung ein:family inet6-vpn
family inet6-vpn { (any | multicast | unicast) { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;} } <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;}} rib-group group-name; } }
Geben Sie nur auf Routern die folgende Anweisung ein, damit MP-BGP Multicast-VPN-NLRI für die IPv4-Adressfamilie übertragen und die VPN-Signalisierung aktivieren kann:family inet-mvpn
family inet-mvpn { signaling { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;}} <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;}} } }
Fügen Sie die folgende Anweisung ein, damit MP-BGP Multicast-VPN-NLRI für die IPv6-Adressfamilie übertragen und die VPN-Signalisierung aktivieren kann:family inet6-mvpn
family inet6-mvpn { signaling { accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;}} <loops number>; prefix-limit { maximum number; teardown <percentage> <idle-timeout <forever | minutes>; drop-excess <percentage>; hide-excess <percentage>;}} } }
Weitere Informationen zu BGP-basierten Multicast-VPNs mit mehreren Protokollen finden Sie im Junos OS Multicast Protocols-Benutzerhandbuch.https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/config-guide-multicast/config-guide-multicast.html
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisungen einschließen können, finden Sie in den Abschnitten zur Anweisungszusammenfassung für diese Anweisungen.
Wenn Sie die in der Hierarchieebene angegebene Adressfamilie ändern, werden alle aktuellen BGP-Sitzungen auf dem Routing-Gerät gelöscht und anschließend wiederhergestellt.[edit protocols bgp family]
In Junos OS Version 9.6 und höher können Sie einen Schleifenwert für eine bestimmte BGP-Adressfamilie angeben.
Standardmäßig übertragen BGP-Peers nur Unicast-Routen, die für Unicast-Weiterleitungszwecke verwendet werden. Geben Sie die Option an, um BGP-Peers so zu konfigurieren, dass sie nur Multicast-Routen übertragen.multicast
Geben Sie die Option an, um BGP-Peers so zu konfigurieren, dass sie sowohl Unicast- als auch Multicast-Routen übertragen.any
Wenn MP-BGP konfiguriert ist, installiert BGP die MP-BGP-Routen in verschiedenen Routing-Tabellen. Jede Routing-Tabelle wird durch die Protokollfamilie oder den Adressfamilienindikator (AFI) und einen nachfolgenden Adressfamilienbezeichner (Address Family Identifier, SAFI) identifiziert.
Die folgende Liste zeigt alle möglichen AFI- und SAFI-Kombinationen:
AFI=1, SAFI=1, IPv4-Unicast
AFI=1, SAFI=2, IPv4-Multicast
AFI=1, SAFI=128, L3VPN IPv4 Unicast
AFI=1, SAFI=129, L3VPN IPv4-Multicast
AFI=2, SAFI=1, IPv6-Unicast
AFI=2, SAFI=2, IPv6-Multicast
AFI=25, SAFI=65, BGP-VPLS/BGP-L2VPN
AFI=2, SAFI=128, L3VPN IPv6 Unicast
AFI=2, SAFI=129, L3VPN IPv6-Multicast
AFI=1, SAFI=132, RT-Constrain
AFI=1, SAFI=133, Flow-Spezifikation
AFI=1, SAFI=134, Flow-Spezifikation
AFI=3, SAFI=128, CLNS VPN
AFI=1, SAFI=5, NG-MVPN IPv4
AFI=2, SAFI=5, NG-MVPN IPv6
AFI=1, SAFI=66, MDT-SAFI
AFI=1, SAFI=4, mit IPv4 gekennzeichnet
AFI=2, SAFI=4, mit IPv6 (6PE) gekennzeichnet
Routen, die in der inet.2-Routing-Tabelle installiert sind, können nur an MP-BGP-Peers exportiert werden, da diese SAFI verwenden und sie als Routen zu Multicast-Quellen identifizieren. Routen, die in der inet.0-Routing-Tabelle installiert sind, können nur in Standard-BGP-Peers exportiert werden.
Die inet.2-Routingtabelle sollte eine Teilmenge der Routen sein, die Sie in inet.0 haben, da es unwahrscheinlich ist, dass Sie eine Route zu einer Multicastquelle haben, an die Sie keinen Unicast-Datenverkehr senden können. In der Routing-Tabelle inet.2 werden die Unicast-Routen gespeichert, die für Multicast-Reverse-Path-Forwarding-Prüfungen verwendet werden, sowie die zusätzlichen Erreichbarkeitsinformationen, die MP-BGP aus den NLRI-Multicast-Updates gelernt hat. Eine inet.2-Routing-Tabelle wird automatisch erstellt, wenn Sie MP-BGP konfigurieren (indem Sie NLRI auf ).any
Wenn Sie MP-BGP aktivieren, haben Sie folgende Möglichkeiten:
- Begrenzen der Anzahl von Präfixen, die in einer BGP-Peersitzung empfangen werden
- Begrenzen der Anzahl von Präfixen, die für eine BGP-Peersitzung akzeptiert werden
- Konfigurieren von BGP-Routing-Tabellengruppen
- Auflösen von Routen zu PE-Routing-Geräten, die sich in anderen ASs befinden
- Zulassen von beschrifteten und unbeschrifteten Routen
Begrenzen der Anzahl von Präfixen, die in einer BGP-Peersitzung empfangen werden
Sie können die Anzahl der Präfixe begrenzen, die in einer BGP-Peer-Sitzung empfangen werden, und Nachrichten mit begrenzter Rate protokollieren, wenn die Anzahl der injizierten Präfixe einen festgelegten Grenzwert überschreitet. Sie können das Peering auch unterbrechen, wenn die Anzahl der Präfixe den Grenzwert überschreitet.
Um eine Begrenzung für die Anzahl der Präfixe zu konfigurieren, die in einer BGP-Sitzung empfangen werden können, fügen Sie die folgende Anweisung ein:prefix-limit
prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>; }
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Geben Sie für einen Wert im Bereich von 1 bis 4.294.967.295 an.maximum number
Wenn die angegebene maximale Anzahl von Präfixen überschritten wird, wird eine Systemprotokollmeldung gesendet.
Wenn Sie die Anweisung einschließen, wird die Sitzung abgebrochen, wenn die maximale Anzahl von Präfixen überschritten wird.teardown
Wenn Sie einen Prozentsatz angeben, werden Nachrichten protokolliert, wenn die Anzahl der Präfixe diesen Prozentsatz des angegebenen Maximalgrenzwerts überschreitet. Nachdem die Sitzung abgebrochen wurde, wird sie in kurzer Zeit wiederhergestellt (es sei denn, Sie fügen die Anweisung hinzu).idle-timeout
Wenn Sie die Anweisung einschließen, kann die Sitzung für einen bestimmten Zeitraum oder für immer unterbrochen werden.idle-timeout
Wenn Sie angeben , wird die Sitzung erst wiederhergestellt, nachdem Sie einen Befehl ausgegeben haben.forever
clear bgp neighbor
Wenn Sie die Option einschließen, werden die überzähligen Routen verworfen, wenn die maximale Anzahl von Präfixen erreicht ist.drop-excess <percentage>
Wenn Sie einen Prozentsatz angeben, werden die Routen protokolliert, wenn die Anzahl der Präfixe diesen Prozentwert der maximalen Anzahl überschreitet. Wenn Sie diese Option einschließen, werden die überzähligen Routen ausgeblendet, wenn die maximale Anzahl von Präfixen erreicht ist.hide-excess <percentage>
Wenn Sie einen Prozentsatz angeben, werden die Routen protokolliert, wenn die Anzahl der Präfixe diesen Prozentwert der maximalen Anzahl überschreitet. Wenn der Prozentsatz geändert wird, werden die Routen automatisch neu ausgewertet. Wenn die aktiven Routen unter den angegebenen Prozentsatz fallen, bleiben diese Routen ausgeblendet.
In Junos OS Version 9.2 und höher können Sie alternativ eine Begrenzung für die Anzahl der Präfixe konfigurieren, die für eine BGP-Peer-Sitzung akzeptiert werden können. Weitere Informationen finden Sie unter .Begrenzen der Anzahl von Präfixen, die für eine BGP-Peersitzung akzeptiert werden
Begrenzen der Anzahl von Präfixen, die für eine BGP-Peersitzung akzeptiert werden
In Junos OS Version 9.2 und höher können Sie die Anzahl der Präfixe begrenzen, die für eine BGP-Peer-Sitzung akzeptiert werden können. Wenn dieser angegebene Grenzwert überschritten wird, wird eine Systemprotokollmeldung gesendet. Sie können auch angeben, dass die BGP-Sitzung zurückgesetzt werden soll, wenn der Grenzwert für die Anzahl der angegebenen Präfixe überschritten wird.
Um eine Begrenzung für die Anzahl der Präfixe zu konfigurieren, die in einer BGP-Peersitzung akzeptiert werden können, fügen Sie die folgende Anweisung ein:accepted-prefix-limit
accepted-prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop <percentage>; hide <percentage>; }
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Geben Sie für einen Wert im Bereich von 1 bis 4.294.967.295 an.maximum number
Fügen Sie die Anweisung zum Zurücksetzen der BGP-Peersitzung hinzu, wenn die Anzahl der akzeptierten Präfixe den konfigurierten Grenzwert überschreitet.teardown
Sie können auch einen Prozentwert zwischen 1 und 100 angeben, damit eine Systemprotokollmeldung gesendet wird, wenn die Anzahl der akzeptierten Präfixe diesen Prozentsatz des Maximalgrenzwerts überschreitet. Standardmäßig wird eine BGP-Sitzung, die zurückgesetzt wird, innerhalb kurzer Zeit wiederhergestellt. Fügen Sie die Anweisung ein, um zu verhindern, dass die BGP-Sitzung für einen bestimmten Zeitraum wiederhergestellt wird.idle-timeout
Sie können einen Timeout-Wert zwischen 1 und 2400 Minuten konfigurieren. Fügen Sie die Option hinzu, um zu verhindern, dass die BGP-Sitzung wiederhergestellt wird, bis Sie den Befehl ausgeben.foreverclear bgp neighbor
Wenn Sie die Anweisung einschließen und einen Prozentsatz angeben, werden die überschüssigen Routen verworfen, wenn die Anzahl der Präfixe den Prozentsatz überschreitet.drop-excess <percentage>
Wenn Sie die Anweisung einschließen und einen Prozentsatz angeben, werden die überschüssigen Routen ausgeblendet, wenn die Anzahl der Präfixe den Prozentsatz überschreitet.hide-excess <percentage>
Wenn der Prozentsatz geändert wird, werden die Routen automatisch neu ausgewertet.
Wenn das unterbrechungsfreie aktive Routing (NSR) aktiviert ist und ein Wechsel zu einer Backup-Routing-Engine erfolgt, werden ausgefallene BGP-Peers automatisch neu gestartet. Die Peers werden auch dann neu gestartet, wenn die Anweisung konfiguriert ist.idle-timeout forever
Alternativ können Sie einen Grenzwert für die Anzahl der Präfixe konfigurieren, die in einer BGP-Peersitzung empfangen (im Gegensatz zu akzeptierten) werden können. Weitere Informationen finden Sie unter .Begrenzen der Anzahl von Präfixen, die in einer BGP-Peersitzung empfangen werden
Konfigurieren von BGP-Routing-Tabellengruppen
Wenn eine BGP-Sitzung einen Unicast- oder Multicast-NLRI empfängt, installiert sie die Route in der entsprechenden Tabelle ( oder für Unicast und /oder für Multicast).inet.0inet6.0inet.2inet6.2 Um Unicast-Präfixe sowohl für die Unicast- als auch für die Multicast-Tabelle hinzuzufügen, können Sie BGP-Routing-Tabellengruppen konfigurieren. Dies ist nützlich, wenn Sie keine Multicast-NLRI-Aushandlung durchführen können.
Um BGP-Routing-Tabellengruppen zu konfigurieren, fügen Sie die folgende Anweisung ein:rib-group
rib-group group-name;
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Auflösen von Routen zu PE-Routing-Geräten, die sich in anderen ASs befinden
Sie können zulassen, dass beschriftete Routen in der Routing-Tabelle für die Routenauflösung platziert werden.inet.3 Diese Routen werden dann für Verbindungen mit Provider-Edge-Routing-Geräten (PE) aufgelöst, bei denen sich der Remote-PE über ein anderes autonomes System (AS) befindet. Damit ein PE-Routinggerät eine Route in der VPN-Routing- und Weiterleitungs-Routinginstanz (VRF) installieren kann, muss der nächste Hop in eine in der Tabelle gespeicherte Route aufgelöst werden.inet.3
Um Routen in die Routing-Tabelle aufzulösen, fügen Sie die folgende Anweisung ein:inet.3resolve-vpn
resolve-vpn group-name;
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Zulassen von beschrifteten und unbeschrifteten Routen
Sie können zulassen, dass sowohl beschriftete als auch unbeschriftete Routen in einer einzigen Sitzung ausgetauscht werden. Die beschrifteten Routen werden in der Routing-Tabelle inet.3 oder inet6.3 abgelegt, und sowohl beschriftete als auch unbeschriftete Unicast-Routen können an das Routing-Gerät gesendet oder von diesem empfangen werden.
Damit sowohl beschriftete als auch unbeschriftete Routen ausgetauscht werden können, fügen Sie die folgende Anweisung ein:rib
rib (inet.3 | inet6.3);
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Beispiel: Konfigurieren von IPv6-BGP-Routen über IPv4-Transport
In diesem Beispiel wird veranschaulicht, wie sowohl IPv6- als auch IPv4-Präfixe über eine IPv4-Verbindung exportiert werden, bei der beide Seiten mit einer IPv4-Schnittstelle konfiguriert sind.
Anforderungen
Über die Geräteinitialisierung hinaus ist keine spezielle Konfiguration erforderlich, bevor Sie dieses Beispiel konfigurieren.
Überblick
Beachten Sie beim Exportieren von IPv6-BGP-Präfixen Folgendes:
BGP leitet Next-Hop-Präfixe mithilfe des IPv4-zugeordneten IPv6-Präfixes ab. Beispielsweise wird das IPv4-Next-Hop-Präfix in das IPv6-Next-Hop-Präfix ::ffff:10.19.1.1 übersetzt.
10.19.1.1
HINWEIS:Es muss eine aktive Route zum IPv4-zugeordneten IPv6 Next Hop vorhanden sein, um IPv6-BGP-Präfixe zu exportieren.
Über die Verbindung muss eine IPv6-Verbindung konfiguriert werden. Die Verbindung muss entweder eine IPv6-Tunnel- oder eine Dual-Stack-Konfiguration sein. In diesem Beispiel wird Dual Stacking verwendet.
Verwenden Sie beim Konfigurieren von IPv4-zugeordneten IPv6-Präfixen eine Maske, die länger als 96 Bit ist.
Konfigurieren Sie eine statische Route, wenn Sie normale IPv6-Präfixe verwenden möchten. In diesem Beispiel werden statische Routen verwendet.
Abbildung 1 zeigt die Beispieltopologie.
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
Gerät R1
set interfaces fe-1/2/0 unit 1 family inet address 192.168.10.1/24 set interfaces fe-1/2/0 unit 1 family inet6 address ::ffff:192.168.10.1/120 set interfaces lo0 unit 1 family inet address 10.10.10.1/32 set protocols bgp group ext type external set protocols bgp group ext family inet unicast set protocols bgp group ext family inet6 unicast set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 192.168.10.10 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options rib inet6.0 static route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10 set routing-options static route 192.168.20.0/24 next-hop 192.168.10.10 set routing-options autonomous-system 100
Gerät R2
set interfaces fe-1/2/0 unit 2 family inet address 192.168.10.10/24 set interfaces fe-1/2/0 unit 2 family inet6 address ::ffff:192.168.10.10/120 set interfaces fe-1/2/1 unit 3 family inet address 192.168.20.21/24 set interfaces fe-1/2/1 unit 3 family inet6 address ::ffff:192.168.20.21/120 set interfaces lo0 unit 2 family inet address 10.10.0.1/32 set protocols bgp group ext type external set protocols bgp group ext family inet unicast set protocols bgp group ext family inet6 unicast set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext neighbor 192.168.10.1 peer-as 100 set protocols bgp group ext neighbor 192.168.20.1 peer-as 300 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options autonomous-system 200
Gerät R3
set interfaces fe-1/2/0 unit 4 family inet address 192.168.20.1/24 set interfaces fe-1/2/0 unit 4 family inet6 address ::ffff:192.168.20.1/120 set interfaces lo0 unit 3 family inet address 10.10.20.1/32 set protocols bgp group ext type external set protocols bgp group ext family inet unicast set protocols bgp group ext family inet6 unicast set protocols bgp group ext export send-direct set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 192.168.20.21 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options rib inet6.0 static route ::ffff:192.168.10.0/120 next-hop ::ffff:192.168.20.21 set routing-options static route 192.168.10.0/24 next-hop 192.168.20.21 set routing-options autonomous-system 300
Konfigurieren von Gerät R1
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie Gerät R1:
Konfigurieren Sie die Schnittstellen, einschließlich einer IPv4-Adresse und einer IPv6-Adresse.
[edit interfaces] user@R1# set fe-1/2/0 unit 1 family inet address 192.168.10.1/24 user@R1# set fe-1/2/0 unit 1 family inet6 address ::ffff:192.168.10.1/120 user@R1# set lo0 unit 1 family inet address 10.10.10.1/32
EBGP konfigurieren.
[edit protocols bgp group ext] user@R1# set type external user@R1# set export send-direct user@R1# set export send-static user@R1# set peer-as 200 user@R1# set neighbor 192.168.10.10
-
Aktivieren Sie BGP für die Übertragung von IPv4-Unicast- und IPv6-Unicast-Routen.
[edit protocols bgp group ext] user@R1# set family inet unicast user@R1# set family inet6 unicast
IPv4-Unicast-Routen sind standardmäßig aktiviert. Wenn Sie jedoch andere NLRI-Adressfamilien konfigurieren, muss IPv4-Unicast explizit konfiguriert werden.
-
Konfigurieren Sie die Routing-Richtlinie.
[edit policy-options] user@R1# set policy-statement send-direct term 1 from protocol direct user@R1# set policy-statement send-direct term 1 then accept user@R1# set policy-statement send-static term 1 from protocol static user@R1# set policy-statement send-static term 1 then accept
Konfigurieren Sie einige statische Routen.
[edit routing-options] user@R1# set rib inet6.0 static route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10 user@R1# set static route 192.168.20.0/24 next-hop 192.168.10.10
Konfigurieren Sie die AS-Nummer (Autonomous System).
[edit routing-options] user@R1# set autonomous-system 100
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , , und eingeben.show interfaces
show policy-options
show protocols
show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@R1# show interfaces fe-1/2/0 { unit 1 { family inet { address 192.168.10.1/24; } family inet6 { address ::ffff:192.168.10.1/120; } } } lo0 { unit 1 { family inet { address 10.10.10.1/32; } } }
user@R1# show policy-options policy-statement send-direct { term 1 { from protocol direct; then accept; } } policy-statement send-static { term 1 { from protocol static; then accept; } }
user@R1# show protocols bgp { group ext { type external; family inet { unicast; } family inet6 { unicast; } export [ send-direct send-static ]; peer-as 200; neighbor 192.168.10.10; } }
user@R1# show routing-options rib inet6.0 { static { route ::ffff:192.168.20.0/120 next-hop ::ffff:192.168.10.10; } } static { route 192.168.20.0/24 next-hop 192.168.10.10; } autonomous-system 100;
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit Wiederholen Sie die Konfiguration auf Gerät R2 und Gerät R3 und ändern Sie bei Bedarf die Schnittstellennamen und IP-Adressen.
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
Überprüfen des Nachbarstatus
Zweck
Stellen Sie sicher, dass BGP für die Übertragung von IPv6-Unicast-Routen aktiviert ist.
Was
Geben Sie im Betriebsmodus den Befehl ein.show bgp neighbor
user@R2> show bgp neighbor Peer: 192.168.10.1+179 AS 100 Local: 192.168.10.10+54226 AS 200 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ send-direct send-static ] Options: <Preference AddressFamily PeerAS Refresh> Address families configured: inet-unicast inet6-unicast Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 10.10.10.1 Local ID: 10.10.0.1 Active Holdtime: 90 Keepalive Interval: 30 Peer index: 0 BFD: disabled, down Local Interface: fe-1/2/0.2 NLRI for restart configured on peer: inet-unicast inet6-unicast NLRI advertised by peer: inet-unicast inet6-unicast NLRI for this session: inet-unicast inet6-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast inet6-unicast NLRI of received end-of-rib markers: inet-unicast inet6-unicast NLRI of all end-of-rib markers sent: inet-unicast inet6-unicast Peer supports 4 byte AS extension (peer-as 100) Peer does not support Addpath Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 1 Received prefixes: 3 Accepted prefixes: 2 Suppressed due to damping: 0 Advertised prefixes: 4 Table inet6.0 Bit: 20000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 1 Accepted prefixes: 1 Suppressed due to damping: 0 Advertised prefixes: 2 Last traffic (seconds): Received 24 Sent 12 Checked 60 Input messages: Total 132 Updates 6 Refreshes 0 Octets 2700 Output messages: Total 133 Updates 3 Refreshes 0 Octets 2772 Output Queue[0]: 0 Output Queue[1]: 0 Peer: 192.168.20.1+179 AS 300 Local: 192.168.20.21+54706 AS 200 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ send-direct send-static ] Options: <Preference AddressFamily PeerAS Refresh> Address families configured: inet-unicast inet6-unicast Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 10.10.20.1 Local ID: 10.10.0.1 Active Holdtime: 90 Keepalive Interval: 30 Peer index: 1 BFD: disabled, down Local Interface: fe-1/2/1.3 NLRI for restart configured on peer: inet-unicast inet6-unicast NLRI advertised by peer: inet-unicast inet6-unicast NLRI for this session: inet-unicast inet6-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast inet6-unicast NLRI of received end-of-rib markers: inet-unicast inet6-unicast NLRI of all end-of-rib markers sent: inet-unicast inet6-unicast Peer supports 4 byte AS extension (peer-as 300) Peer does not support Addpath Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 1 Received prefixes: 3 Accepted prefixes: 2 Suppressed due to damping: 0 Advertised prefixes: 4 Table inet6.0 Bit: 20000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 1 Accepted prefixes: 1 Suppressed due to damping: 0 Advertised prefixes: 2 Last traffic (seconds): Received 1 Sent 15 Checked 75 Input messages: Total 133 Updates 6 Refreshes 0 Octets 2719 Output messages: Total 131 Updates 3 Refreshes 0 Octets 2734 Output Queue[0]: 0 Output Queue[1]: 0
Bedeutung
Die verschiedenen Vorkommen von in der Ausgabe zeigen, dass BGP für die Übertragung von IPv6-Unicast-Routen aktiviert ist.inet6-unicast
Überprüfen der Routing-Tabelle
Zweck
Stellen Sie sicher, dass Gerät R2 über BGP-Routen in der inet6.0-Routing-Tabelle verfügt.
Was
Geben Sie im Betriebsmodus den Befehl ein.show route protocol bgp inet6.0
user@R2> show route protocol bgp table inet6.0 inet6.0: 7 destinations, 10 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both ::ffff:192.168.10.0/120 [BGP/170] 01:03:49, localpref 100, from 192.168.20.1 AS path: 300 I > to ::ffff:192.168.20.21 via fe-1/2/1.3 ::ffff:192.168.20.0/120 [BGP/170] 01:03:53, localpref 100, from 192.168.10.1 AS path: 100 I > to ::ffff:192.168.10.10 via fe-1/2/0.2
Ankündigung von IPv4-Routen über BGP IPv6-Sitzungen – Übersicht
In einem IPv6-Netzwerk kündigt BGP in der Regel Informationen zur Erreichbarkeit der IPv6-Netzwerkschicht über eine IPv6-Sitzung zwischen BGP-Peers an. In früheren Versionen unterstützte Junos OS nur den Austausch von inet6 Unicast-, inet6 Multicast- oder inet6 labeled-unicast-Adressfamilien. Diese Funktion ermöglicht den Austausch aller BGP-Adressfamilien. In einer Dual-Stack-Umgebung, die IPv6 im Core hat. Mit dieser Funktion kann BGP die IPv4-Unicast-Erreichbarkeit mit IPv4 Next Hop über eine IPv6-BGP-Sitzung ankündigen.
Diese Funktion gilt nur für BGP-IPv6-Sitzungen, bei denen IPv4 auf beiden Endpunkten konfiguriert ist. Dabei kann es sich um eine Loopback-Adresse oder eine beliebige IPv4-Adresse für eine IBGP- oder Multiple-Hop-EBGP-Sitzung handeln.local-ipv4-address
Wenn bei externen Single-Hop-BGP-Lautsprechern, die nicht Teil von BGP-Konföderationen sind, die konfigurierte lokale IPv4-Adresse nicht direkt verbunden ist, wird die BGP-Sitzung geschlossen und bleibt im Leerlauf, und es wird ein Fehler generiert, der in der Ausgabe des Befehls angezeigt wird.show bgp neighbor
Um IPv4-Routenankündigung über IPv6-Sitzung zu aktivieren, konfigurieren Sie wie folgt:local-ipv4-address
[edit protocols bgp family inet unicast] local-ipv4-address local ipv4 address;
Sie können diese Funktion nicht für die inet6-Unicast-, inet6-Multicast- oder inet6-Unicast-Adressfamilien mit Bezeichnung konfigurieren, da BGP bereits über die Funktion verfügt, diese Adressfamilien über eine IPv6-BGP-Sitzung anzukündigen.
Die konfigurierte Option wird nur verwendet, wenn BGP Routen mit Self-Next-Hop ankündigt.local-ipv4-address
Wenn IBGP Routen ankündigt, die von EBGP-Peers gelernt wurden, oder der Routenreflektor seinen Clients BGP-Routen ankündigt, ändert BGP den nächsten Hop der Route nicht, ignoriert den konfigurierten und verwendet den ursprünglichen IPv4-nächsten Hop.local-ipv4-address
Siehe auch
Beispiel: Ankündigung von IPv4-Routen über IPv6-BGP-Sitzungen
In diesem Beispiel wird gezeigt, wie IPv4-Routen über eine IPv6-BGP-Sitzung angekündigt werden. In einer Dual-Stack-Umgebung, die IPv6 im Kern hat, besteht die Notwendigkeit, Remote-IPv4-Hosts zu erreichen. Daher kündigt BGP IPv4-Routen mit IPv4 Next Hops zu BGP-Peers über BGP-Sitzungen unter Verwendung von IPv6-Quell- und Zieladressen an. Mit dieser Funktion kann BGP die IPv4-Unicast-Erreichbarkeit mit IPv4-Next-Hop-over-IPv6-BGP-Sitzungen ankündigen.
Anforderungen
In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:
Drei Router mit Dual-Stacking-Fähigkeit
Junos OS Version 16.1 oder höher, das auf allen Geräten ausgeführt wird
Bevor Sie IPv4-Ankündigungen über IPv6-BGP-Sitzungen aktivieren, stellen Sie Folgendes sicher:
Konfigurieren Sie die Geräteschnittstellen.
Konfigurieren Sie Dual-Stacking auf allen Geräten.
Überblick
Ab Version 16.1 ermöglicht Junos OS BGP, die IPv4-Unicast-Erreichbarkeit mit IPv4 Next Hop über eine IPv6-BGP-Sitzung anzukündigen. In früheren Junos OS-Versionen konnte BGP nur inet6-Unicast-, inet6-Multicast- und inet6-Unicast-Adressfamilien über IPv6-BGP-Sitzungen ankündigen. Mit dieser Funktion kann BGP alle BGP-Adressfamilien über eine IPv6-Sitzung austauschen. Sie können BGP aktivieren, um IPv4-Routen mit IPv4 Next Hops zu BGP-Peers über eine IPv6-Sitzung anzukündigen. Die konfigurierte Option wird nur verwendet, wenn BGP Routen mit Self-Next-Hop ankündigt.local-ipv4-address
Sie können diese Funktion nicht für die inet6-Unicast-, inet6-Multicast- oder inet6-Unicast-Adressfamilien mit Bezeichnung konfigurieren, da BGP bereits über die Funktion verfügt, diese Adressfamilien über eine IPv6-BGP-Sitzung anzukündigen.
Topologie
In wird eine externe IPv6-BGP-Sitzung zwischen den Routern R1 und R2 ausgeführt.Abbildung 2 Zwischen Router R2 und Router R3 wird eine IPv6-IBGP-Sitzung eingerichtet. Statische IPv4-Routen werden auf dem BGP auf R1 neu verteilt. Um die IPv4-Routen über die IPv6-BGP-Sitzung neu zu verteilen, muss die neue Funktion auf allen Routern auf Hierarchieebene aktiviert werden.[edit protocols bgp address family]
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein, und geben Sie sie dann aus dem Konfigurationsmodus ein .[edit]commit
Router R1
set interfaces ge-0/0/0 unit 0 description R1->R2 set interfaces ge-0/0/0 unit 0 family inet address 140.1.1.1/24 set interfaces ge-0/0/0 unit 0 family inet6 address ::140.1.1.1/126 set interfaces lo0 unit 0 family inet6 address 1::1/128 set routing-options static route 11.1.1.1/32 discard set routing-options static route 11.1.1.2/32 discard set routing-options autonomous-system 64497 set protocols bgp group ebgp-v6 type external set protocols bgp group ebgp-v6 export p1 set protocols bgp group ebgp-v6 peer-as 64496 set protocols bgp group ebgp-v6 neighbor ::140.1.1.2 description R2 set protocols bgp group ebgp-v6 neighbor ::140.1.1.2 family inet unicast local-ipv4-address 140.1.1.1 set policy-options policy-statement p1 from protocol static set policy-options policy-statement p1 then accept
Router R2
set interfaces ge-0/0/0 unit 0 description R2->R1 set interfaces ge-0/0/0 unit 0 family inet address 140.1.1.2/24 set interfaces ge-0/0/0 unit 0 family inet6 address ::140.1.1.2/126 set interfaces ge-0/0/1 unit 0 description R2->R3 set interfaces ge-0/0/1 unit 0 family inet address 150.1.1.1/24 set interfaces ge-0/0/1 unit 0 family inet6 address ::150.1.1.1/126 set interfaces lo0 unit 0 family inet6 address 1::2/128 set routing-options autonomous-system 64496 set protocols bgp group ibgp-v6 type internal set protocols bgp group ibgp-v6 export change-nh set protocols bgp group ibgp-v6 neighbor ::150.1.1.2 description R3 set protocols bgp group ibgp-v6 neighbor ::150.1.1.2 family inet unicast local-ipv4-address 150.1.1.1 set protocols bgp group ebgp-v6 type external set protocols bgp group ebgp-v6 peer-as 64497 set protocols bgp group ebgp-v6 neighbor ::140.1.1.1 description R1 set protocols bgp group ebgp-v6 neighbor ::140.1.1.1 family inet unicast local-ipv4-address 140.1.1.2 set policy-options policy-statement change-nh from protocol bgp set policy-options policy-statement change-nh then next-hop self set policy-options policy-statement change-nh then accept
Router R3
set interfaces ge-0/0/0 unit 0 description R3->R2 set interfaces ge-0/0/0 unit 0 family inet address 150.1.1.2/24 set interfaces ge-0/0/0 unit 0 family inet6 address ::150.1.1.2/126 set interfaces lo0 unit 0 family inet6 address 1::3/128 set routing-options autonomous-system 64496 set protocols bgp group ibgp-v6 type internal set protocols bgp group ibgp-v6 neighbor ::150.1.1.1 description R2 set protocols bgp group ibgp-v6 neighbor ::150.1.1.1 family inet unicast local-ipv4-address 150.1.1.2
Konfigurieren von Router R1
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie Router R1:
Wiederholen Sie diesen Vorgang für andere Router, nachdem Sie die entsprechenden Schnittstellennamen, Adressen und anderen Parameter geändert haben.
Konfigurieren Sie die Schnittstellen mit IPv4- und IPv6-Adressen.
[edit interfaces] user@R1# set ge-0/0/0 unit 0 description R1->R2 user@R1# set ge-0/0/0 unit 0 family inet address 140.1.1.1/24 user@R1# set ge-0/0/0 unit 0 family inet6 address ::140.1.1.1/126
Konfigurieren Sie die Loopback-Adresse.
[edit interfaces] user@R1# set lo0 unit 0 family inet6 address 1::1/128
Konfigurieren Sie eine statische IPv4-Route, die angekündigt werden muss.
[edit routing-options] user@R1# set static route 11.1.1.1/32 discard user@R1# set static route 11.1.1.2/32 discard
Konfigurieren Sie das autonome System für BGP-Hosts.
[edit routing-options] user@R1# set autonomous-system 64497
Konfigurieren Sie EBGP auf den externen Edge-Routern.
[edit protocols] user@R1# set bgp group ebgp-v6 type external user@R1# set bgp group ebgp-v6 peer-as 64496 user@R1# set bgp group ebgp-v6 neighbor ::140.1.1.2 description R2
Aktivieren Sie die Funktion, um IPv4-Adddress 140.1.1.1 über BGP-IPv6-Sitzungen anzukündigen.
[edit protocols] user@R1# set bgp group ebgp-v6 neighbor ::140.1.1.2 family inet unicast local-ipv4-address 140.1.1.1
Definieren Sie eine Richtlinie p1, um alle statischen Routen zu akzeptieren.
[edit policy-options] user@R1# set policy-statement p1 from protocol static user@R1# set policy-statement p1 then accept
Wenden Sie die Richtlinie p1 auf die EBGP-Gruppe ebgp-v6 an.
[edit protocols] user@R1# set bgp group ebgp-v6 export p1
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , , und eingeben.show interfacesshow protocolsshow routing-optionsshow policy-options Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@R1# show interfaces ge-0/0/0 { unit 0 { description R1->R2; family inet { address 140.1.1.1/24; } family inet6 { address ::140.1.1.1/126; } } lo0 { unit 0 { family inet { address 1::1/128; } } } }
[edit] user@R1# show protocols bgp { group ebgp-v6 { type external; export p1; peer-as 64496; neighbor ::140.1.1.2 { description R2; family inet { unicast { local-ipv4-address 140.1.1.1; } } } } }
[edit] user@R1# show routing-options static { route 11.1.1.1/32 discard; route 11.1.1.2/32 discard; } autonomous-system 64497;
[edit] user@R1# show policy-options policy-statement p1 { from { protocol static; } then accept; }
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
user@R1# commit
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen, ob die BGP-Sitzung aktiv ist
- Überprüfen, ob die IPv4-Adresse angekündigt wird
- Überprüfen, ob der BGP-Nachbarrouter R2 die angekündigte IPv4-Adresse empfängt
Überprüfen, ob die BGP-Sitzung aktiv ist
Zweck
Stellen Sie sicher, dass BGP auf den konfigurierten Schnittstellen ausgeführt wird und dass die BGP-Sitzung für jede Nachbaradresse aktiv ist.
Was
Führen Sie den Befehl im Betriebsmodus auf Router R1 aus.show bgp summary
user@R1> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 0 0 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... ::140.1.1.2 64496 4140 4158 0 0 1d 7:10:36 0/0/0/0 0/0/0/0
Bedeutung
Die BGP-Sitzung ist betriebsbereit, und das BGP-Peering ist eingerichtet.
Überprüfen, ob die IPv4-Adresse angekündigt wird
Zweck
Stellen Sie sicher, dass die konfigurierte IPv4-Adresse von Router R1 den konfigurierten BGP-Nachbarn angekündigt wird.
Was
Führen Sie den Befehl im Betriebsmodus auf Router R1 aus.show route advertising-protocol bgp ::150.1.1.2
user@R1> show route advertising-protocol bgp ::150.1.1.2 inet.0: 48 destinations, 48 routes (48 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 11.1.1.1/32 Self 64497 64497 I * 11.1.1.2/32 Self 64497 64497 I
Bedeutung
Die statische IPv4-Route wird dem BGP-Nachbarrouter R2 angekündigt.
Überprüfen, ob der BGP-Nachbarrouter R2 die angekündigte IPv4-Adresse empfängt
Zweck
Stellen Sie sicher, dass Router R2 die IPv4-Adresse empfängt, die Router R1 dem BGP-Nachbarn über IPv6 ankündigt.
Was
user@R2> show route receive-protocol bgp ::140.1.1.1 inet.0: 48 destinations, 48 routes (48 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 11.1.1.1/32 140.1.1.1 64497 I * 11.1.1.2/32 140.1.1.1 64497 I iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) inet6.0: 9 destinations, 10 routes (9 active, 0 holddown, 0 hidden)
Bedeutung
Das Vorhandensein der statischen IPv4-Route in der Routing-Tabelle von Router R2 weist darauf hin, dass er die angekündigten IPv4-Routen von Router R1 empfängt.
Grundlegendes zur Neuverteilung von IPv4-Routen mit IPv6 Next Hop in BGP
In einem Netzwerk, in dem überwiegend IPv6-Datenverkehr übertragen wird, müssen bei Bedarf IPv4-Routen geroutet werden. Beispiel: ein Internetdienstanbieter, der über ein reines IPv6-Netzwerk verfügt, aber Kunden hat, die weiterhin IPv4-Datenverkehr weiterleiten. In diesem Fall ist es notwendig, auf solche Kunden einzugehen und IPv4-Datenverkehr über ein IPv6-Netzwerk weiterzuleiten. Wie in RFC 5549, Ankündigung von IPv4-Informationen zur Erreichbarkeit der Netzwerkschicht mit einem IPv6 Next Hop , beschrieben, wird IPv4-Datenverkehr von CPE-Geräten (Customer Premises Equipment) zu IPv4-over-IPv6-Gateways getunnelt. Diese Gateways werden CPE-Geräten über Anycast-Adressen angekündigt. Die Gateway-Geräte erstellen dann dynamische IPv4-over-IPv6-Tunnel zu Remote-CPE-Geräten und kündigen IPv4-Aggregatrouten an, um den Datenverkehr zu steuern.
Die dynamische IPv4-over-IPv6-Tunnelfunktion unterstützt keine einheitliche ISSU in Junos OS Version 17.3R1.
Route Reflectors (RRs) mit einer programmierbaren Schnittstelle werden über IBGP mit den Gateway-Routern verbunden und hosten Routen mit IPv6-Adresse als nächstem Hop. Diese Ressourceneinträge kündigen die IPv4 /32-Adressen an, um die Tunnelinformationen in das Netzwerk einzuspeisen. Die Gateway-Router erstellen dynamische IPv4-over-IPv6-Tunnel zum Edge des Remote-Kundenanbieters. Der Gateway-Router kündigt auch die IPv4-Aggregatrouten an, um den Datenverkehr zu steuern. Der RR kündigt dann dem ISP die Tunnelquellrouten an. Wenn der RR die Tunnelroute entfernt, zieht BGP auch die Route zurück, was dazu führt, dass der Tunnel abgerissen wird und das CPE nicht mehr erreichbar ist. Der Gateway-Router zieht auch die aggregierten IPv4-Routen und IPv6-Tunnelquellrouten zurück, wenn alle aggregierten Routen, die an den Routen mitwirken, entfernt werden. Der Gateway-Router sendet den Routenrückzug, wenn die Anker-Linecard der Packet Forwarding Engine ausfällt, sodass der Datenverkehr an andere Gateway-Router umgeleitet wird.
Die folgenden Erweiterungen werden eingeführt, um IPv4-Routen mit einem IPv6 Next Hop zu unterstützen:
- BGP-Codierung für den nächsten Hop
- Tunnel-Lokalisierung
- Tunnel-Handling
- Tunnel-Load-Balancing und Anchor Packet Forwarding Engine-Fehlerbehandlung
- Tunnel-Loopback-Stream-Statistiken
BGP-Codierung für den nächsten Hop
BGP wird um eine Next-Hop-Codierungsfunktion erweitert, die zum Senden von IPv4-Routen mit IPv6-Next-Hops verwendet wird. Wenn diese Funktion auf dem Remote-Peer nicht verfügbar ist, gruppiert BGP die Peers basierend auf dieser Codierungsfunktion und entfernt die BGP-Familie ohne Codierungsfunktion aus der ausgehandelten NLRI-Liste (Network Layer Reachability Information). Junos OS lässt nur eine Auflösungstabelle zu, z. B. inet.0. Um IPv4-BGP-Routen mit IPv6 Next Hops zuzulassen, erstellt BGP eine neue Auflösungsstruktur. Mit dieser Funktion kann eine Junos OS-Routing-Tabelle über mehrere Auflösungsstrukturen verfügen.
Neben RFC 5549, Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop, wird eine neue Kapselungscommunity, die in RFC 5512 spezifiziert ist, der BGP Encapsulation Subsequent Address Family Identifier (SAFI) und das BGP Tunnel Encapsulation Attribute eingeführt, um die Adressfamilie der Next-Hop-Adresse zu bestimmen. Die Kapselungscommunity gibt den Tunneltyp an, den der Eingangsknoten erstellen muss. Wenn BGP IPv4-Routen mit der IPv6-Adresse des nächsten Hops und der V4oV6-Kapselungscommunity empfängt, erstellt BGP dynamische IPv4-über-IPv6-Tunnel. Wenn BGP Routen ohne die Kapselungs-Community empfängt, werden BGP-Routen aufgelöst, ohne dass der V4oV6-Tunnel erstellt wird.
Auf Hierarchieebene ist eine neue Richtlinienaktion verfügbar, um die neue erweiterte Kapselung zu unterstützen.dynamic-tunnel-attributes dyan-attribute
[edit policy-statement policy name term then]
Tunnel-Lokalisierung
Die dynamische Tunnelinfrastruktur wird durch Tunnellokalisierung erweitert, um eine größere Anzahl von Tunneln zu unterstützen. Es besteht Bedarf an Tunnellokalisierung, um Ausfallsicherheit für den Datenverkehr zu gewährleisten, wenn der Anker ausfällt. Ein oder mehrere Chassis unterstützen sich gegenseitig und lassen den Datenverkehr vom Routing-Protokollprozess (RPD) vom Fehlerpunkt zum Backup-Chassis leiten. Das Chassis kündigt nur diese aggregierten Präfixe anstelle der einzelnen Loopback-Adressen im Netzwerk an.
Tunnel-Handling
IPv4-over-IPv6-Tunnel nutzen die dynamische Tunnelinfrastruktur zusammen mit Tunnelverankerung, um die erforderliche gehäuseweite Skalierung zu unterstützen. Der Tunnelstatus wird für eine Packet Forwarding Engine lokalisiert, und die anderen Packet Forwarding Engines leiten den Datenverkehr zum Tunnelanker.
Tunnel-Eingang
Kapselt IPv4-Datenverkehr innerhalb des IPv6-Headers.
Die Durchsetzung der maximalen Übertragungseinheit (Maximum Transmission Unit, MTU) erfolgt vor der Kapselung. Wenn die Größe des gekapselten Pakets die MTU des Tunnels überschreitet und die IPv4-Pakete nicht festgelegt sind, wird das Paket fragmentiert, und diese Fragmente werden gekapselt.
DF-bit
Verwendet Hash-basiertes Traffic-Load-Balancing für innere Paket-Header.
Leitet Datenverkehr an die IPv6-Zieladresse weiter. Die IPv6-Adresse wird dem IPv6-Header entnommen.
Tunnel-Ausgang
Entkapselt das IPv4-Paket, das im IPv6-Paket vorhanden ist.
Führt eine Anti-Spoof-Prüfung durch, um sicherzustellen, dass das IPv6- und IPv4-Paar mit den Informationen übereinstimmt, die zum Einrichten des Tunnels verwendet wurden.
Sucht die IPv4-Zieladresse aus dem IPv4-Header des entkapselten Pakets und leitet das Paket an die angegebene IPv4-Adresse weiter.
Tunnel-Load-Balancing und Anchor Packet Forwarding Engine-Fehlerbehandlung
Der Ausfall der Packet Forwarding Engine muss umgehend behandelt werden, um eine Null-Route-Filterung des Tunneldatenverkehrs zu vermeiden, der in der Packet Forwarding Engine verankert ist. Bei der Tunnellokalisierung werden BGP-Ankündigungen verwendet, um den Fehler global zu beheben. Der Tunneldatenverkehr wird vom Fehlerpunkt weg auf ein anderes Backup-Chassis umgeleitet, das den identischen Tunnelstatus aufweist. Für den Lastenausgleich des Datenverkehrs ist das Chassis so konfiguriert, dass für jeden der Präfixsätze unterschiedliche MED-Werte (Multiple Exit Discriminator) angekündigt werden, sodass nur der Datenverkehr für ein Viertel der Tunnel durch jedes Chassis geleitet wird. CPE-Datenverkehr wird ebenfalls auf ähnliche Weise gehandhabt, indem auf jedem Chassis derselbe Satz von Anycast-Adressen konfiguriert wird und nur ein Viertel des Datenverkehrs auf jedes Chassis gelenkt wird.
Die Anchor Packet Forwarding Engine ist die einzige Einheit, die die gesamte Verarbeitung für einen Tunnel durchführt. Die Auswahl der Anker-Paketweiterleitungs-Engine erfolgt durch statische Bereitstellung und ist an die physischen Schnittstellen der Paketweiterleitungs-Engine gebunden. Wenn eine der Paketweiterleitungs-Engines ausfällt, markiert der Daemon alle Paketweiterleitungs-Engines auf der Linecard und übermittelt diese Informationen an Routing-Protokoll-Routing-Protokoll-, Routing-, Prozess- und andere Daemons. Der Routing-Protokollprozess sendet BGP-Entnahmen für die Präfixe, die in der ausgefallenen Paketweiterleitungs-Engine verankert sind, und für die IPv6-Adressen, die der ausgefallenen Paketweiterleitungs-Engine zugewiesen sind. Diese Ankündigungen leiten den Datenverkehr an andere Backup-Chassis um. Wenn die ausgefallene Packet Forwarding Engine wieder aktiv ist, markiert das Chassis die Packet Forwarding Engine als und aktualisiert den Routing-Protokollprozess.up
Der Routing-Protokollprozess löst BGP-Updates für seine Peers aus, sodass Tunnel, die in der spezifischen Paketweiterleitungs-Engine verankert sind, jetzt für das Routing des Datenverkehrs verfügbar sind. Dieser Vorgang kann bei einer groß angelegten Tunnelkonfiguration Minuten dauern. Daher ist der Mechanismus in das System integriert, um minimale Datenverkehrsverluste zu gewährleisten und gleichzeitig den Datenverkehr wieder auf das ursprüngliche Chassis umzuschalten.Ack
Tunnel-Loopback-Stream-Statistiken
Die dynamische Tunnelinfrastruktur verwendet Loopback-Streams in der Paketweiterleitungs-Engine, um das Paket nach der Kapselung in einer Schleife zu schleifen. Da die Bandbreite dieses Loopback-Streams begrenzt ist, muss die Leistung von Tunnel-Loopback-Streams überwacht werden.
Um die Statistiken des Loopback-Streams zu überwachen, verwenden Sie den Betriebsbefehl , der die aggregierten Statistiken des Loopback-Streams einschließlich Weiterleitungsrate, Drop-Paketrate und Byterate anzeigt.show pfe statistics traffic detail
Siehe auch
BGP für die Neuverteilung von IPv4-Routen mit IPv6-Next-Hop-Adressen konfigurieren
Ab Version 17.3R1 können Junos OS-Geräte IPv4-Datenverkehr über ein reines IPv6-Netzwerk weiterleiten, das in der Regel keinen IPv4-Datenverkehr weiterleiten kann. Wie in RFC 5549 beschrieben, wird IPv4-Datenverkehr von CPE-Geräten zu IPv4-over-IPv6-Gateways getunnelt. Diese Gateways werden CPE-Geräten über Anycast-Adressen angekündigt. Die Gateway-Geräte erstellen dann dynamische IPv4-over-IPv6-Tunnel zu Remote-Geräten am Kundenstandort und kündigen IPv4-Aggregatrouten zur Steuerung des Datenverkehrs an. Routenreflektoren mit programmierbaren Schnittstellen speisen die Tunnelinformationen in das Netzwerk ein. Die Routenreflektoren sind über IBGP mit Gateway-Routern verbunden, die die IPv4-Adressen von Host-Routen mit IPv6-Adressen als nächsten Hop ankündigen.
Die dynamische IPv4-over-IPv6-Tunnelfunktion unterstützt keine einheitliche ISSU in Junos OS Version 17.3R1.
Bevor Sie mit der Konfiguration von BGP für die Verteilung von IPv4-Routen mit IPv6-Next-Hop-Adressen beginnen, gehen Sie wie folgt vor:
Konfigurieren Sie die Geräteschnittstellen.
Konfigurieren Sie OSPF oder ein anderes IGP-Protokoll.
Konfigurieren Sie MPLS und LDP.
Konfigurieren Sie BGP.
So konfigurieren Sie BGP für die Verteilung von IPv4-Routen mit IPv6-Next-Hop-Adressen:
Siehe auch
Aktivieren von Layer-2-VPN und VPLS-Signalübertragung
Sie können BGP für die Übertragung von Layer-2-VPN- und VPLS-NLRI-Nachrichten aktivieren.
Um die VPN- und VPLS-Signalisierung zu aktivieren, fügen Sie die folgende Anweisung ein:family
family { l2vpn { signaling { prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>; } } } }
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Um eine maximale Anzahl von Präfixen zu konfigurieren, fügen Sie die folgende Anweisung ein:prefix-limit
prefix-limit { maximum number; teardown <percentage> <idle-timeout (forever | minutes)>; drop-excess <percentage>; hide-excess <percentage>;}
Eine Liste der Hierarchieebenen, auf denen Sie diese Anweisung einschließen können, finden Sie im Abschnitt Anweisungszusammenfassung für diese Anweisung.
Wenn Sie die maximale Anzahl von Präfixen festlegen, wird eine Meldung protokolliert, wenn diese Anzahl erreicht wird. Wenn Sie die Anweisung einschließen, wird die Sitzung abgebrochen, wenn die maximale Anzahl von Präfixen erreicht ist.teardown
Wenn Sie einen Prozentsatz angeben, werden Nachrichten protokolliert, wenn die Anzahl der Präfixe diesen Prozentsatz erreicht. Sobald die Sitzung abgerissen ist, wird sie in kurzer Zeit wiederhergestellt. Fügen Sie die Anweisung ein, die Sitzung für einen bestimmten Zeitraum oder für immer unterzuhalten.idle-timeout
Wenn Sie angeben , wird die Sitzung erst wiederhergestellt, nachdem Sie den Befehl verwendet haben.forever
clear bgp neighbor
Wenn Sie die Anweisung einschließen und einen Prozentsatz angeben, werden die überschüssigen Routen verworfen, wenn die Anzahl der Präfixe den Prozentsatz überschreitet.drop-excess <percentage>
Wenn Sie die Anweisung einschließen und einen Prozentsatz angeben, werden die überschüssigen Routen ausgeblendet, wenn die Anzahl der Präfixe den Prozentsatz überschreitet.hide-excess <percentage>
Wenn der Prozentsatz geändert wird, werden die Routen automatisch neu ausgewertet.
Siehe auch
Grundlegendes zu BGP-Datenstromrouten für die Datenverkehrsfilterung
Eine Flow-Route ist eine Aggregation von Übereinstimmungsbedingungen für IP-Pakete. Flow-Routen werden als Input-Weiterleitungstabellenfilter (implizit) installiert und mithilfe von NLRI-Meldungen (Network-Layer Reachability Information) der Flow-Spezifikation über das Netzwerk weitergegeben und in der Flow-Routing-Tabelle installiert.instance-name.inetflow.0
Pakete können nur dann Datenverkehrsrouten durchlaufen, wenn bestimmte Übereinstimmungsbedingungen erfüllt sind.
Flow-Routen und Firewall-Filter ähneln sich insofern, als sie Pakete basierend auf ihren Komponenten filtern und eine Aktion für die übereinstimmenden Pakete ausführen. Flow-Routen bieten Funktionen zur Filterung des Datenverkehrs und zur Begrenzung der Rate, ähnlich wie Firewall-Filter. Darüber hinaus können Sie Strömungsrouten über verschiedene autonome Systeme hinweg propagieren.
Datenflussrouten werden von BGP über NLRI-Nachrichten mit Datenflussspezifikation weitergegeben. Sie müssen BGP aktivieren, um diese NLRIs weitergeben zu können.
Ab Junos OS Version 15.1 werden Änderungen implementiert, um die NSR-Unterstützung (Nonstop Active Routing) für vorhandene inet-flow- und inetvpn-flow-Familien zu erweitern und die Routenvalidierung für BGP-Flowspec per draft-ietf-idr-bgp-flowspec-oid-01 zu erweitern. Im Rahmen dieser Erweiterung werden zwei neue Anweisungen eingeführt. Weitere Informationen finden Sie unter erzwingen Sie zuerst als und keine Installation.enforce-first-asno-install
Ab Junos OS Version 16.1 wird die IPv6-Unterstützung auf die BGP-Datenstromspezifikation ausgeweitet, die die Weitergabe von Datenverkehrsflussspezifikationsregeln für IPv6- und VPN-IPv6-Pakete ermöglicht. Die BGP-Flow-Spezifikation automatisiert die Koordination von Regeln für die Filterung des Datenverkehrs, um Distributed-Denial-of-Service-Angriffe während des Nonstop Active Routing (NSR) abzuwehren.
Ab Junos OS Version 16.1R1 unterstützt die BGP-Datenstromspezifikation Filteraktionen zur Datenverkehrsmarkierung .extended-community
Bei IPv4-Datenverkehr ändert Junos OS die DiffServ-Codepunkt-Bits (DSCP) eines transitierenden IPv4-Pakets in den entsprechenden Wert der erweiterten Community. Bei IPv6-Paketen ändert Junos OS die ersten sechs Bits des Feldes des übertragenden IPv6-Pakets in den entsprechenden Wert der erweiterten Community.traffic class
Ab Junos OS Version 17.1R1 kann BGP auf Routern der PTX-Serie, auf denen FPCs der dritten Generation (FPC3-PTX-U2 und FPC3-PTX-U3 auf PTX5000 und FPC3-SFF-PTX-U0 und FPC3-SFF-PTX-U1 auf PTX3000) installiert sind, Flow-Specification-NLRI-Nachrichten (Network Layer Reachability Information) übertragen. Durch die Weitergabe von Firewall-Filterinformationen als Teil von BGP können Sie Firewall-Filter gegen Denial-of-Service-Angriffe (DOS) dynamisch über autonome Systeme hinweg weitergeben.
Ab Junos OS Version 17.2R1 kann BGP NLRI-Meldungen (Network Layer Reachability Information) mit Datenflussspezifikation auf PTX1000 Routern übertragen, auf denen FPCs der dritten Generation installiert sind. Durch die Weitergabe von Firewall-Filterinformationen als Teil von BGP können Sie Firewall-Filter gegen Denial-of-Service-Angriffe (DOS) dynamisch über autonome Systeme hinweg weitergeben.
Ab cRPD Release 20.3R1 werden Flow-Routen und Polizeiregeln, die über die BGP-Flow-Spezifikation NLRI propagiert werden, über das Linux Netfilter-Framework in cRPD-Umgebungen in den Linux-Kernel heruntergeladen.
- Übereinstimmungsbedingungen für Flow-Routen
- Aktionen für Flow-Routen
- Validieren von Flow-Routen
- Unterstützung für BGP Flow-Specification Algorithm Version 7 und höher
Übereinstimmungsbedingungen für Flow-Routen
Sie geben Bedingungen an, die das Paket erfüllen muss, bevor die Aktion in der Anweisung für eine Flow-Route ausgeführt wird.then
Alle Bedingungen in der Anweisung müssen übereinstimmen, damit die Aktion ausgeführt werden kann.from
Die Reihenfolge, in der Sie Übereinstimmungsbedingungen angeben, ist nicht wichtig, da ein Paket alle Bedingungen in einem Ausdruck erfüllen muss, damit eine Übereinstimmung auftritt.
Um eine Übereinstimmungsbedingung zu konfigurieren, schließen Sie die Anweisung auf Hierarchieebene ein.match
[edit routing-options flow]
Tabelle 1 Beschreibt die Übereinstimmungsbedingungen für die Flow-Route.
Übereinstimmungsbedingung |
Beschreibung |
---|---|
|
IP-Zieladressfeld. Sie können das optionale Feld verwenden, das nur auf Junos-Geräten mit erweiterten MPCs verfügbar ist, die für den Modus konfiguriert sind, um die Anzahl der Bits anzugeben, die übersprungen werden müssen, bevor Junos OS mit der Übereinstimmung mit einem IPv6-Präfix beginnt. |
|
TCP- oder UDP-Zielportfeld (User Datagram Protocol). Es ist nicht möglich, sowohl die Übereinstimmungsbedingung als auch die Übereinstimmungsbedingung im selben Begriff anzugeben. Anstelle des numerischen Werts können Sie eines der folgenden Textsynonyme angeben (die Portnummern werden ebenfalls aufgelistet): (1483), (179), (512), (68), (67), (514), (2401), (67), (53), (2105), (2106), (512), (79), (21), (20), (80), (443), (113), (143), (88), (543), (761), (754), (760), (544), (389), (513), (434), (435), (639), (138), (137), (139), (2049), (119), (518), (123), (110), (1723), (515), (1813), (1812), (520), (2108), (25), (161), (162), (444), (1080), (22), (111), (514), (65), (517), (23), (69), (525), (513), (177), (2103) oder (2104). |
|
Codepunkt für differenzierte Dienste (DSCP). Das DiffServ-Protokoll verwendet das ToS-Byte (Type-of-Service) im IP-Header. Die höchstwertigen sechs Bits dieses Bytes bilden den DSCP. Sie können DSCP in Hexadezimal- oder Dezimalform angeben. |
|
Stimmt mit dem Wert für die Flussbezeichnung überein. Der Wert dieses Feldes reicht von 0 bis 1048575. Diese Übereinstimmungsbedingung wird nur auf Junos-Geräten mit erweiterten MPCs unterstützt, die für den Modus konfiguriert sind. |
|
Feld für den Fragmenttyp. Die Schlüsselwörter werden nach dem Fragmenttyp gruppiert, dem sie zugeordnet sind:
Diese Übereinstimmungsbedingung wird nur auf Junos OS-Geräten mit erweiterten MPCs unterstützt, die für den Modus konfiguriert sind. |
|
ICMP-Code-Feld. Dieser Wert oder dieses Schlüsselwort enthält spezifischere Informationen als . Anstelle des numerischen Werts können Sie eines der folgenden Textsynonyme angeben (die Feldwerte werden ebenfalls aufgelistet). Die Schlüsselwörter werden nach dem ICMP-Typ gruppiert, dem sie zugeordnet sind:
|
|
ICMP-Pakettypfeld. Normalerweise geben Sie diese Übereinstimmung in Verbindung mit der match-Anweisung an, um zu bestimmen, welches Protokoll auf dem Port verwendet wird. Anstelle des numerischen Werts können Sie eines der folgenden Textsynonyme angeben (die Feldwerte werden ebenfalls aufgelistet): (0), (8), (16), (15), (17), (18), (12), (5), (9), (10), (4), (11), (13), (14) oder (3). |
|
Gesamtlänge des IP-Pakets. |
|
TCP- oder UDP-Quell- oder Zielportfeld. Sie können nicht sowohl die Übereinstimmungs- als auch die Übereinstimmungsbedingung oder im selben Begriff angeben. Anstelle des numerischen Werts können Sie eines der unter aufgeführten Textsynonyme angeben. |
|
IP-Protokoll-Feld. Anstelle des numerischen Werts können Sie eines der folgenden Textsynonyme angeben (die Feldwerte werden ebenfalls aufgelistet): (8), (50), (47), (1), (2), (4), (41), (89), (103), (46), (6) oder (17). Diese Übereinstimmungsbedingung wird für IPv6 nur auf Junos-Geräten mit erweiterten MPCs unterstützt, die für den Modus konfiguriert sind. |
|
IP-Quelladressfeld. Sie können das optionale Feld verwenden, das nur auf Junos-Geräten mit erweiterten MPCs verfügbar ist, die für den Modus konfiguriert sind, um die Anzahl der Bits anzugeben, die übersprungen werden müssen, bevor Junos OS mit der Übereinstimmung mit einem IPv6-Präfix beginnt. |
|
TCP- oder UDP-Quellportfeld. Sie können die Bedingungen und übereinstimmen nicht im selben Begriff angeben. Anstelle des numerischen Feldes können Sie eines der unter aufgeführten Textsynonyme angeben. |
|
TCP-Header-Format. |
Aktionen für Flow-Routen
Sie können die Aktion angeben, die ausgeführt werden soll, wenn das Paket den Bedingungen entspricht, die Sie in der Flow-Route konfiguriert haben. Um eine Aktion zu konfigurieren, schließen Sie die Anweisung auf Hierarchieebene ein.then
[edit routing-options flow]
Tabelle 2 Beschreibt die Flow-Routen-Aktionen.
Aktion oder Aktionsmodifikator |
Beschreibung |
---|---|
Aktionen | |
|
Akzeptieren Sie ein Paket. Dies ist die Standardeinstellung. |
|
Verwerfen Sie ein Paket im Hintergrund, ohne eine ICMP-Nachricht (Internet Control Message Protocol) zu senden. |
|
Ersetzen Sie alle Gemeinden in der Route durch die angegebenen Gemeinden. |
Mark value |
Legen Sie einen DSCP-Wert für Datenverkehr fest, der diesem Datenstrom entspricht. Geben Sie einen Wert zwischen 0 und 63 an. Diese Aktion wird nur auf Junos-Geräten mit erweiterten MPCs unterstützt, die für den Modus konfiguriert sind. |
|
Fahren Sie mit der nächsten Übereinstimmungsbedingung zur Auswertung fort. |
|
Geben Sie eine Routing-Instanz an, an die Pakete weitergeleitet werden. |
|
Begrenzen Sie die Bandbreite auf der Flow-Route. Drücken Sie den Grenzwert in Bits pro Sekunde (bps) aus. Ab Junos OS Version 16.1R4 liegt der Ratenbegrenzungsbereich bei [0 bis 1000000000000]. |
|
Stichprobe des Datenverkehrs auf der Flow-Route. |
Validieren von Flow-Routen
Das Junos-Betriebssystem installiert Flow-Routen nur dann in der Flow-Routing-Tabelle, wenn sie mit dem Validierungsverfahren validiert wurden. Die Routing-Engine führt die Validierung durch, bevor Routen in der Flow-Routing-Tabelle installiert werden.
Flow-Routen, die mithilfe der BGP-NLRI-Nachrichten (Network Layer Reachability Information) empfangen werden, werden validiert, bevor sie in der Routing-Tabelle der primären Flow-Instance installiert werden.instance.inetflow.0
Das Validierungsverfahren ist in der Datei draft-ietf-idr-flow-spec-09.txt, Dissemination of Flow Specification Rules, beschrieben. Sie können den Validierungsprozess für Flow-Routen mithilfe von BGP-NLRI-Nachrichten umgehen und Ihre eigene spezifische Importrichtlinie verwenden.
Um Validierungsvorgänge nachzuverfolgen, schließen Sie die Anweisung auf Hierarchieebene ein.validation
[edit routing-options flow]
Unterstützung für BGP Flow-Specification Algorithm Version 7 und höher
Standardmäßig verwendet das Junos-Betriebssystem den in Version 6 des BGP-Flow-Spezifikationsentwurfs definierten Algorithmus für die Begriffsreihenfolge. In Junos OS Version 10.0 und höher können Sie den Router so konfigurieren, dass er dem Algorithmus für die Begriffsreihenfolge entspricht, der erstmals in Version 7 der BGP-Datenflussspezifikation definiert und durch RFC 5575 ( Dissemination of Flow Specification Routes) unterstützt wird.
Es wird empfohlen, das Junos-Betriebssystem so zu konfigurieren, dass es den Algorithmus für die Begriffsreihenfolge verwendet, der erstmals in Version 7 des BGP-Flow-Spezifikationsentwurfs definiert wurde. Es wird außerdem empfohlen, das Junos-Betriebssystem so zu konfigurieren, dass auf allen Routing-Instanzen, die auf einem Router konfiguriert sind, derselbe Algorithmus für die Begriffsreihenfolge verwendet wird.
Um BGP für die Verwendung des Flussspezifikationsalgorithmus zu konfigurieren, der erstmals in Version 7 des Internetentwurfs definiert wurde, schließen Sie die Anweisung auf Hierarchieebene ein.standard
[edit routing-options flow term-order]
Um wieder den in Version 6 definierten Algorithmus für die Ausdrucksreihenfolge zu verwenden, schließen Sie die Anweisung auf Hierarchieebene ein.legacy
[edit routing-options flow term-order]
Die konfigurierte Termreihenfolge hat nur lokale Bedeutung. Das bedeutet, dass die Laufzeitreihenfolge nicht mit Datenflussrouten weitergegeben wird, die an die Remote-BGP-Peers gesendet werden, deren Laufzeitreihenfolge vollständig durch ihre eigene Laufzeitreihenfolgekonfiguration bestimmt wird. Daher sollten Sie bei der Konfiguration der auftragsabhängigen Aktion vorsichtig sein, wenn Ihnen die Laufzeitreihenfolgekonfiguration der Remotepeers nicht bekannt ist.next term
Die lokale Version kann sich von der Konfiguration auf dem Remote-Peer unterscheiden.next term
next term
Kann unter Junos OS Evolved nicht als letzter Begriff der Aktion angezeigt werden .next term
Ein Filterbegriff, bei dem als Aktion angegeben, aber keine Übereinstimmungsbedingungen konfiguriert sind, wird nicht unterstützt.next term
Ab Junos OS Version 16.1 haben Sie die Möglichkeit, den Filter nicht auf Datenverkehr anzuwenden, der auf bestimmten Schnittstellen empfangen wird.flowspec Am Anfang des Filters wird ein neuer Begriff hinzugefügt, der alle Pakete akzeptiert, die auf diesen spezifischen Schnittstellen empfangen werden.flowspec Der neue Begriff ist eine Variable, die eine Ausschlussliste von Begriffen erstellt, die dem Weiterleitungstabellenfilter als Teil des Datenflussspezifikationsfilters zugeordnet sind.
Um auszuschließen, dass der Filter auf Datenverkehr angewendet wird, der auf bestimmten Schnittstellen empfangen wird, müssen Sie zuerst eine auf solchen Schnittstellen konfigurieren, indem Sie die Anweisung family filter group auf der Hierarchieebene einschließen, und dann den Filter an die Schnittstellengruppe anfügen, indem Sie die Anweisung auf der Hierarchieebene einschließen.flowspecgroup-id
inet
group-id
[edit interfaces]
flowspecflow interface-group group-id exclude
[edit routing-options]
Sie können mit der Anweisung nur eine pro Routinginstanz konfigurieren.group-id
set routing-options flow interface-group group-id
Siehe auch
Beispiel: Aktivieren von BGP für die Übertragung von Flow-Spezifikationsrouten
In diesem Beispiel wird gezeigt, wie BGP NLRI-Nachrichten (Network Layer Reachability Information) mit Datenflussspezifikation übertragen kann.
Anforderungen
Bevor Sie beginnen:
Konfigurieren Sie die Geräteschnittstellen.
Konfigurieren Sie ein Interior Gateway Protocol (IGP).
Konfigurieren Sie BGP.
Konfigurieren Sie eine Routing-Richtlinie, die Routen (z. B. direkte Routen oder IGP-Routen) aus der Routing-Tabelle in BGP exportiert.
Überblick
Durch die Weitergabe von Firewall-Filterinformationen als Teil von BGP können Sie Firewall-Filter gegen Denial-of-Service-Angriffe (DOS) dynamisch über autonome Systeme hinweg weitergeben. Flow-Routen werden in die Flow-Spezifikation NLRI gekapselt und über ein Netzwerk oder virtuelle private Netzwerke (VPNs) verbreitet, wobei filterähnliche Informationen ausgetauscht werden. Flow-Routen sind eine Aggregation von Übereinstimmungsbedingungen und daraus resultierenden Aktionen für Pakete. Sie bieten Ihnen Funktionen zur Filterung des Datenverkehrs und zur Begrenzung der Rate, ähnlich wie Firewall-Filter. Unicast-Flow-Routen werden für die Standard-Instance, VPN-Routing- und Weiterleitungs-Instanzen (VRF) und virtuelle Router-Instanzen unterstützt.
Import- und Exportrichtlinien können auf die Familie oder Familien-NLRI angewendet werden, was sich auf die akzeptierten oder angekündigten Flow-Routen auswirkt, ähnlich wie Import- und Exportrichtlinien auf andere BGP-Familien angewendet werden.inet flow
inet-vpn flow
Der einzige Unterschied besteht darin, dass die Konfiguration der Datenflussrichtlinie die from-Anweisung enthalten muss.rib inetflow.0
Diese Anweisung bewirkt, dass die Richtlinie auf die Datenflussrouten angewendet wird. Eine Ausnahme von dieser Regel tritt auf, wenn die Richtlinie nur die Anweisung "oder " und keine Anweisung enthält.then reject
then accept
from
Dann wirkt sich die Richtlinie auf alle Routen aus, einschließlich IP-Unicast und IP-Datenstrom.
Die Flow-Routenfilter werden auf einem Router zunächst statisch konfiguriert, wobei eine Reihe von Übereinstimmungskriterien gefolgt von den auszuführenden Aktionen erstellt werden. Dann wird zusätzlich zu ( oder ) zwischen diesem BGP-fähigen Gerät und seinen Peers konfiguriert.family inet unicast
family inet flow
family inet-vpn flow
Standardmäßig werden statisch konfigurierte Flow-Routen (Firewall-Filter) anderen BGP-fähigen Geräten angekündigt, die das oder NLRI unterstützen.family inet flow
family inet-vpn flow
Das empfangende BGP-fähige Gerät führt einen Validierungsprozess durch, bevor der Firewall-Filter in der Flow-Routing-Tabelle installiert wird.instance-name.inetflow.0
Das Validierungsverfahren wird in RFC 5575, Dissemination of Flow Specification Rules, beschrieben.
Das empfangende BGP-fähige Gerät akzeptiert eine Flow-Route, wenn es die folgenden Kriterien erfüllt:
Der Absender einer Datenflussroute stimmt mit dem Absender der am besten passenden Unicastroute für die Zieladresse überein, die in die Route eingebettet ist.
Im Vergleich zur Zieladresse der Datenflussroute, für die die aktive Route von einem anderen autonomen Next-Hop-System empfangen wurde, gibt es keine spezifischeren Unicast-Routen.
Das erste Kriterium stellt sicher, dass der Filter vom nächsten Hop angekündigt wird, der von der Unicastweiterleitung für die in die Datenflussroute eingebettete Zieladresse verwendet wird. Wenn eine Datenflussroute beispielsweise als 10.1.1.1, proto=6, port=80 angegeben wird, wählt das empfangende BGP-fähige Gerät die spezifischere Unicast-Route in der Unicast-Routing-Tabelle aus, die mit dem Zielpräfix 10.1.1.1/32 übereinstimmt. In einer Unicast-Routingtabelle, die 10.1/16 und 10.1.1/24 enthält, wird letztere als Unicastroute für den Vergleich ausgewählt. Es wird nur der aktive Unicast-Routeneintrag berücksichtigt. Dies folgt dem Konzept, dass eine Datenflussroute gültig ist, wenn sie vom Urheber der besten Unicastroute angekündigt wird.
Das zweite Kriterium bezieht sich auf Situationen, in denen ein bestimmter Adressblock verschiedenen Entitäten zugeordnet ist. Datenströme, die in eine Unicastroute mit der besten Übereinstimmung aufgelöst werden, bei der es sich um eine aggregierte Route handelt, werden nur akzeptiert, wenn sie keine spezifischeren Routen abdecken, die an verschiedene autonome Systeme des nächsten Hops weitergeleitet werden.
Sie können den Validierungsprozess für Flow-Routen mithilfe von BGP-NLRI-Nachrichten umgehen und Ihre eigene spezifische Importrichtlinie verwenden. Wenn BGP NLRI-Nachrichten mit Datenflussspezifikation überträgt, lässt die Anweisung auf Hierarchieebene das Validierungsverfahren für die Datenflussroute aus, nachdem Pakete von einer Richtlinie akzeptiert wurden.no-validate
[edit protocols bgp group group-name family inet flow]
Sie können die Importrichtlinie so konfigurieren, dass sie mit den Attributen der Zieladresse und des Pfads übereinstimmt, z. B. community, next-hop und AS-Pfad. Sie können die Aktion angeben, die ausgeführt werden soll, wenn das Paket den Bedingungen entspricht, die Sie in der Flow-Route konfiguriert haben. Um eine Aktion zu konfigurieren, schließen Sie die Anweisung auf Hierarchieebene ein.[edit routing-options flow]
Der NLRI-Typ der Flussspezifikation umfasst Komponenten wie Zielpräfix, Quellpräfix, Protokoll und Ports, wie in RFC 5575 definiert. Die Importrichtlinie kann eine eingehende Route mithilfe von Pfadattributen und Zieladresse in der Datenflussspezifikation NLRI filtern. Die Importrichtlinie kann keine anderen Komponenten im RFC 5575 filtern.
Die Datenflussspezifikation definiert die erforderlichen Protokollerweiterungen, um die gängigsten Anwendungen der IPv4-Unicast- und VPN-Unicast-Filterung zu adressieren. Derselbe Mechanismus kann wiederverwendet und neue Übereinstimmungskriterien hinzugefügt werden, um ähnliche Filterungen für andere BGP-Adressfamilien (z. B. IPv6-Unicast) zu adressieren.
Nachdem eine Flow-Route in der Tabelle installiert wurde, wird sie auch zur Liste der Firewall-Filter im Kernel hinzugefügt.inetflow.0
Nur auf Routern werden NLRI-Nachrichten mit Flow-Spezifikation in VPNs unterstützt. Das VPN vergleicht die erweiterte Community für das Routenziel im NLRI mit der Importrichtlinie. Wenn es eine Übereinstimmung gibt, kann das VPN damit beginnen, die Datenflussrouten zu verwenden, um den Paketverkehr zu filtern und die Rate zu begrenzen. Empfangene Flow-Routen werden in der Flow-Routing-Tabelle installiert.instance-name.inetflow.0
Flow-Routen können auch in einem VPN-Netzwerk verbreitet und von VPNs gemeinsam genutzt werden. Damit Multiprotokoll-BGP (MP-BGP) Flussspezifikations-NLRI für die Adressfamilie übertragen kann, fügen Sie die Anweisung auf Hierarchieebene ein.inet-vpn
flow
[edit protocols bgp group group-name family inet-vpn]
VPN-Flow-Routen werden nur für die Standardinstanz unterstützt. Flow-Routen, die für VPNs mit Familie konfiguriert sind, werden nicht automatisch überprüft, sodass die Anweisung auf Hierarchieebene nicht unterstützt wird.inet-vpn
no-validate
[edit protocols bgp group group-name family inet-vpn]
Es ist keine Validierung erforderlich, wenn die Flow-Routen lokal zwischen Geräten in einem einzigen AS konfiguriert werden.
Import- und Exportrichtlinien können auf das oder NLRI angewendet werden, was sich auf die akzeptierten oder angekündigten Flow-Routen auswirkt, ähnlich wie Import- und Exportrichtlinien auf andere BGP-Familien angewendet werden.family inet flow
family inet-vpn flow
Der einzige Unterschied besteht darin, dass die Konfiguration der Datenflussrichtlinie die Anweisung enthalten muss.from rib inetflow.0
Diese Anweisung bewirkt, dass die Richtlinie auf die Datenflussrouten angewendet wird. Eine Ausnahme von dieser Regel tritt auf, wenn die Richtlinie nur die Anweisung "oder " und keine Anweisung enthält.then reject
then accept
from
Dann wirkt sich die Richtlinie auf alle Routen aus, einschließlich IP-Unicast und IP-Datenstrom.
In diesem Beispiel wird gezeigt, wie die folgenden Exportrichtlinien konfiguriert werden:
Eine Richtlinie, die die Ankündigung von Datenflussrouten zulässt, die von einem Routenfilter angegeben werden. Es werden nur die Flow-Routen beworben, die vom Block 10.13/16 abgedeckt werden. Diese Richtlinie wirkt sich nicht auf Unicastrouten aus.
Eine Richtlinie, die es zulässt, dass alle Unicast- und Datenflussrouten dem Nachbarn angekündigt werden.
Eine Richtlinie, die verhindert, dass alle Routen (Unicast oder Datenstrom) dem Nachbarn angekündigt werden.
Topologie
Konfiguration
- Konfigurieren einer statischen Flow-Route
- Werbeflussrouten, die durch einen Routenfilter angegeben werden
- Ankündigung aller Unicast- und Flow-Routen
- Werbung Keine Unicast- oder Flow-Routen
- Begrenzen der Anzahl der in einer Routing-Tabelle installierten Flow-Routen
- Begrenzen der Anzahl von Präfixen, die in einer BGP-Peering-Sitzung empfangen werden
Konfigurieren einer statischen Flow-Route
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set routing-options flow route block-10.131.1.1 match destination 10.131.1.1/32 set routing-options flow route block-10.131.1.1 match protocol icmp set routing-options flow route block-10.131.1.1 match icmp-type echo-request set routing-options flow route block-10.131.1.1 then discard set routing-options flow term-order standard
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie die BGP-Peer-Sitzungen:
Konfigurieren Sie die Übereinstimmungsbedingungen.
[edit routing-options flow route block-10.131.1.1] user@host# set match destination 10.131.1.1/32 user@host# set match protocol icmp user@host# set match icmp-type echo-request
Konfigurieren Sie die Aktion.
[edit routing-options flow route block-10.131.1.1] user@host# set then discard
(Empfohlen) Konfigurieren Sie für den Flow-Spezifikationsalgorithmus die standardbasierte Termreihenfolge.
[edit routing-options flow] user@host# set term-order standard
Im standardmäßigen Begriffsreihenfolgealgorithmus, wie im flowspec RFC-Entwurf Version 6 angegeben, wird ein Begriff mit weniger spezifischen Übereinstimmungsbedingungen immer vor einem Begriff mit spezifischeren Übereinstimmungsbedingungen ausgewertet. Dies führt dazu, dass der Begriff mit spezifischeren Übereinstimmungsbedingungen nie ausgewertet wird. In Version 7 von RFC 5575 wurde der Algorithmus überarbeitet, sodass die spezifischeren Übereinstimmungsbedingungen vor den weniger spezifischen Übereinstimmungsbedingungen ausgewertet werden. Aus Gründen der Abwärtskompatibilität wird das Standardverhalten in Junos OS nicht geändert, obwohl der neuere Algorithmus sinnvoller ist. Um den neueren Algorithmus zu verwenden, schließen Sie die Anweisung in die Konfiguration ein.
term-order standard
Diese Anweisung wird in Junos OS Version 10.0 und höher unterstützt.
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show routing-options flow { term-order standard; route block-10.131.1.1 { match { destination 10.131.1.1/32; protocol icmp; icmp-type echo-request; } then discard; } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Werbeflussrouten, die durch einen Routenfilter angegeben werden
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set protocols bgp group core family inet unicast set protocols bgp group core family inet flow set protocols bgp group core export p1 set protocols bgp group core peer-as 65000 set protocols bgp group core neighbor 10.12.99.5 set policy-options policy-statement p1 term a from rib inetflow.0 set policy-options policy-statement p1 term a from route-filter 10.13.0.0/16 orlonger set policy-options policy-statement p1 term a then accept set policy-options policy-statement p1 term b then reject set routing-options autonomous-system 65001
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie die BGP-Peer-Sitzungen:
Konfigurieren Sie die BGP-Gruppe.
[edit protocols bgp group core] user@host# set family inet unicast user@host# set family inet flow user@host# set export p1 user@host# set peer-as 65000 user@host# set neighbor 10.12.99.5
Konfigurieren Sie die Datenflussrichtlinie.
[edit policy-options policy-statement p1] user@host# set term a from rib inetflow.0 user@host# set term a from route-filter 10.13.0.0/16 orlonger user@host# set term a then accept user@host# set term b then reject
Konfigurieren Sie die lokale AS-Nummer (Autonomous System).
[edit routing-options] user@host# set autonomous-system 65001
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , und eingeben.show protocols
show policy-options
show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show protocols bgp { group core { family inet { unicast; flow; } export p1; peer-as 65000; neighbor 10.12.99.5; } }
[edit] user@host# show policy-options policy-statement p1 { term a { from { rib inetflow.0; route-filter 10.13.0.0/16 orlonger; } then accept; } term b { then reject; } }
[edit] user@host# show routing-options autonomous-system 65001;
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Ankündigung aller Unicast- und Flow-Routen
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set protocols bgp group core family inet unicast set protocols bgp group core family inet flow set protocols bgp group core export p1 set protocols bgp group core peer-as 65000 set protocols bgp group core neighbor 10.12.99.5 set policy-options policy-statement p1 term a then accept set routing-options autonomous-system 65001
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie die BGP-Peer-Sitzungen:
Konfigurieren Sie die BGP-Gruppe.
[edit protocols bgp group core] user@host# set family inet unicast user@host# set family inet flow user@host# set export p1 user@host# set peer-as 65000 user@host# set neighbor 10.12.99.5
Konfigurieren Sie die Datenflussrichtlinie.
[edit policy-options policy-statement p1] user@host# set term a then accept
Konfigurieren Sie die lokale AS-Nummer (Autonomous System).
[edit routing-options] user@host# set autonomous-system 65001
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , und eingeben.show protocols
show policy-options
show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show protocols bgp { group core { family inet { unicast; flow; } export p1; peer-as 65000; neighbor 10.12.99.5; } }
[edit] user@host# show policy-options policy-statement p1 { term a { prefix-list inetflow; } then accept; } }
[edit] user@host# show routing-options autonomous-system 65001;
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Werbung Keine Unicast- oder Flow-Routen
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set protocols bgp group core family inet unicast set protocols bgp group core family inet flow set protocols bgp group core export p1 set protocols bgp group core peer-as 65000 set protocols bgp group core neighbor 10.12.99.5 set policy-options policy-statement p1 term a then reject set routing-options autonomous-system 65001
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie die BGP-Peer-Sitzungen:
Konfigurieren Sie die BGP-Gruppe.
[edit protocols bgp group core] user@host# set family inet unicast user@host# set family inet flow user@host# set export p1 user@host# set peer-as 65000 user@host# set neighbor 10.12.99.5
Konfigurieren Sie die Datenflussrichtlinie.
[edit policy-options policy-statement p1] user@host# set term a then reject
Konfigurieren Sie die lokale AS-Nummer (Autonomous System).
[edit routing-options] user@host# set autonomous-system 65001
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , und eingeben.show protocols
show policy-options
show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show protocols bgp { group core { family inet { unicast; flow; } export p1; peer-as 65000; neighbor 10.12.99.5; } }
[edit] user@host# show policy-options policy-statement p1 { term a { then reject; } }
[edit] user@host# show routing-options autonomous-system 65001;
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Begrenzen der Anzahl der in einer Routing-Tabelle installierten Flow-Routen
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set routing-options rib inetflow.0 maximum-prefixes 1000 set routing-options rib inetflow.0 maximum-prefixes threshold 50
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
Die Anwendung eines Routenlimits kann zu einem unvorhersehbaren dynamischen Routenprotokollverhalten führen. Wenn z. B. das Limit erreicht ist und Routen abgelehnt werden, versucht BGP nicht notwendigerweise, die abgelehnten Routen erneut zu installieren, nachdem die Anzahl der Routen unter das Limit gefallen ist. BGP-Sitzungen müssen möglicherweise gelöscht werden, um dieses Problem zu beheben.
So begrenzen Sie die Flow-Routen:
Legen Sie eine Obergrenze für die Anzahl der in der Tabelle installierten Präfixe fest.
inetflow.0
[edit routing-options rib inetflow.0] user@host# set maximum-prefixes 1000
Legen Sie einen Schwellenwert von 50 Prozent fest, bei dem bei der Installation von 500 Routen eine Warnung im Systemprotokoll protokolliert wird.
[edit routing-options rib inetflow.0] user@host# set maximum-prefixes threshold 50
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show routing-options
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show routing-options rib inetflow.0 { maximum-prefixes 1000 threshold 50; }
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Begrenzen der Anzahl von Präfixen, die in einer BGP-Peering-Sitzung empfangen werden
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein.[edit]
set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit maximum 1000 set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit teardown 50 set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit drop-excess 50 set protocols bgp group x1 neighbor 10.12.99.2 family inet flow prefix-limit hide-excess 50
Sie können entweder die Option , oder die Anweisungsoption nacheinander einschließen.teardown <percentage>
drop-excess <percentage>
hide-excess<percentage>
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
Die Konfiguration eines Präfixgrenzwerts für einen bestimmten Nachbarn bietet eine besser vorhersehbare Steuerung darüber, welcher Peer wie viele Datenflussrouten ankündigen kann.
So begrenzen Sie die Anzahl der Präfixe:
Legen Sie ein Limit von 1000 BGP-Routen vom Nachbarn 10.12.99.2 fest.
[edit protocols bgp group x1] user@host# set neighbor 10.12.99.2 family inet flow prefix-limit maximum 1000
-
Konfigurieren Sie die Nachbarsitzung oder die Nachbarpräfixe so, dass entweder die , oder die Anweisungsoption ausgeführt wird, wenn die Sitzung oder die Präfixe ihren Grenzwert erreichen.
teardown <percentage>
drop-excess <percentage>
hide-excess<percentage>
[edit routing-options rib inetflow.0] user@host# set neighbor 10.12.99.2 family inet flow prefix-limit teardown 50 set neighbor 10.12.99.2 family inet flow prefix-limit drop-excess 50 set neighbor 10.12.99.2 family inet flow prefix-limit hide-excess 50
Wenn Sie die Anweisung angeben und einen Prozentsatz angeben, werden Nachrichten protokolliert, wenn die Anzahl der Präfixe diesen Prozentsatz erreicht.
teardown <percentage>
Nachdem die Sitzung heruntergefahren wurde, wird die Sitzung in kurzer Zeit wiederhergestellt, es sei denn, Sie schließen die Anweisung ein.idle-timeout
Wenn Sie die Anweisung angeben und einen Prozentsatz angeben, werden die überschüssigen Routen verworfen, wenn die Anzahl der Präfixe diesen Prozentsatz überschreitet
drop-excess <percentage>
Wenn Sie die Anweisung angeben und einen Prozentsatz angeben, werden die überschüssigen Routen ausgeblendet, wenn die Anzahl der Präfixe diesen Prozentsatz überschreitet.
hide-excess <percentage>
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den Befehl eingeben.show protocols
Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@host# show protocols bgp { group x1 { neighbor 10.12.99.2 { flow { prefix-limit { maximum 1000; teardown 50; drop-excess <percentage>; hide-excess <percentage>; } } } } } }
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf .commit
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Verifizierung des NLRI
- Verifizieren von Routen
- Verifizieren der Datenstromvalidierung
- Überprüfen von Firewall-Filtern
- Überprüfen der Systemprotokollierung bei Überschreiten der zulässigen Anzahl von Flow-Routen
- Überprüfen der Systemprotokollierung bei Überschreiten der Anzahl von Präfixen, die in einer BGP-Peering-Sitzung empfangen wurden
Verifizierung des NLRI
Zweck
Sehen Sie sich das NLRI an, das für den Nachbarn aktiviert ist.
Was
Führen Sie den Befehl im Betriebsmodus aus.show bgp neighbor 10.12.99.5
Suchen Sie in der Ausgabe.inet-flow
user@host> show bgp neighbor 10.12.99.5 Peer: 10.12.99.5+3792 AS 65000 Local: 10.12.99.6+179 AS 65002 Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ direct ] Options: <Preference HoldTime AddressFamily PeerAS Refresh> Address families configured: inet-unicast inet-multicast inet-flow Holdtime: 90 Preference: 170 Number of flaps: 1 Error: 'Cease' Sent: 0 Recv: 1 Peer ID: 10.255.71.161 Local ID: 10.255.124.107 Active Holdtime: 90 Keepalive Interval: 30 Peer index: 0 Local Interface: e1-3/0/0.0 NLRI advertised by peer: inet-unicast inet-multicast inet-flow NLRI for this session: inet-unicast inet-multicast inet-flow Peer supports Refresh capability (2) Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 2 Received prefixes: 2 Suppressed due to damping: 0 Advertised prefixes: 3 Table inet.2 Bit: 20000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 0 Suppressed due to damping: 0 Advertised prefixes: 0 Table inetflow.0 Bit: 30000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 0 Suppressed due to damping: 0 Advertised prefixes: 0 Last traffic (seconds): Received 29 Sent 15 Checked 15 Input messages: Total 5549 Updates 2618 Refreshes 0 Octets 416486 Output messages: Total 2943 Updates 1 Refreshes 0 Octets 55995 Output Queue[0]: 0 Output Queue[1]: 0 Output Queue[2]: 0
Verifizieren von Routen
Zweck
Sehen Sie sich die Flow-Routen an. Die Beispielausgabe zeigt eine von BGP gelernte Flow-Route und eine statisch konfigurierte Flow-Route.
Bei lokal konfigurierten Flow-Routen (die auf Hierarchieebene konfiguriert sind) werden die Routen durch das Flow-Protokoll installiert.[edit routing-options flow]
Daher können Sie die Flow-Routen anzeigen, indem Sie die Tabelle angeben, z. B. in oder , wobei der Name der Routing-Instanz ist.show route table inetflow.0
show route table instance-name.inetflow.0
instance-name
Alternativ können Sie alle lokal konfigurierten Flow-Routen über mehrere Routing-Instanzen hinweg anzeigen, indem Sie den Befehl ausführen.show route protocol flow
Wenn eine Flow-Route nicht lokal konfiguriert, sondern vom BGP-Peer des Routers empfangen wird, wird diese Flow-Route von BGP in der Routing-Tabelle installiert. Sie können die Flow-Routen anzeigen, indem Sie die Tabelle angeben oder indem Sie ausführen, wodurch alle BGP-Routen (Flow- und Non-Flow-Routen) angezeigt werden.show route protocol bgp
Was
Führen Sie den Befehl im Betriebsmodus aus.show route table inetflow.0
user@host> show route table inetflow.0 inetflow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 100.100.100.100,*,proto=1,icmp-type=8/term:1 *[BGP/170] 00:00:18, localpref 100, from 100.0.12.2 AS path: 2000 I, validation-state: unverified Fictitious 200.200.200.200,*,proto=6,port=80/term:2 *[BGP/170] 00:00:18, localpref 100, from 100.0.12.2 AS path: 2000 I, validation-state: unverified Fictitious
user@host> show route table inetflow.0 extensive inetflow.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) 7.7.7.7,8.8.8.8/term:1 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): accept,count *Flow Preference: 5 Next hop type: Fictitious Address: 0x8d383a4 Next-hop reference count: 3 State: <Active> Local AS: 65000 Age: 9:50 Task: RT Flow Announcement bits (1): 0-Flow AS path: I
user@host> show route hidden inetflow.0: 2 destinations, 2 routes (0 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both 100.100.100.100,*,proto=1,icmp-type=8/term:N/A [BGP ] 00:00:17, localpref 100, from 100.0.12.2 AS path: 2000 I, validation-state: unverified Fictitious 200.200.200.200,*,proto=6,port=80/term:N/A [BGP ] 00:00:17, localpref 100, from 100.0.12.2 AS path: 2000 I, validation-state: unverified Fictitious
Bedeutung
Eine Flowroute stellt den Begriff eines Firewallfilters dar. Wenn Sie eine Flow-Route konfigurieren, geben Sie die Übereinstimmungsbedingungen und die Aktionen an. In den Übereinstimmungsattributen können Sie eine Quelladresse, eine Zieladresse und andere Qualifizierer wie den Port und das Protokoll abgleichen. Bei einer einzelnen Flow-Route, die mehrere Übereinstimmungsbedingungen enthält, werden alle Übereinstimmungsbedingungen im Präfixfeld der Route gekapselt. Wenn Sie den Befehl für eine Flow-Route ausgeben, wird das Präfixfeld der Route mit allen Übereinstimmungsbedingungen angezeigt. bedeutet, dass die Übereinstimmungsbedingung . show route
10.12.44.1,*
match destination 10.12.44.1/32
Wenn das Präfix in der Ausgabe lautete, würde dies bedeuten, dass die Übereinstimmungsbedingung .*,10.12.44.1
match source 10.12.44.1/32
Wenn die übereinstimmenden Bedingungen sowohl eine Quelle als auch ein Ziel enthalten, wird das Sternchen durch die Adresse ersetzt.
Die Termreihenfolgenummern geben die Reihenfolge der Terme (Flow-Routen) an, die im Firewallfilter ausgewertet werden. Der Befehl zeigt die Aktionen für jeden Begriff (Route) an.show route extensive
Verifizieren der Datenstromvalidierung
Zweck
Zeigen Sie Informationen zu Flow-Routen an.
Was
Führen Sie den Befehl im Betriebsmodus aus.show route flow validation detail
user@host> show route flow validation detail inet.0: 0.0.0.0/0 Internal node: best match, inconsistent 10.0.0.0/8 Internal node: no match, inconsistent 10.12.42.0/24 Internal node: no match, consistent, next-as: 65003 Active unicast route Dependent flow destinations: 1 Origin: 10.255.124.106, Neighbor AS: 65003 10.12.42.1/32 Flow destination (1 entries, 1 match origin) Unicast best match: 10.12.42.0/24 Flags: Consistent 10.131.0.0/16 Internal node: no match, consistent, next-as: 65001 Active unicast route Dependent flow destinations: 5000 Origin: 10.12.99.2, Neighbor AS: 65001 10.131.0.0/19 Internal node: best match 10.131.0.0/20 Internal node: best match 10.131.0.0/21
Überprüfen von Firewall-Filtern
Zweck
Zeigt die Firewall-Filter an, die im Kernel installiert sind.
Was
Führen Sie den Befehl im Betriebsmodus aus.show firewall
user@host> show firewall Filter: __default_bpdu_filter__ Filter: __flowspec_default_inet__ Counters: Name Bytes Packets 10.12.42.1,* 0 0 196.1.28/23,* 0 0 196.1.30/24,* 0 0 196.1.31/24,* 0 0 196.1.32/24,* 0 0 196.1.56/21,* 0 0 196.1.68/24,* 0 0 196.1.69/24,* 0 0 196.1.70/24,* 0 0 196.1.75/24,* 0 0 196.1.76/24,* 0 0
Überprüfen der Systemprotokollierung bei Überschreiten der zulässigen Anzahl von Flow-Routen
Zweck
Wenn Sie eine Begrenzung für die Anzahl der installierten Flow-Routen konfigurieren, wie in beschrieben, zeigen Sie die Systemprotokollmeldung an, wenn der Schwellenwert erreicht ist.Begrenzen der Anzahl der in einer Routing-Tabelle installierten Flow-Routen
Was
Führen Sie den Befehl im Betriebsmodus aus.show log <message>
user@host> show log message Jul 12 08:19:01 host rpd[2748]: RPD_RT_MAXROUTES_WARN: Number of routes (1000) in table inetflow.0 exceeded warning threshold (50 percent of configured maximum 1000)
Überprüfen der Systemprotokollierung bei Überschreiten der Anzahl von Präfixen, die in einer BGP-Peering-Sitzung empfangen wurden
Zweck
Wenn Sie eine Begrenzung für die Anzahl der installierten Flow-Routen konfigurieren, wie in beschrieben, zeigen Sie die Systemprotokollmeldung an, wenn der Schwellenwert erreicht ist.Begrenzen der Anzahl von Präfixen, die in einer BGP-Peering-Sitzung empfangen werden
Was
Führen Sie den Befehl im Betriebsmodus aus.show log message
Wenn Sie die Anweisungsoption angeben:teradown <percentage>
user@host> show log message Jul 12 08:44:47 host rpd[2748]: 10.12.99.2 (External AS 65001): Shutting down peer due to exceeding configured maximum prefix-limit(1000) for inet-flow nlri: 1001
Wenn Sie die Anweisungsoption angeben:drop-excess <percentage>
user@host> show log message Jul 27 15:26:57 R1_re rpd[32443]: BGP_DROP_PREFIX_LIMIT_EXCEEDED: 1.1.1.2 (Internal AS 1): Exceeded drop-excess maximum prefix-limit(4) for inet-unicast nlri: 5 (instance master)
Wenn Sie die Anweisungsoption angeben:hide-excess <percentage>
user@host> show log message Jul 27 15:26:57 R1_re rpd[32443]: BGP_HIDE_PREFIX_LIMIT_EXCEEDED: 1.1.1.2 (Internal AS 1): Exceeded hide-excess maximum prefix-limit(4) for inet-unicast nlri: 5 (instance master)
Beispiel: Konfigurieren von BGP für die Übertragung von IPv6-Datenflussspezifikationsrouten
In diesem Beispiel wird gezeigt, wie die IPv6-Datenstromspezifikation für die Datenverkehrsfilterung konfiguriert wird. Die BGP-Datenflussspezifikation kann verwendet werden, um die domänenübergreifende und domäneninterne Koordination von Regeln für die Filterung des Datenverkehrs zu automatisieren, um Denial-of-Service-Angriffe abzuwehren.
Anforderungen
In diesem Beispiel werden die folgenden Hardware- und Softwarekomponenten verwendet:
Zwei Router der MX-Serie
Junos OS Version 16.1 oder höher
Bevor Sie BGP für die Übertragung von IPv6-Datenflussspezifikationsrouten aktivieren:
Konfigurieren Sie die IP-Adressen auf den Geräteschnittstellen.
Konfigurieren Sie BGP.
Konfigurieren Sie eine Routing-Richtlinie, die Routen (z. B. statische Routen, direkte Routen oder IGP-Routen) aus der Routing-Tabelle in BGP exportiert.
Überblick
Die Datenflussspezifikation bietet Schutz vor Denial-of-Service-Angriffen und schränkt schlechten Datenverkehr ein, der die Bandbreite verbraucht und in der Nähe der Quelle stoppt. In früheren Junos OS-Versionen wurden Flow-Spezifikationsregeln für IPv4 über BGP als Informationen zur Erreichbarkeit der Netzwerkschicht weitergegeben. Ab Junos OS Version 16.1 wird die Flow-Spezifikationsfunktion von der IPv6-Familie unterstützt und ermöglicht die Weitergabe von Traffic-Flow-Spezifikationsregeln für IPv6 und IPv6-VPN.
Topologie
Abbildung 7 zeigt die Beispieltopologie. Router R1 und Router R2 gehören zu unterschiedlichen autonomen Systemen. Die IPv6-Datenflussspezifikation wird auf Router R2 konfiguriert. Der gesamte eingehende Datenverkehr wird basierend auf den Bedingungen der Datenflussspezifikation gefiltert, und der Datenverkehr wird je nach angegebener Aktion unterschiedlich behandelt. In diesem Beispiel wird der gesamte Datenverkehr zu abcd::11:11:11:10/128, der den Bedingungen der Datenflussspezifikation entspricht, verworfen. Datenverkehr, der für abcd::11:11:11:11:30/128 bestimmt ist und den Bedingungen der Datenstromspezifikation entspricht, wird akzeptiert.
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, kopieren Sie die Befehle und fügen Sie sie in die CLI auf Hierarchieebene ein, und geben Sie sie dann aus dem Konfigurationsmodus ein .[edit]commit
Router R1
set interfaces ge-1/1/4 unit 0 family inet6 address abcd::13:14:2:1/120 set interfaces lo0 unit 0 family inet6 address abcd::128:220:21:197/128 set routing-options router-id 128.220.21.197 set routing-options autonomous-system 64496 set protocols bgp group ebgp type external set protocols bgp group ebgp family inet6 unicast set protocols bgp group ebgp family inet6 flow set protocols bgp group ebgp peer-as 64497 set protocols bgp group ebgp neighbor abcd::13:14:2:2
Router R2
set interfaces ge-1/0/0 unit 0 family inet6 address abcd::192:2:1:1/120 set interfaces ge-1/1/5 unit 0 family inet6 address abcd::13:14:2:2/120 set interfaces lo0 unit 0 family inet6 address abcd::128:220:41:229/128 set routing-options rib inet6.0 static route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2 set routing-options rib inet6.0 flow route route-1 match destination abcd::11:11:11:10/128 set routing-options rib inet6.0 flow route route-1 match protocol tcp set routing-options rib inet6.0 flow route route-1 match destination-port http set routing-options rib inet6.0 flow route route-1 match source-port 65535 set routing-options rib inet6.0 flow route route-1 then discard set routing-options rib inet6.0 flow route route-2 match destination abcd::11:11:11:30/128 set routing-options rib inet6.0 flow route route-2 match icmp6-type echo-request set routing-options rib inet6.0 flow route route-2 match packet-length 100 set routing-options rib inet6.0 flow route route-2 match dscp 10 set routing-options rib inet6.0 flow route route-2 then accept set routing-options router-id 128.220.41.229 set routing-options autonomous-system 64497 set protocols bgp group ebgp type external set protocols bgp group ebgp family inet6 unicast set protocols bgp group ebgp family inet6 flow set protocols bgp group ebgp export redis set protocols bgp group ebgp peer-as 64496 set protocols bgp group ebgp neighbor abcd::13:14:2:1 set policy-options policy-statement redis from protocol static set policy-options policy-statement redis then accept
Konfigurieren von Router R2
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.Verwenden des CLI-Editors im Konfigurationsmodushttps://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html
So konfigurieren Sie Router R2:
Wiederholen Sie diesen Vorgang für Router R1, nachdem Sie die entsprechenden Schnittstellennamen, Adressen und anderen Parameter geändert haben.
Konfigurieren Sie die Schnittstellen mit IPv6-Adressen.
[edit interfaces] user@R2# set ge-1/0/0 unit 0 family inet6 address abcd::192:2:1:1/120 user@R2# set ge-1/1/5 unit 0 family inet6 address abcd::13:14:2:2/120
Konfigurieren Sie die IPv6-Loopback-Adresse.
[edit interfaces] user@R2# set lo0 unit 0 family inet6 address abcd::128:220:41:229/128
Konfigurieren Sie die Router-ID und die AS-Nummer (Autonomous System).
[edit routing-options] user@R2# set router-id 128.220.41.229 user@R2# set autonomous-system 64497
Konfigurieren Sie eine EBGP-Peering-Sitzung zwischen Router R1 und Router R2.
[edit protocols] user@R2# set bgp group ebgp type external user@R2# set bgp group ebgp family inet6 unicast user@R2# set bgp group ebgp family inet6 flow user@R2# set bgp group ebgp export redis user@R2# set bgp group ebgp peer-as 64496 user@R2# set bgp group ebgp neighbor abcd::13:14:2:1
Konfigurieren Sie eine statische Route und einen nächsten Hop. Daher wird der Routing-Tabelle eine Route hinzugefügt, um das Feature in diesem Beispiel zu überprüfen.
[edit routing-options] user@R2# set rib inet6.0 static route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2
Geben Sie die Bedingungen für die Ablaufspezifikation an.
[edit routing-options] user@R2# set rib inet6.0 flow route route-1 match destination abcd::11:11:11:10/128 user@R2# set rib inet6.0 flow route route-1 match protocol tcp user@R2# set rib inet6.0 flow route route-1 match destination-port http user@R2# set rib inet6.0 flow route route-1 match source-port 65535
Konfigurieren Sie eine Aktion, um Pakete zu verwerfen, die den angegebenen Übereinstimmungsbedingungen entsprechen.discard
[edit routing-options] user@R2# set rib inet6.0 flow route route-1 then discard
Geben Sie die Bedingungen für die Ablaufspezifikation an.
[edit routing-options] user@R2# set rib inet6.0 flow route route-2 match destination abcd::11:11:11:30/128 user@R2# set rib inet6.0 flow route route-2 match icmp6-type echo-request user@R2# set rib inet6.0 flow route route-2 match packet-length 100 user@R2# set rib inet6.0 flow route route-2 match dscp 10
Konfigurieren einer Aktion zum Akzeptieren von Paketen, die den angegebenen Übereinstimmungsbedingungen entsprechenaccept
[edit routing-options] user@R2# set rib inet6.0 flow route route-2 then accept
Definieren Sie eine Richtlinie, die es BGP ermöglicht, statische Routen zu akzeptieren.
[edit policy-options] user@R2# set policy-statement redis from protocol static user@R2# set policy-statement redis then accept
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die Befehle , , und eingeben.show interfacesshow protocolsshow routing-optionsshow policy-options Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit] user@R2# show interfaces ge-1/0/0 { unit 0 { family inet6 { address abcd::192:2:1:1/120; } } } ge-1/1/5 { unit 0 { family inet6 { address abcd::13:14:2:2/120; } } } lo0 { unit 0 { family inet6 { address abcd::128:220:41:229/128; } } }
[edit] user@R2# show protocols bgp { group ebgp { type external; family inet6 { unicast; flow; } export redis; peer-as 64496; neighbor abcd::13:14:2:1; } }
[edit] user@R2# show routing-options rib inet6.0 { static { route abcd::11:11:11:0/120 next-hop abcd::192:2:1:2; } flow { route route-1 { match { destination abcd::11:11:11:10/128; protocol tcp; destination-port http; source-port 65535; } then discard; } route route-2 { match { destination abcd::11:11:11:30/128; icmp6-type echo-request; packet-length 100; dscp 10; } then accept; } } } router-id 128.220.41.229; autonomous-system 64497;
[edit] user@R2# show policy-options policy-statement redis { from protocol static; then accept; }
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen des Vorhandenseins von IPv6-Datenflussspezifikationsrouten in der inet6flow-Tabelle
- Überprüfen der BGP-Zusammenfassungsinformationen
- Verifizieren der Datenstromvalidierung
- Überprüfen der Datenflussspezifikation von IPv6-Routen
Überprüfen des Vorhandenseins von IPv6-Datenflussspezifikationsrouten in der inet6flow-Tabelle
Zweck
Zeigen Sie die Routen in der Tabelle in Router R1 und R2 an, und stellen Sie sicher, dass BGP die Flow-Routen gelernt hat.inet6flow
Was
Führen Sie den Befehl im Betriebsmodus auf Router R1 aus.show route table inet6flow.0 extensive
user@R1> show route table inet6flow.0 extensive inet6flow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535/term:1 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): discard,count *BGP Preference: 170/-101 Next hop type: Fictitious, Next hop index: 0 Address: 0x9b24064 Next-hop reference count: 2 State:<Active Ext> Local AS: 64496 Peer AS: 64497 Age: 20:55 Validation State: unverified Task: BGP_64497.abcd::13:14:2:2 Announcement bits (1): 0-Flow AS path: 64497 I Communities: traffic-rate:64497:0 Accepted Validation state: Accept, Originator: abcd::13:14:2:2, Nbr AS: 64497 Via: abcd::11:11:11:0/120, Active Localpref: 100 Router ID: 128.220.41.229 abcd::11:11:11:30/128,*,icmp6-type=128,len=100,dscp=10/term:2 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): accept,count *BGP Preference: 170/-101 Next hop type: Fictitious, Next hop index: 0 Address: 0x9b24064 Next-hop reference count: 2 State: <Active Ext> Local AS: 64496 Peer AS: 64497 Age: 12:51 Validation State: unverified Task: BGP_64497.abcd::13:14:2:2 Announcement bits (1): 0-Flow AS path: 64497 I Accepted Validation state: Accept, Originator: abcd::13:14:2:2, Nbr AS: 64497 Via: abcd::11:11:11:0/120, Active Localpref: 100 Router ID: 128.220.41.229
Führen Sie den Befehl im Betriebsmodus auf Router R2 aus.show route table inet6flow.0 extensive
user@R2> show route table inet6flow.0 extensive inet6flow.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535/term:1 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): discard,count Page 0 idx 0, (group pe-v6 type External) Type 1 val 0xaec8850 (adv_entry) Advertised metrics: Nexthop: Self AS path: [64497] Communities: traffic-rate:64497:0 Path abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535 Vector len 4. Val: 0 *Flow Preference: 5 Next hop type: Fictitious, Next hop index: 0 Address: 0x9b24064 Next-hop reference count: 3 State: <Active> Local AS: 64497 Age: 14:21 Validation State: unverified Task: RT Flow Announcement bits (2): 0-Flow 1-BGP_RT_Background AS path: I Communities: traffic-rate:64497:0 abcd::11:11:11:30/128,*,proto=17,port=65535/term:2 (1 entry, 1 announced) TSI: KRT in dfwd; Action(s): accept,count Page 0 idx 0, (group pe-v6 type External) Type 1 val 0xaec8930 (adv_entry) Advertised metrics: Nexthop: Self AS path: [64497] Communities: Path abcd::11:11:11:30/128,*,proto=17,port=65535 Vector len 4. Val: 0 *Flow Preference: 5 Next hop type: Fictitious, Next hop index: 0 Address: 0x9b24064 Next-hop reference count: 3 State: <Active> Local AS: 64497 Age: 14:21 Validation State: unverified Task: RT Flow Announcement bits (2): 0-Flow 1-BGP_RT_Background AS path: I
Bedeutung
Das Vorhandensein der Routen abcd::11:11:11:10/128 und abcd::11:11:11:11:30/128 in der Tabelle bestätigt, dass BGP die Flow-Routen gelernt hat.inet6flow
Überprüfen der BGP-Zusammenfassungsinformationen
Zweck
Überprüfen Sie, ob die BGP-Konfiguration korrekt ist.
Was
Führen Sie den Befehl im Betriebsmodus auf den Routern R1 und R2 aus.show bgp summary
user@R1> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet6.0 1 1 0 0 0 0 inet6flow.0 2 2 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... abcd::13:14:2:2 2000 58 58 0 2 19:48 Establ inet6.0: 1/1/1/0 inet6flow.0: 2/2/2/0 user@R2> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet6.0 0 0 0 0 0 0 inet6flow.0 0 0 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... abcd::13:14:2:1 64496 51 52 0 0 23:03 Establ inet6.0: 0/0/0/0 inet6flow.0: 0/0/0/0
Bedeutung
Stellen Sie sicher, dass die Tabelle die BGP-Nachbaradresse enthält und eine Peering-Sitzung mit dem BGP-Nachbarn eingerichtet wurde.inet6.0
Verifizieren der Datenstromvalidierung
Zweck
Zeigen Sie Informationen zu Flow-Routen an.
Was
Führen Sie den Befehl im Betriebsmodus auf Router R1 aus.show route flow validation
user@R1> show route flow validation inet6.0: abcd::11:11:11:0/120 Active unicast route Dependent flow destinations: 2 Origin: abcd::13:14:2:2, Neighbor AS: 64497 abcd::11:11:11:10/128 Flow destination (1 entries, 1 match origin, next-as) Unicast best match: abcd::11:11:11:0/120 Flags: Consistent abcd::11:11:11:30/128 Flow destination (1 entries, 1 match origin, next-as) Unicast best match: abcd::11:11:11:0/120 Flags: Consistent
Bedeutung
In der Ausgabe werden die Flow-Routen in der Tabelle angezeigt.inet6.0
Überprüfen der Datenflussspezifikation von IPv6-Routen
Zweck
Zeigt die Anzahl der Pakete an, die basierend auf den angegebenen Datenflussspezifikationsrouten verworfen und akzeptiert wurden.
Was
Führen Sie den Befehl im Betriebsmodus auf Router R2 aus.show firewall filter_flowspec_default_inet6_
user@R2> show firewall filter __flowspec_default_inet6__ Filter: __flowspec_default_inet6__ Counters: Name Bytes Packets abcd::11:11:11:10/128,*,proto=6,dstport=80,srcport=65535 0 0 abcd::11:11:11:30/128,*,proto=17,port=65535 6395472 88826
Bedeutung
Die Ausgabe gibt an, dass Pakete, die für abcd::11:11:11:10/128 bestimmt sind, verworfen wurden und 88826 Pakete für die Route abcd::11:11:11:11:11:11:30/128 akzeptiert wurden.
Konfigurieren der BGP-Datenstromspezifikationsaktion Umleitung an IP zum Filtern des DDoS-Datenverkehrs
Ab Junos OS Version 18.4R1 wird die BGP-Flow-Spezifikation, wie in BGP Flow-Spec Internet draft draft-ietf-idr-flowspec-redirect-ip-02.txt beschrieben, Redirect to IP Action unterstützt. Die Aktion "Umleiten an IP" nutzt die erweiterte BGP-Community, um Optionen zum Filtern des Datenverkehrs zur DDoS-Abwehr in Netzwerken von Dienstanbietern bereitzustellen. Die Umleitung der Legacy-Datenstromspezifikation an IP verwendet das BGP-Attribut nexthop. Junos OS kündigt standardmäßig die Weiterleitung zur IP-Datenstromspezifikation mithilfe der erweiterten Community an. Dieses Feature ist erforderlich, um die Dienstverkettung in Virtual Service Control Gateway (vSCG) zu unterstützen. Die Aktion "Umleiten an IP" ermöglicht es, den Datenverkehr der Datenstromspezifikation an eine global erreichbare Adresse umzuleiten, die mit einem Filtergerät verbunden werden kann, das den DDoS-Datenverkehr filtern und den sauberen Datenverkehr an das Ausgangsgerät senden kann.
Bevor Sie mit der Umleitung des Datenverkehrs an IP für BGP-Datenstromspezifikationsrouten beginnen, gehen Sie wie folgt vor:
Konfigurieren Sie die Geräteschnittstellen.
Konfigurieren Sie OSPF oder ein anderes IGP-Protokoll.
Konfigurieren Sie MPLS und LDP.
Konfigurieren Sie BGP.
Konfigurieren Sie die Funktion "Umleitung zu IP" mithilfe der erweiterten BGP-Community.
Konfigurieren Sie die Funktion "Legacy-Datenflussspezifikation redirect to IP" mithilfe des nexthop-Attributs.
Sie können keine Richtlinien so konfigurieren, dass Datenverkehr mithilfe der erweiterten BGP-Community und der Legacyumleitung an die IP-Adresse des nächsten Hops zusammen an eine IP-Adresse umgeleitet wird.
Konfigurieren Sie die Umleitung der Legacy-Datenflussspezifikation an die IP-Adresse, die im Internetentwurf draft-ietf-idr-flowspec-redirect-ip-00.txt , BGP Flow-Spec Extended Community for Traffic Redirect to IP Next Hop include auf der Hierarchieebene angegeben ist.
[edit group bgp-group neighbor bgp neighbor family inet flow] user@host# set legacy-redirect-ip-action
Definieren Sie eine Richtlinie, die mit dem Attribut für den nächsten Hop übereinstimmt.
[edit policy options] user@host#policy statement policy_name user@host#from community community-name user@host#from next-hop ip-address
Definieren Sie z. B. eine Richtlinie p1, um den Datenverkehr an die IP-Adresse 10.1.1.1 des nächsten Hops umzuleiten.
[edit policy options] user@host#policy statement p1 user@host#from community redirnh user@host#from next-hop 10.1.1.1
Definieren Sie eine Richtlinie zum Festlegen, Hinzufügen oder Löschen der BGP-Community mithilfe der Legacy-Datenflussspezifikation next hop attribute redirect to IP action.
[edit policy-options] user@host# policy-statement policy_name user@host# then community set community-name user@host# then community add community-name user@host# then community delete community-name user@host# then next-hop next-hop-address
Definieren Sie z. B. eine Richtlinie p1 und setzen, fügen oder löschen Sie eine BGP-Community-Redirnh, um den DDoS-Datenverkehr an die IP-Adresse des nächsten Hops 10.1.1.1 umzuleiten.
[edit policy-options policy-statement p1] user@host# then community set redirnh user@host# then community add redirnh user@host# then community delete redirnh user@host# then next-hop 10.1.1.1
Siehe auch
Weiterleiten von Datenverkehr mithilfe der BGP-Datenstromspezifikation DSCP-Aktion
Konfigurieren Sie die DSCP-Aktion BGP Flow Specification (FlowSpec), um Pakete mithilfe der Weiterleitungsklasse und Informationen zur Verlustpriorität effektiv über das Netzwerk weiterzuleiten.
Vorteile der BGP FlowSpec DSCP-Aktion zum Weiterleiten von Paketen
-
Leitet den Datenverkehr an die vorgesehenen COS-Warteschlangen weiter, wo COS-Richtlinien korrekt auf den Datenverkehr angewendet werden.
-
Beeinflusst das lokale Weiterleitungsverhalten (z. B. Auswahl des Tunnels) basierend auf dem bereitgestellten DSCP-Wert.
-
Hilft bei der effektiven Verwaltung des Datenverkehrs in Ihrem Netzwerk.
Wenn ein Paket in einen Router gelangt, durchläuft das Paket die Funktionen (z. B. Firewall, COS usw.), die an der Eingangsschnittstelle angewendet werden. Wenn Sie den BGP FlowSpec-Filter auf der Eingangsschnittstelle konfigurieren, wird der Filter basierend auf der DSCP-Aktion auf die Pakete pro Routing-Instanz angewendet. Die DSCP-Aktion klassifiziert und schreibt die Pakete zusammen mit der DSCP-Codeänderung über den BGP FlowSpec-Filter um. Basierend auf der Weiterleitungsklasse und den Informationen zur Verlustpriorität werden die Pakete in die richtige Weiterleitungswarteschlange gestellt. Pakete durchlaufen Datenflussrouten nur, wenn bestimmte Übereinstimmungsbedingungen erfüllt sind. Die übereinstimmenden Bedingungen können Quell- und Ziel-IP-Adresse, Quell- und Zielport, DSCP, Protokollnummer usw. sein. Die Informationen zur Weiterleitungsklasse und zur Verlustpriorität werden über die umgekehrte Zuordnungstabelle aktualisiert.
Hier sehen Sie die Topologie einer BGP-Sitzung, die zwischen dem Service Provider und den Unternehmenskundennetzwerken eingerichtet wurde.
In dieser Topologie wird eine BGP-Sitzung zwischen dem Service Provider und dem Unternehmenskundennetzwerk für BGP FlowSpec konfiguriert. Der BGP FlowSpec-Filter wird sowohl bei PE1- als auch bei PE2-Routern angewendet. Pakete, die in diese Router eingehen, werden basierend auf dem BGP-FlowSpec-Filter und der DSCP-Aktion umgeschrieben.
Um den BGP-FlowSpec-Filter auf einem Gerät zu aktivieren, müssen Sie die Konfigurationsanweisung auf der Hierarchieebene [] hinzufügen:dscp-mapping-classifier
edit forwarding-options family (inet | inet6)
forwarding-options { family inet { dscp-mapping-classifier ipv4-classifer; } family inet6 { dscp-mapping-classifier ipv6-classifer; } }
Die folgende Beispielkonfiguration für eine Dienstklasse ordnet DSCP-Codepunkte der Weiterleitungsklasse und der Verlustpriorität zu:
class-of-service { classifiers { dscp dscp1 { forwarding-class best-effort { loss-priority low code-points 000000; } } } }
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Feature Explorer, um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.
extended-community