NESTA PÁGINA
Restrição de acesso TCP para BGP
Entender as opções de segurança para BGP com TCP
Entre os protocolos de roteamento, o BGP é o único a usar o TCP como seu protocolo de transporte. Os peers BGP são estabelecidos por configuração manual entre dispositivos de roteamento para criar uma sessão TCP na porta 179. Um dispositivo habilitado para BGP envia periodicamente mensagens keepalive para manter a conexão.
Com o tempo, o BGP se tornou o protocolo de roteamento entre domínios dominante na Internet. No entanto, tem garantias limitadas de estabilidade e segurança. A configuração de opções de segurança para BGP deve equilibrar medidas de segurança adequadas com custos aceitáveis. Nenhum método emergiu como superior a outros métodos. Cada administrador de rede deve configurar medidas de segurança que atendam às necessidades da rede que está sendo usada.
Para obter informações detalhadas sobre os problemas de segurança associados ao uso do TCP pelo BGP como protocolo de transporte, consulte RFC 4272, Análise de vulnerabilidades de segurança do BGP.
Veja também
Exemplo: configurar um filtro para bloquear o acesso TCP a uma porta, exceto de pares BGP especificados
Este exemplo mostra como configurar um filtro de firewall sem estado padrão que bloqueia todas as tentativas de conexão TCP para a porta 179 de todos os solicitantes, exceto de pares BGP especificados.
Requerimentos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Neste exemplo, você cria um filtro de firewall sem estado que bloqueia todas as tentativas de conexão TCP para a porta 179 de todos os solicitantes, exceto os pares BGP especificados.
O filtro de firewall stateless filter_bgp179 combina todos os pacotes das interfaces conectadas diretamente no Dispositivo A e no Dispositivo B com o número de porta de destino 179.
Topologia
A Figura 1 mostra a topologia usada neste exemplo. O dispositivo C tenta fazer uma conexão TCP com o dispositivo E. O dispositivo E bloqueia a tentativa de conexão. Este exemplo mostra a configuração no Dispositivo E.
de peer BGP
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para corresponder à sua configuração de rede e, em seguida, copie e cole os comandos na CLI no nível de [ edit] hierarquia.
Dispositivo 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
Dispositivo 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
Configurando o dispositivo E
Procedimento passo a passo
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Uso do Editor de CLI no Modo de Configuração no Guia do Usuário da CLI do Junos OS.
Para configurar o Dispositivo E com um filtro de firewall stateless que bloqueia todas as tentativas de conexão TCP para a porta 179 de todos os solicitantes, exceto peers BGP especificados:
Configure as 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
Configure 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
Configure o número do sistema autônomo.
[edit routing-options] user@E# set autonomous-system 17
Defina o termo de filtro que aceita tentativas de conexão TCP para a porta 179 dos pares BGP especificados.
[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
Defina o outro termo de filtro para rejeitar pacotes de outras fontes.
[edit firewall family inet filter filter_bgp179] user@E# set term 2 then reject
Aplique o filtro de firewall à interface de loopback.
[edit interfaces lo0 unit 2 family inet] user@E# set filter input filter_bgp179 user@E# set address 192.168.0.1/32
Resultados
No modo de configuração, confirme sua configuração entrando nos comandos show firewall, show interfaces, show protocols e show routing-options . Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
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;
Se você terminar de configurar o dispositivo, entre no commit do modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
- Verificando se o filtro está configurado
- Verificando as conexões TCP
- Monitoramento do tráfego nas interfaces
Verificando se o filtro está configurado
Finalidade
Certifique-se de que o filtro esteja listado na saída do show firewall filter comando.
Ação
user@E> show firewall filter filter_bgp179 Filter: filter_bgp179
Verificando as conexões TCP
Finalidade
Verifique as conexões TCP.
Ação
Do modo operacional, execute o comando no Dispositivo C e no show system connections extensive Dispositivo E.
A saída no Dispositivo C mostra a tentativa de estabelecer uma conexão TCP. A saída no Dispositivo E mostra que as conexões são estabelecidas apenas com o Dispositivo A e o Dispositivo B.
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
Monitoramento do tráfego nas interfaces
Finalidade
Use o comando monitor traffic para comparar o tráfego em uma interface que estabelece uma conexão TCP com o tráfego em uma interface que não estabelece uma conexão TCP.
Ação
Do modo operacional, execute o comando monitor traffic na interface do Dispositivo E para o Dispositivo B e na interface do Dispositivo E para o Dispositivo C. A saída de exemplo a seguir verifica se, no primeiro exemplo, as mensagens de confirmação (ack) são recebidas. No segundo exemplo, as mensagens de confirmação não são recebidas.
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>
Exemplo: configurar um filtro para limitar o acesso TCP a uma porta com base em uma lista de prefixos
Este exemplo mostra como configurar um filtro de firewall stateless padrão que limita determinado tráfego TCP e Internet Control Message Protocol (ICMP) destinado ao Mecanismo de Roteamento, especificando uma lista de fontes de prefixo que contêm peers BGP permitidos.
Requerimentos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Neste exemplo, você cria um filtro de firewall sem estado que bloqueia todas as tentativas de conexão TCP para a porta 179 de todos os solicitantes, exceto os pares BGP que têm um prefixo especificado.
Topologia
É criada uma lista de prefixos de origem, plist_bgp179, que especifica a lista de prefixos de origem que contêm pares de BGP permitidos.
O filtro de firewall stateless filter_bgp179 combina todos os pacotes da lista de prefixos de origem plist_bgp179 com o número de porta de destino 179.
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para corresponder à sua configuração de rede e, em seguida, copie e cole os comandos na CLI no nível de [ edit] hierarquia.
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
Configurar o filtro
Procedimento passo a passo
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Uso do Editor de CLI no Modo de Configuração no Guia do Usuário da CLI do Junos OS.
Para configurar o filtro:
Expanda a lista de prefixos bgp179 para incluir todos os prefixos apontados pelo grupo peer BGP definido pelos protocolos bgp group <*> vizinho <*>.
[edit policy-options prefix-list plist_bgp179] user@host# set apply-path " protocols bgp group <*> neighbor <*>"
Defina o termo de filtro que rejeita tentativas de conexão TCP para a porta 179 de todos os solicitantes, exceto os pares BGP especificados.
[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
Defina o outro termo de filtro para aceitar todos os pacotes.
[edit firewall family inet filter filter_bgp179] user@host# set term term2 then accept
Aplique o filtro de firewall à interface de loopback.
[edit interfaces lo0 unit 0 family inet] user@host# set filter input filter_bgp179 user@host# set address 127.0.0.1/32
Resultados
No modo de configuração, confirme sua configuração entrando nos comandos show firewall, show interfaces e show policy-options . Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
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 <*>";
}
Se você terminar de configurar o dispositivo, entre no commit do modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Exibindo o filtro de firewall aplicado à interface de loopback
Finalidade
Verifique se a filter_bgp179 de filtro de firewall está aplicada ao tráfego de entrada IPv4 na interface lógica lo0.0.
Ação
Use o comando para a show interfaces statistics operational mode interface lógica lo0.0 e inclua a opção detail . Protocol inet Na seção de saída do comando, o Input Filters campo exibe o nome do filtro de firewall stateless aplicado à interface lógica na direção de entrada.
[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
Exemplo: limitando o tamanho do segmento TCP para BGP
Este exemplo mostra como evitar problemas de vulnerabilidade do ICMP (Internet Control Message Protocol) limitando o tamanho do segmento TCP quando você estiver usando a descoberta da unidade de transmissão máxima (MTU). Usar a descoberta de MTU em caminhos TCP é um método para evitar a fragmentação de pacotes BGP.
Requerimentos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
O TCP negocia um valor de tamanho máximo de segmento (MSS) durante o estabelecimento da conexão de sessão entre dois pares. O valor de MSS negociado é baseado principalmente na unidade máxima de transmissão (MTU) das interfaces às quais os peers de comunicação estão diretamente conectados. No entanto, devido a variações na MTU do link no caminho percorrido pelos pacotes TCP, alguns pacotes na rede que estão bem dentro do valor do MSS podem ser fragmentados quando o tamanho do pacote excede a MTU do link.
Para configurar o valor TCP MSS, inclua a tcp-mss declaração com um tamanho de segmento de 1 a 4096.
Se o roteador receber um pacote TCP com o bit SYN e o conjunto de opções MSS, e a opção MSS especificada no pacote for maior que o tcp-mss valor MSS especificado pela instrução, o roteador substituirá o valor MSS no pacote pelo valor mais baixo especificado pela tcp-mss instrução.
O valor de MSS configurado é usado como o tamanho máximo do segmento para o remetente. A suposição é que o valor TCP MSS usado pelo remetente para se comunicar com o vizinho BGP é o mesmo que o valor TCP MSS que o remetente pode aceitar do vizinho BGP. Se o valor de MSS do vizinho BGP for menor que o valor de MSS configurado, o valor de MSS do vizinho de BGP será usado como o tamanho máximo do segmento para o remetente.
Para vizinhos indiretos sem a mtu-discovery instrução, o valor MSS padrão é 512. Para obter mais informações sobre mtu-discovery a instrução, consulte https://www.juniper.net/documentation/us/en/software/junos/cli-reference/topics/ref/statement/mtu-discovery-edit-protocols-bgp.html#id-13368402__d674375e146.
Esse recurso é compatível com TCP sobre IPv4 e TCP sobre IPv6.
Diagrama de topologia
A Figura 2 mostra a topologia usada neste exemplo.
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os comandos a seguir, cole-os em um arquivo de texto, remova as quebras de linha, altere os detalhes necessários para corresponder à configuração de rede e, em seguida, copie e cole os comandos na CLI no nível de [edit] hierarquia.
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
Tramitação processual
Procedimento passo a passo
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Uso do Editor de CLI no Modo de Configuração no Guia do Usuário da CLI do Junos OS.
Para configurar o Roteador R0:
-
Configure as 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
-
Configure um protocolo de gateway interior (IGP), OSPF neste exemplo.
[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
-
Configure um ou mais grupos BGP.
[edit protocols bgp group int] user@R0# set type internal user@R0# set local-address 10.255.14.179
-
Configure a descoberta de MTU para evitar a fragmentação de pacotes.
[edit protocols bgp group int] user@R0# set mtu-discovery
-
Configure os vizinhos BGP, com o TCP MSS definido globalmente para o grupo ou especificamente para os vários vizinhos.
[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
Observação:A configuração de vizinho TCP MSS substitui a configuração de grupo.
-
Configure o sistema autônomo local.
[edit routing-options] user@R0# set autonomous-system 65000
Resultados
No modo de configuração, confirme sua configuração inserindo os show interfacescomandos , show protocolse show routing-options . Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
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;
Se você terminar de configurar o dispositivo, entre no commit modo de configuração.
Verificação
Para confirmar se a configuração está funcionando corretamente, execute os seguintes comandos:
-
show system connections extensive | find <neighbor-address>, para verificar o valor TCP MSS negociado. -
monitor traffic interface, para monitorar o tráfego BGP e garantir que o valor TCP MSS configurado seja usado como a opção MSS no pacote TCP SYN.
Solução de problemas
Cálculo de MSS com descoberta de MTU
Problema
Considere um exemplo em que dois dispositivos de roteamento (R1 e R2) têm uma conexão BGP (IBGP) interna. Em ambos os roteadores, as interfaces conectadas têm 4034 como a 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
Na captura de pacotes a seguir no dispositivo R1, o MSS negociado é 3994. Nas show system connections extensive informações para MSS, é definido como 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
Solução
Esse é o comportamento esperado com o Junos OS. O valor de MSS é igual ao valor de MTU menos os cabeçalhos IP ou IPv6 e TCP. Isso significa que o valor do MSS geralmente é 40 bytes menor que a MTU (para IPv4) e 60 bytes menor que a MTU (para IPv6). Esse valor é negociado entre os pares. Neste exemplo, é 4034 - 40 = 3994. O Junos OS então arredonda esse valor para um múltiplo de 2 KB. O valor é 3994 / 2048 * 2048=2048. Portanto, não é necessário ver o show system connections mesmo valor de MSS na saída.
3994 / 2048 = 1,95
1,95 é arredondado para 1.
1 * 2048 = 2048