Auf dieser Seite
TCP-Zugriffsbeschränkung für BGP
Grundlegendes zu Sicherheitsoptionen für BGP mit TCP
Unter den Routing-Protokollen ist BGP einzigartig in der Verwendung von TCP als Transportprotokoll. BGP-Peers werden durch manuelle Konfiguration zwischen Routinggeräten eingerichtet, um eine TCP-Sitzung auf Port 179 zu erstellen. Ein BGP-fähiges Gerät sendet regelmäßig Keepalive-Nachrichten, um die Verbindung aufrechtzuerhalten.
Im Laufe der Zeit hat sich BGP zum dominanten Interdomain-Routing-Protokoll im Internet entwickelt. Es verfügt jedoch über begrenzte Garantien für Stabilität und Sicherheit. Die Konfiguration von Sicherheitsoptionen für BGP muss ein ausgewogenes Verhältnis zwischen geeigneten Sicherheitsmaßnahmen und akzeptablen Kosten haben. Keine Methode ist anderen Methoden überlegen. Jeder Netzwerkadministrator muss Sicherheitsmaßnahmen konfigurieren, die den Anforderungen des verwendeten Netzwerks entsprechen.
Detaillierte Informationen zu den Sicherheitsproblemen, die mit der Verwendung von TCP als Transportprotokoll durch BGP verbunden sind, finden Sie unter RFC 4272, BGP-Sicherheitsschwachstellenanalyse.
Siehe auch
Beispiel: Konfigurieren eines Filters zum Blockieren des TCP-Zugriffs auf einen Port mit Ausnahme von angegebenen BGP-Peers
Dieses Beispiel zeigt, wie Sie einen standardmäßigen, zustandslosen Firewallfilter konfigurieren, der alle TCP-Verbindungsversuche für Port 179 von allen Requestern mit Ausnahme von angegebenen BGP-Peers blockiert.
Anforderungen
Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Überblick
In diesem Beispiel erstellen Sie einen zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Anfragenden mit Ausnahme der angegebenen BGP-Peers zu portieren.
Der zustandslose Firewall-Filter filter_bgp179 passt alle Pakete von den direkt verbundenen Schnittstellen auf Gerät A und Gerät B bis zur Ziel-Portnummer 179 ab.
Topologie
Abbildung 1 zeigt die in diesem Beispiel verwendete Topologie. Gerät C versucht, eine TCP-Verbindung zu Gerät E herzustellen. Gerät E blockiert den Verbindungsversuch. Dieses Beispiel zeigt die Konfiguration auf Gerät E.

Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit] CLI ein.
Gerät C
set interfaces ge-1/2/0 unit 10 description to-E set interfaces ge-1/2/0 unit 10 family inet address 10.10.10.10/30 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 17 set protocols bgp group external-peers neighbor 10.10.10.9 set routing-options autonomous-system 22
Gerät E
set interfaces ge-1/2/0 unit 0 description to-A set interfaces ge-1/2/0 unit 0 family inet address 10.10.10.1/30 set interfaces ge-1/2/1 unit 5 description to-B set interfaces ge-1/2/1 unit 5 family inet address 10.10.10.5/30 set interfaces ge-1/0/0 unit 9 description to-C set interfaces ge-1/0/0 unit 9 family inet address 10.10.10.9/30 set interfaces lo0 unit 2 family inet filter input filter_bgp179 set interfaces lo0 unit 2 family inet address 192.168.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 22 set protocols bgp group external-peers neighbor 10.10.10.2 set protocols bgp group external-peers neighbor 10.10.10.6 set protocols bgp group external-peers neighbor 10.10.10.10 set routing-options autonomous-system 17 set firewall family inet filter filter_bgp179 term 1 from source-address 10.10.10.2/32 set firewall family inet filter filter_bgp179 term 1 from source-address 10.10.10.6/32 set firewall family inet filter filter_bgp179 term 1 from destination-port bgp set firewall family inet filter filter_bgp179 term 1 then accept set firewall family inet filter filter_bgp179 term 2 then reject
Konfigurieren von Gerät E
Schritt-für-Schritt-Verfahren
Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.
So konfigurieren Sie Gerät E mit einem zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Requestoren mit Ausnahme der angegebenen BGP-Peers zu portieren:
Konfigurieren Sie die Schnittstellen.
user@E# set interfaces ge-1/2/0 unit 0 description to-A user@E# set interfaces ge-1/2/0 unit 0 family inet address 10.10.10.1/30 user@E# set interfaces ge-1/2/1 unit 5 description to-B user@E# set interfaces ge-1/2/1 unit 5 family inet address 10.10.10.5/30 user@E# set interfaces ge-1/0/0 unit 9 description to-C user@E# set interfaces ge-1/0/0 unit 9 family inet address 10.10.10.9/30
Konfigurieren Sie BGP.
[edit protocols bgp group external-peers] user@E# set type external user@E# set peer-as 22 user@E# set neighbor 10.10.10.2 user@E# set neighbor 10.10.10.6 user@E# set neighbor 10.10.10.10
Konfigurieren Sie die autonome Systemnummer.
[edit routing-options] user@E# set autonomous-system 17
Definieren Sie den Filterbegriff, der TCP-Verbindungsversuche zum Port 179 von den angegebenen BGP-Peers akzeptiert.
[edit firewall family inet filter filter_bgp179] user@E# set term 1 from source-address 10.10.10.2/32 user@E# set term 1 from source-address 10.10.10.6/32 user@E# set term 1 from destination-port bgp user@E# set term 1 then accept
Definieren Sie den anderen Filterbegriff, um Pakete von anderen Quellen abzulehnen.
[edit firewall family inet filter filter_bgp179] user@E# set term 2 then reject
Wenden Sie den Firewall-Filter auf die Loopback-Schnittstelle an.
[edit interfaces lo0 unit 2 family inet] user@E# set filter input filter_bgp179 user@E# set address 192.168.0.1/32
Ergebnisse
Bestätigen Sie Ihre Konfiguration im Konfigurationsmodus, indem Sie die show firewallBefehle , show interfaces, show protocolsund show routing-options eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@E# show firewall family inet { filter filter_bgp179 { term 1 { from { source-address { 10.10.10.2/32; 10.10.10.6/32; } destination-port bgp; } then accept; } term 2 { then { reject; } } } }
user@E# show interfaces lo0 { unit 2 { family inet { filter { input filter_bgp179; } address 192.168.0.1/32; } } } ge-1/2/0 { unit 0 { description to-A; family inet { address 10.10.10.1/30; } } } ge-1/2/1 { unit 5 { description to-B; family inet { address 10.10.10.5/30; } } } ge-1/0/0 { unit 9 { description to-C; family inet { address 10.10.10.9/30; } } }
user@E# show protocols bgp { group external-peers { type external; peer-as 22; neighbor 10.10.10.2; neighbor 10.10.10.6; neighbor 10.10.10.10; } }
user@E# show routing-options autonomous-system 17;
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .
Überprüfung
Bestätigen Sie, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen, ob der Filter konfiguriert ist
- Überprüfung der TCP-Verbindungen
- Überwachung des Datenverkehrs an den Schnittstellen
Überprüfen, ob der Filter konfiguriert ist
Zweck
Stellen Sie sicher, dass der Filter in der Ausgabe des show firewall filter
Befehls aufgeführt ist.
Aktion
user@E> show firewall filter filter_bgp179 Filter: filter_bgp179
Überprüfung der TCP-Verbindungen
Zweck
Überprüfen Sie die TCP-Verbindungen.
Aktion
Führen Sie den show system connections extensive
Befehl im Betriebsmodus auf Gerät C und Gerät E aus.
Die Ausgabe auf Gerät C zeigt den Versuch, eine TCP-Verbindung herzustellen. Die Ausgabe auf Gerät E zeigt, dass Verbindungen nur mit Gerät A und Gerät B hergestellt werden.
user@C> show system connections extensive | match 10.10.10 tcp4 0 0 10.10.10.9.51872 10.10.10.10.179 SYN_SENT
user@E> show system connections extensive | match 10.10.10 tcp4 0 0 10.10.10.5.179 10.10.10.6.62096 ESTABLISHED tcp4 0 0 10.10.10.6.62096 10.10.10.5.179 ESTABLISHED tcp4 0 0 10.10.10.1.179 10.10.10.2.61506 ESTABLISHED tcp4 0 0 10.10.10.2.61506 10.10.10.1.179 ESTABLISHED
Überwachung des Datenverkehrs an den Schnittstellen
Zweck
Verwenden Sie den monitor traffic Befehl, um den Datenverkehr auf einer Schnittstelle, die eine TCP-Verbindung herstellt, mit dem Datenverkehr auf einer Schnittstelle zu vergleichen, die keine TCP-Verbindung herstellt.
Aktion
Führen Sie den monitor traffic Befehl im Betriebsmodus auf der Geräte-E-Schnittstelle zu Gerät B und auf der Geräte-E-Schnittstelle zu Gerät C aus. In der folgenden Beispielausgabe wird überprüft, ob im ersten Beispiel Bestätigungsmeldungen (ack) empfangen werden. Im zweiten Beispiel ack werden keine Nachrichten empfangen.
user@E> monitor traffic size 1500 interface ge-1/2/1.5 19:02:49.700912 Out IP 10.10.10.5.bgp > 10.10.10.6.62096: P 3330573561:3330573580(19) ack 915601686 win 16384 <nop,nop,timestamp 1869518816 1869504850>: BGP, length: 19 19:02:49.801244 In IP 10.10.10.6.62096 > 10.10.10.5.bgp: . ack 19 win 16384 <nop,nop,timestamp 1869518916 1869518816> 19:03:03.323018 In IP 10.10.10.6.62096 > 10.10.10.5.bgp: P 1:20(19) ack 19 win 16384 <nop,nop,timestamp 1869532439 1869518816>: BGP, length: 19 19:03:03.422418 Out IP 10.10.10.5.bgp > 10.10.10.6.62096: . ack 20 win 16384 <nop,nop,timestamp 1869532539 1869532439> 19:03:17.220162 Out IP 10.10.10.5.bgp > 10.10.10.6.62096: P 19:38(19) ack 20 win 16384 <nop,nop,timestamp 1869546338 1869532439>: BGP, length: 19 19:03:17.320501 In IP 10.10.10.6.62096 > 10.10.10.5.bgp: . ack 38 win 16384 <nop,nop,timestamp 1869546438 1869546338>
user@E> monitor traffic size 1500 interface ge-1/0/0.9 18:54:20.175471 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1869009240 0,sackOK,eol> 18:54:23.174422 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1869012240 0,sackOK,eol> 18:54:26.374118 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 1869015440 0,sackOK,eol> 18:54:29.573799 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,sackOK,eol> 18:54:32.773493 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,sackOK,eol> 18:54:35.973185 Out IP 10.10.10.9.61335 > 10.10.10.10.bgp: S 573929123:573929123(0) win 16384 <mss 1460,sackOK,eol>
Beispiel: Konfigurieren eines Filters zur Begrenzung des TCP-Zugriffs auf einen Port basierend auf einer Prefixliste
Dieses Beispiel zeigt, wie Sie einen standardmäßigen, zustandslosen Firewall-Filter konfigurieren, der bestimmte TCP- und ICMP-Datenverkehr (Internet Control Message Protocol) einschränkt, der für die Routing-Engine bestimmt ist, indem eine Liste von Prefix-Quellen angegeben wird, die zulässige BGP-Peers enthalten.
Anforderungen
Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Überblick
In diesem Beispiel erstellen Sie einen zustandslosen Firewall-Filter, der alle TCP-Verbindungsversuche blockiert, um 179 von allen Anfragenden mit Ausnahme von BGP-Peers mit einem angegebenen Präfix zu portieren.
Topologie
Es wird eine Quellpfixliste erstellt, plist_bgp179die die Liste der Quellpräfixe angibt, die zugelassene BGP-Peers enthalten.
Der zustandslose Firewall-Filter filter_bgp179 passt alle Pakete von der Quellpräfixliste plist_bgp179 bis zur Zielportnummer 179 ab.
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit] CLI ein.
set policy-options prefix-list plist_bgp179 apply-path "protocols bgp group <*> neighbor <*>" set firewall family inet filter filter_bgp179 term 1 from source-address 0.0.0.0/0 set firewall family inet filter filter_bgp179 term 1 from source-prefix-list plist_bgp179 except set firewall family inet filter filter_bgp179 term 1 from destination-port bgp set firewall family inet filter filter_bgp179 term 1 then reject set firewall family inet filter filter_bgp179 term 2 then accept set interfaces lo0 unit 0 family inet filter input filter_bgp179 set interfaces lo0 unit 0 family inet address 127.0.0.1/32
Konfigurieren des Filters
Schritt-für-Schritt-Verfahren
Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.
So konfigurieren Sie den Filter:
Erweitern Sie die Präfixliste bgp179 , um alle Präfixe einzubeziehen, auf die von der von protocols bgp group <*> neighbor <*>.
[edit policy-options prefix-list plist_bgp179] user@host# set apply-path " protocols bgp group <*> neighbor <*>"
Definieren Sie den Filterbegriff, der versuche, 179 von allen Requestern mit Ausnahme der angegebenen BGP-Peers portiert zu werden, abzulehnen.
[edit firewall family inet filter filter_bgp179] user@host# set term term1 from source-address 0.0.0.0/0 user@host# set term term1 from source-prefix-list bgp179 except user@host# set term term1 from destination-port bgp user@host# set term term1 then reject
Definieren Sie den anderen Filterbegriff, um alle Pakete zu akzeptieren.
[edit firewall family inet filter filter_bgp179] user@host# set term term2 then accept
Wenden Sie den Firewall-Filter auf die Loopback-Schnittstelle an.
[edit interfaces lo0 unit 0 family inet] user@host# set filter input filter_bgp179 user@host# set address 127.0.0.1/32
Ergebnisse
Bestätigen Sie ihre Konfiguration im Konfigurationsmodus, indem Sie die show firewallBefehle und show policy-optionsshow interfacesdie Befehle eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@host# show firewall family inet { filter filter_bgp179 { term 1 { from { source-address { 0.0.0.0/0; } source-prefix-list { plist_bgp179 except; } destination-port bgp; } then { reject; } } term 2 { then { accept; } } } }
user@host# show interfaces lo0 { unit 0 { family inet { filter { input filter_bgp179; } address 127.0.0.1/32; } } }
user@host# show policy-options prefix-list plist_bgp179 { apply-path "protocols bgp group <*> neighbor <*>"; }
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .
Überprüfung
Bestätigen Sie, dass die Konfiguration ordnungsgemäß funktioniert.
Anzeigen des auf die Loopback-Schnittstelle angewendeten Firewall-Filters
Zweck
Stellen Sie sicher, dass der Firewall-Filter filter_bgp179 auf den IPv4-Eingabedatenverkehr an der logischen Schnittstelle lo0.0angewendet wird.
Aktion
Verwenden Sie den Befehl für die show interfaces statistics operational mode
logische Schnittstelle lo0.0, und schließen Sie die Option ein detail . Protocol inet Im Abschnitt der Befehlsausgabe zeigt das Feld den Input Filters Namen des zustandslosen Firewall-Filters an, der in Eingaberichtung auf die logische Schnittstelle angewendet wird.
[edit] user@host> show interfaces statistics lo0.0 detail Logical interface lo0.0 (Index 321) (SNMP ifIndex 16) (Generation 130) Flags: SNMP-Traps Encapsulation: Unspecified Traffic statistics: Input bytes : 0 Output bytes : 0 Input packets: 0 Output packets: 0 Local statistics: Input bytes : 0 Output bytes : 0 Input packets: 0 Output packets: 0 Transit statistics: Input bytes : 0 0 bps Output bytes : 0 0 bps Input packets: 0 0 pps Output packets: 0 0 pps Protocol inet, MTU: Unlimited, Generation: 145, Route table: 0 Flags: Sendbcast-pkt-to-re Input Filters: filter_bgp179 Addresses, Flags: Primary Destination: Unspecified, Local: 127.0.0.1, Broadcast: Unspecified, Generation: 138
Beispiel: Begrenzung der TCP-Segmentgröße für BGP
In diesem Beispiel wird gezeigt, wie Sie Schwachstellen im Internet Control Message Protocol (ICMP) vermeiden können, indem Sie die TCP-Segmentgröße beschränken, wenn Sie die maximale ERKENNUNG von Transmission Unit (MTU) verwenden. Die MTU-Erkennung auf TCP-Pfaden ist eine Methode, um BGP-Paketfragmentierung zu vermeiden.
Anforderungen
Vor der Konfiguration dieses Beispiels ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Überblick
TCP verhandelt beim Herstellen einer Sitzungsverbindung zwischen zwei Peers einen Wert für die maximale Segmentgröße (MSS). Der ausgehandelte MSS-Wert basiert hauptsächlich auf der maximalen Transmission Unit (MTU) der Schnittstellen, mit denen die kommunizierenden Peers direkt verbunden sind. Aufgrund von Abweichungen der Link-MTU auf dem Pfad, den die TCP-Pakete genommen haben, können jedoch einige Pakete im Netzwerk, die sich gut innerhalb des MSS-Wertes befinden, fragmentiert werden, wenn die Paketgröße die MTU der Verbindung übersteigt.
Um den TCP-MSS-Wert zu konfigurieren, fügen Sie die tcp-mss
Anweisung mit einer Segmentgröße von 1 bis 4096 ein.
Wenn der Router ein TCP-Paket mit dem SYN-Bit und dem Satz der MSS-Option empfängt und die im Paket angegebene MSS-Option größer als der durch die tcp-mss
Anweisung angegebene MSS-Wert ist, ersetzt der Router den MSS-Wert im Paket durch den durch die tcp-mss
Anweisung angegebenen niedrigeren Wert.
Der konfigurierte MSS-Wert wird als maximale Segmentgröße für den Absender verwendet. Die Annahme ist, dass der TCP-MSS-Wert, der vom Absender zur Kommunikation mit dem BGP-Nachbarn verwendet wird, derselbe ist wie der TCP-MSS-Wert, den der Absender vom BGP-Nachbarn akzeptieren kann. Wenn der MSS-Wert des BGP-Nachbarn kleiner als der konfigurierte MSS-Wert ist, wird der MSS-Wert aus dem BGP-Nachbarn als maximale Segmentgröße für den Absender verwendet.
Diese Funktion wird von TCP über IPv4 und TCP über IPv6 unterstützt.
Topologiediagramm
Abbildung 2 zeigt die in diesem Beispiel verwendete Topologie.

Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, und kopieren Sie dann die Befehle und fügen sie auf Hierarchieebene in die [edit]
CLI ein.
R0
set interfaces fe-1/2/0 unit 1 family inet address 1.1.0.1/30 set interfaces lo0 unit 1 family inet address 10.255.14.179/32 set protocols bgp group-int tcp-mss 2020 set protocols bgp group int type internal set protocols bgp group int local-address 10.255.14.179 set protocols bgp group int mtu-discovery set protocols bgp group int neighbor 10.255.71.24 tcp-mss 2000 set protocols bgp group int neighbor 10.255.14.177 set protocols bgp group int neighbor 10.0.14.4 tcp-mss 4000 set protocols ospf area 0.0.0.0 interface fe-1/2/0.1 set protocols ospf area 0.0.0.0 interface 10.255.14.179 set routing-options autonomous-system 65000
Verfahren
Schritt-für-Schritt-Verfahren
Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.
So konfigurieren Sie Router R0:
Konfigurieren Sie die Schnittstellen.
[edit interfaces] user@R0# set fe-1/2/0 unit 1 family inet address 1.1.0.1/30 user@R0# set lo0 unit 1 family inet address 10.255.14.179/32
Konfigurieren Sie in diesem Beispiel ein Interior Gateway Protocol (IGP), OSPF.
[edit protocols ospf area 0.0.0.0] user@R0# set interface fe-1/2/0.1 user@R0# set interface 10.255.14.179
Konfigurieren Sie eine oder mehrere BGP-Gruppen.
[edit protocols bgp group int] user@R0# set type internal user@R0# set local-address 10.255.14.179
Konfigurieren Sie die MTU-Erkennung, um die Paketfragmentierung zu verhindern.
[edit protocols bgp group int] user@R0# set mtu-discovery
Konfigurieren Sie die BGP-Nachbarn, wobei das TCP-MSS global für die Gruppe oder speziell für die verschiedenen Nachbarn festgelegt ist.
[edit protocols bgo group int] user@R0# set tcp-mss 2020 user@R0# set neighbor 10.255.14.177 user@R0# set neighbor 10.255.71.24 tcp-mss 2000 user@R0# set neighbor 10.0.14.4 tcp-mss 4000
HINWEIS:Die TCP-MSS-Neighbor-Einstellung überschreibt die Gruppeneinstellung.
Konfigurieren Sie das lokale autonome System.
[edit routing-options] user@R0# set autonomous-system 65000
Ergebnisse
Bestätigen Sie ihre Konfiguration im Konfigurationsmodus, indem Sie die show interfaces
Befehle und show routing-options
show protocols
die Befehle eingeben. Wenn die gewünschte Konfiguration in der Ausgabe nicht angezeigt wird, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@R0# show interfaces fe-1/2/0 { unit 1 { family inet { address 1.1.0.1/30; } } } lo0 { unit 1 { family inet { address 10.255.14.179/32; } } }
user@R0# show protocols bgp { group int { type internal; local-address 10.255.14.179; mtu-discovery; tcp-mss 2020; neighbor 10.255.71.24 { tcp-mss 2000; } neighbor 10.255.14.177; neighbor 10.0.14.4 { tcp-mss 4000; } } } ospf { area 0.0.0.0 { interface fe-1/2/0.1; interface 10.255.14.179; } }
user@R0# show routing-options autonomous-system 65000;
Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit
.
Überprüfung
Führen Sie die folgenden Befehle aus, um zu bestätigen, dass die Konfiguration ordnungsgemäß funktioniert:
show system connections extensive | find <neighbor-address>
, um den ausgehandelten TCP-MSS-Wert zu überprüfen.monitor traffic interface
, um BGP-Datenverkehr zu überwachen und sicherzustellen, dass der konfigurierte TCP-MSS-Wert als MSS-Option im TCP SYN-Paket verwendet wird.
Fehlerbehebung
MSS-Berechnung mit MTU Discovery
Problem
Betrachten wir ein Beispiel, in dem zwei Routing-Geräte (R1 und R2) über eine interne BGP (IBGP)-Verbindung verfügen. Auf beiden Routern haben die angeschlossenen Schnittstellen 4034 als IPv4-MTU.
user@R1# show protocols bgp | display set [edit] set protocols bgp group ibgp type internal set protocols bgp group ibgp local-address 45.45.45.2 set protocols bgp group ibgp mtu-discovery set protocols bgp group ibgp neighbor 45.45.45.1
user@R1# run show interfaces xe-0/0/3 extensive | match mtu Link-level type: Ethernet, MTU: 4048, LAN-PHY mode, Speed: 10Gbps, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0 Protocol inet, MTU: 4034, Generation: 180, Route table: 0 Protocol multiservice, MTU: Unlimited, Generation: 181, Route table: 0
In der folgenden Paketerfassung auf Gerät R1 ist das ausgehandelte MSS 3994. In den show system connections extensive
Informationen für MSS ist es auf 2048 festgelegt.
05:50:01.575218 Out Juniper PCAP Flags [Ext], PCAP Extension(s) total length 16 Device Media Type Extension TLV #3, length 1, value: Ethernet (1) Logical Interface Encapsulation Extension TLV #6, length 1, value: Ethernet (14) Device Interface Index Extension TLV #1, length 2, value: 137 Logical Interface Index Extension TLV #4, length 4, value: 69 -----original packet----- 00:21:59:e1:e8:03 > 00:19:e2:20:79:01, ethertype IPv4 (0x0800), length 78: (tos 0xc0, ttl 64, id 53193, offset 0, flags [DF], proto: TCP (6), length: 64) 45.45.45.2.62840 > 45.45.45.1.bgp: S 2939345813:2939345813(0) win 16384 **mss 3994,nop,wscale 0,nop,nop,timestamp 70559970 0,sackOK,eol> 05:50:01.575875 In Juniper PCAP Flags [Ext, no-L2, In], PCAP Extension(s) total length 16 Device Media Type Extension TLV #3, length 1, value: Ethernet (1) Logical Interface Encapsulation Extension TLV #6, length 1, value: Ethernet (14) Device Interface Index Extension TLV #1, length 2, value: 137 Logical Interface Index Extension TLV #4, length 4, value: 69 -----original packet----- PFE proto 2 (ipv4): (tos 0xc0, ttl 255, id 37709, offset 0, flags [DF], proto: TCP (6), length: 64) 45.45.45.1.bgp > 45.45.45.2.62840: S 2634967984:2634967984(0) ack 2939345814 win 16384 **mss 3994,nop,wscale 0,nop,nop,timestamp 174167273 70559970,sackOK,eol>
user@R1# run show system connections extensive | find 45.45 tcp4 0 0 45.45.45.2.62840 45.45.45.1.179 ESTABLISHED sndsbcc: 0 sndsbmbcnt: 0 sndsbmbmax: 131072 sndsblowat: 2048 sndsbhiwat: 16384 rcvsbcc: 0 rcvsbmbcnt: 0 rcvsbmbmax: 131072 rcvsblowat: 1 rcvsbhiwat: 16384 proc id: 19725 proc name: rpd iss: 2939345813 sndup: 2939345972 snduna: 2939345991 sndnxt: 2939345991 sndwnd: 16384 sndmax: 2939345991 sndcwnd: 10240 sndssthresh: 1073725440 irs: 2634967984 rcvup: 2634968162 rcvnxt: 2634968162 rcvadv: 2634984546 rcvwnd: 16384 rtt: 0 srtt: 1538 rttv: 1040 rxtcur: 1200 rxtshift: 0 rtseq: 2939345972 rttmin: 1000 mss: 2048
Lösung
Dies ist das erwartete Verhalten mit Junos OS. Der MSS-Wert ist gleich dem MTU-Wert abzüglich der IP- oder IPv6- und TCP-Header. Das bedeutet, dass der MSS-Wert in der Regel 40 Bytes weniger als die MTU (für IPv4) und 60 Bytes weniger als die MTU (für IPv6) ist. Dieser Wert wird zwischen den Peers ausgehandelt. In diesem Beispiel ist es 4034 - 40 = 3994. Junos OS rundet diesen Wert dann auf ein Vielfaches von 2 KB auf. Der Wert ist 3994 / 2048 * 2048=2048. Es ist also nicht notwendig, den gleichen MSS-Wert mit in der show system connections
Ausgabe zu sehen.
3994 / 2048 = 1.95
1,95 wird auf 1 gerundet.
1 * 2048 = 2048