Sur cette page
Restriction d’accès TCP pour BGP
Comprendre les options de sécurité pour BGP avec TCP
Parmi les protocoles de routage, BGP est le seul à utiliser TCP comme protocole de transport. Les homologues BGP sont établis par une configuration manuelle entre les périphériques de routage pour créer une session TCP sur le port 179. Un périphérique compatible BGP envoie régulièrement des messages persistants pour maintenir la connexion.
Au fil du temps, BGP est devenu le protocole de routage interdomaine dominant sur Internet. Cependant, ses garanties de stabilité et de sécurité sont limitées. La configuration des options de sécurité pour BGP doit trouver un équilibre entre des mesures de sécurité appropriées et des coûts acceptables. Aucune méthode n’est apparue comme supérieure à d’autres méthodes. Chaque administrateur réseau doit configurer des mesures de sécurité adaptées aux besoins du réseau utilisé.
Pour plus d’informations sur les problèmes de sécurité associés à l’utilisation de TCP comme protocole de transport par BGP, consultez la RFC 4272, BGP Security Vulnerabilities Analysis.
Voir également
Exemple : Configuration d’un filtre pour bloquer l’accès TCP à un port sauf à partir d’homologues BGP spécifiés
Cet exemple montre comment configurer un filtre de pare-feu sans état standard qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
Dans cet exemple, vous allez créer un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.
Le filtre filter_bgp179 de pare-feu sans état fait correspondre tous les paquets des interfaces directement connectées sur les appareils A et B vers le numéro de port de destination 179.
Topologie
Figure 1 Affiche la topologie utilisée dans cet exemple. L’équipement C tente d’établir une connexion TCP avec l’équipement E. L’appareil E bloque la tentative de connexion. Cet exemple montre la configuration sur l’appareil E.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.
Appareil 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
Dispositif 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
Configuration de l’appareil E
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer l’appareil E avec un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés :
Configurez les interfaces.
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
Configurez 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
Configurez le numéro du système autonome.
[edit routing-options] user@E# set autonomous-system 17
Définissez le terme de filtre qui accepte les tentatives de connexion TCP vers le port 179 à partir des homologues BGP spécifiés.
[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
Définissez l’autre terme de filtre pour rejeter les paquets provenant d’autres sources.
[edit firewall family inet filter filter_bgp179] user@E# set term 2 then reject
Appliquez le filtre de pare-feu à l’interface de bouclage.
[edit interfaces lo0 unit 2 family inet] user@E# set filter input filter_bgp179 user@E# set address 192.168.0.1/32
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show firewall, show interfaces, show protocolset show routing-options. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
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;
Si vous avez terminé de configurer l’appareil, passez commit en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
- Vérification de la configuration du filtre
- Vérification des connexions TCP
- Surveillance du trafic sur les interfaces
Vérification de la configuration du filtre
But
Assurez-vous que le filtre est répertorié dans la sortie de la show firewall filter
commande.
Action
user@E> show firewall filter filter_bgp179 Filter: filter_bgp179
Vérification des connexions TCP
But
Vérifiez les connexions TCP.
Action
À partir du mode opérationnel, exécutez la commande sur l’appareil C et l’appareil show system connections extensive
E.
La sortie sur le périphérique C indique la tentative d’établissement d’une connexion TCP. La sortie sur l’appareil E indique que les connexions sont établies avec l’appareil A et l’appareil B uniquement.
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
Surveillance du trafic sur les interfaces
But
Utilisez la monitor traffic commande pour comparer le trafic d’une interface qui établit une connexion TCP avec le trafic d’une interface qui n’établit pas de connexion TCP.
Action
À partir du mode opérationnel, exécutez la monitor traffic commande sur l’interface de l’appareil E vers l’appareil B et sur l’interface de l’appareil E vers l’appareil C. L’exemple de sortie suivant vérifie que dans le premier exemple, les messages d’accusé de réception (ack) sont reçus. Dans le deuxième exemple, ack les messages ne sont pas reçus.
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>
Exemple : Configuration d’un filtre pour limiter l’accès TCP à un port en fonction d’une liste de préfixes
Cet exemple montre comment configurer un filtre de pare-feu sans état standard qui limite certains trafics TCP et ICMP (Internet Control Message Protocol) destinés au moteur de routage en spécifiant une liste de sources de préfixes contenant des homologues BGP autorisés.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
Dans cet exemple, vous créez un filtre de pare-feu sans état qui bloque toutes les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP qui ont un préfixe spécifié.
Topologie
Une liste de préfixes source, plist_bgp179, est créée et spécifie la liste des préfixes source contenant les homologues BGP autorisés.
Le filtre filter_bgp179 de pare-feu sans état fait correspondre tous les paquets de la liste plist_bgp179 de préfixes source au numéro de port de destination 179.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit] hiérarchie.
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
Configurer le filtre
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer le filtre :
Développez la liste bgp179 des préfixes pour inclure tous les préfixes pointés par le groupe homologues pair BGP défini par protocols bgp group <*> neighbor <*>.
[edit policy-options prefix-list plist_bgp179] user@host# set apply-path " protocols bgp group <*> neighbor <*>"
Définissez le terme de filtre qui rejette les tentatives de connexion TCP vers le port 179 de tous les demandeurs, à l’exception des homologues BGP spécifiés.
[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
Définissez l’autre terme de filtre pour qu’il accepte tous les paquets.
[edit firewall family inet filter filter_bgp179] user@host# set term term2 then accept
Appliquez le filtre de pare-feu à l’interface de bouclage.
[edit interfaces lo0 unit 0 family inet] user@host# set filter input filter_bgp179 user@host# set address 127.0.0.1/32
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show firewall, show interfaces et show policy-options . Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
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 <*>"; }
Si vous avez terminé de configurer l’appareil, passez commit en mode de configuration.
Vérification
Vérifiez que la configuration fonctionne correctement.
Affichage du filtre de pare-feu appliqué à l’interface de bouclage
But
Vérifiez que le filtre filter_bgp179 de pare-feu est appliqué au trafic d’entrée IPv4 au niveau de l’interface lo0.0logique .
Action
Utilisez la commande show interfaces statistics operational mode
pour l’interface lo0.0logique et incluez l’option detail. Dans la Protocol inet section de la section de sortie de la commande, le champ affiche le Input Filters nom du filtre de pare-feu sans état appliqué à l’interface logique dans le sens d’entrée.
[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
Exemple : Limitation de la taille des segments TCP pour BGP
Cet exemple montre comment éviter les problèmes de vulnérabilité ICMP (Internet Control Message Protocol) en limitant la taille du segment TCP lorsque vous utilisez la découverte MTU (Maximum Transmission Unit). L’utilisation de la découverte MTU sur les chemins TCP est une méthode permettant d’éviter la fragmentation des paquets BGP.
Conditions préalables
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cet exemple.
Présentation
TCP négocie une valeur de taille de segment maximale (MSS) lors de l’établissement de la connexion de session entre deux homologues. La valeur MSS négociée est principalement basée sur l’unité de transmission maximale (MTU) des interfaces auxquelles les homologues communicants sont directement connectés. Toutefois, en raison des variations de la MTU de liaison sur le chemin emprunté par les paquets TCP, certains paquets du réseau qui sont bien en deçà de la valeur MSS peuvent être fragmentés lorsque la taille du paquet dépasse la MTU de la liaison.
Pour configurer la valeur TCP MSS, incluez l’instruction dont la tcp-mss
taille de segment est comprise entre 1 et 4096.
Si le routeur reçoit un paquet TCP avec le bit SYN et l’ensemble d’options MSS, et que l’option MSS spécifiée dans le paquet est supérieure à la valeur MSS spécifiée par l’instruction tcp-mss
, le routeur remplace la valeur MSS dans le paquet par la valeur inférieure spécifiée par l’instruction tcp-mss
.
La valeur MSS configurée est utilisée comme taille de segment maximale pour l’expéditeur. L’hypothèse est que la valeur TCP MSS utilisée par l’expéditeur pour communiquer avec le voisin BGP est la même que la valeur TCP MSS que l’expéditeur peut accepter du voisin BGP. Si la valeur MSS du voisin BGP est inférieure à la valeur MSS configurée, la valeur MSS du voisin BGP est utilisée comme taille de segment maximale pour l’expéditeur.
Cette fonctionnalité est prise en charge avec TCP sur IPv4 et TCP sur IPv6.
Diagramme de topologie
Figure 2 Affiche la topologie utilisée dans cet exemple.
Configuration
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
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
Procédure
Procédure étape par étape
L’exemple suivant nécessite que vous naviguiez à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, reportez-vous à la section Utilisation de l’éditeur CLI en mode configuration du Guide de l’utilisateur de l’interface de ligne de commande Junos OS.
Pour configurer le routeur R0 :
Configurez les interfaces.
[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
Configurez un protocole IGP (Interior Gateway Protocol), OSPF dans cet exemple.
[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
Configurez un ou plusieurs groupes BGP.
[edit protocols bgp group int] user@R0# set type internal user@R0# set local-address 10.255.14.179
Configurez la découverte MTU pour éviter la fragmentation des paquets.
[edit protocols bgp group int] user@R0# set mtu-discovery
Configurez les voisins BGP, avec le protocole TCP MSS défini globalement pour le groupe ou spécifiquement pour les différents voisins.
[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
REMARQUE :Le paramètre de voisinage TCP MSS remplace le paramètre de groupe.
Configurez le système autonome local.
[edit routing-options] user@R0# set autonomous-system 65000
Résultats
À partir du mode de configuration, confirmez votre configuration en saisissant les commandes show interfaces
, show protocols
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
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;
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Pour vérifier que la configuration fonctionne correctement, exécutez les commandes suivantes :
show system connections extensive | find <neighbor-address>
, pour vérifier la valeur TCP MSS négociée.monitor traffic interface
, pour surveiller le trafic BGP et s’assurer que la valeur TCP MSS configurée est utilisée comme option MSS dans le paquet TCP SYN.
Dépannage
Calcul MSS avec MTU Discovery
Problème
Prenons l’exemple de deux périphériques de routage (R1 et R2) ayant une connexion BGP interne (IBGP). Sur les deux routeurs, les interfaces connectées ont 4034 comme MTU IPv4.
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
Dans la capture de paquets suivante sur l’appareil R1, le MSS négocié est 3994. Dans les informations pour MSS show system connections extensive
, il est fixé à 2048.
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
Solution
Il s’agit d’un comportement attendu avec Junos OS. La valeur MSS est égale à la valeur MTU moins les en-têtes IP ou IPv6 et TCP. Cela signifie que la valeur MSS est généralement inférieure de 40 octets à la MTU (pour IPv4) et de 60 octets inférieure à la MTU (pour IPv6). Cette valeur est négociée entre les pairs. Dans cet exemple, il s’agit de 4034 - 40 = 3994. Junos OS arrondit ensuite cette valeur à un multiple de 2 Ko. La valeur est 3994 / 2048 * 2048=2048. Il n’est donc pas nécessaire de voir la même valeur MSS avec dans la show system connections
sortie.
3994 / 2048 = 1.95
1,95 est arrondi à 1.
1 * 2048 = 2048