Tamanho da MTU da Starlink: MTU do caminho medida em 1500 bytes

A MTU do caminho a partir de uma conexão Starlink doméstica foi de 1500 bytes tanto em IPv4 quanto em IPv6, em todos os caminhos testados. Esse é o maior pacote que um computador cuja própria MTU de enlace é de 1500 bytes consegue enviar, então o teste não consegue mostrar se o caminho levaria mais; ele cobre uma conexão, atrás do próprio roteador de casa, em duas leituras com poucos minutos de intervalo.

Por Rowan Hale · Publicado em

Pacotes de 1500 bytes chegaram aos três hosts de teste, em IPv4 e IPv6

A unidade máxima de transmissão (MTU) de um enlace é o maior pacote que ele leva inteiro, e a MTU de um caminho é a menor MTU de enlace ao longo dele. A RFC 8201 define assim: “the minimum link MTU of all the links in a path between a source node and a destination node” (em tradução nossa, a menor MTU de enlace entre todos os enlaces de um caminho entre um nó de origem e um nó de destino; seção 2, verificada em outubro de 2026).

O teste rodou em outubro de 2026 a partir de um computador ligado por cabo à rede de casa, numa conexão Starlink doméstica, em duas leituras com poucos minutos de intervalo. Todas as rotas até os hosts de teste saíam pela interface cabeada, então nenhuma VPN, exit node ou túnel levou o tráfego. Em cada leitura, para cada host, em IPv4 e em IPv6, o tracepath rodou até o fim. Depois, três pings dimensionados para formar pacotes de 1500 bytes saíram com o bit don't fragment ligado e um tempo limite de resposta de 2 segundos. Outros três, dimensionados para formar pacotes de 1501 bytes, foram recusados pelo computador antes de serem enviados.

Os três hosts são máquinas públicas que os operadores oferecem para testes de rede (cada página verificada em outubro de 2026):

  • scanme.nmap.org, que o projeto Nmap montou para que as pessoas possam “test and make sure that their Nmap installation (or Internet connection) is working properly” (testar e garantir que a instalação do Nmap, ou a conexão com a internet, está funcionando direito);
  • speedtest.newark.linode.com, cuja página inicial tem o título “Linode, now Akamai, Speedtest”;
  • proof.ovh.net, um host de teste de velocidade de rede da OVHcloud.
Tabela 1. MTU do caminho a partir de um computador ligado por cabo numa conexão Starlink doméstica até três hosts de teste públicos, em duas leituras com poucos minutos de intervalo, outubro de 2026. Cada leitura enviou a cada host três pings de 1500 bytes com don't fragment ligado, em IPv4 e em IPv6, e o tracepath deu os mesmos valores de início e de fim nas duas leituras.
IP Host Respostas a 3 pings, leituras 1 e 2 MTU do caminho no tracepath, início e fim Última resposta do tracepath veio de
IPv4 scanme.nmap.org 3 e 3 1500 e 1500 o próprio host
IPv4 speedtest.newark.linode.com 3 e 3 1500 e 1500 o próprio host
IPv4 proof.ovh.net 3 e 3 1500 e 1500 o próprio host
IPv6 scanme.nmap.org 3 e 3 1500 e 1500 o próprio host
IPv6 speedtest.newark.linode.com 3 e 3 1500 e 1500 outro endereço, respondendo pelo host, nas duas leituras
IPv6 proof.ovh.net 3 e 3 1500 e 1500 o próprio host

Nota

Para o host de Newark em IPv6, a resposta que encerrou cada rastreamento veio de um endereço diferente do host, nas duas leituras. Na segunda leitura, que verificou isso, todas as respostas aos pings vieram do próprio endereço do host, então o resultado de tamanho dele vale.

A descoberta da MTU do caminho parte da MTU do primeiro enlace de quem envia. Em IPv4, o remetente liga o bit Don't Fragment (DF), e um roteador que não consegue encaminhar esse pacote inteiro o descarta e devolve uma mensagem ICMP que significa “fragmentation needed and DF set” (fragmentação necessária e DF ligado; RFC 1191, seção 2, verificada em outubro de 2026). Em IPv6, um roteador que não consegue encaminhar um pacote por ele ser maior que a MTU do próximo enlace deve devolver uma mensagem Packet Too Big (RFC 4443, seção 3.2, verificada em outubro de 2026). Nos dois casos, o remetente reduz a sua estimativa (RFC 8201, seção 3). O tracepath rastreia um caminho “discovering MTU along this path” (descobrindo a MTU ao longo deste caminho) e mostra a MTU do caminho onde ela muda (iputils 20250605, verificado em outubro de 2026). Em todos os rastreamentos daqui ela ficou em 1500 do início ao fim, e nenhum ping provocou uma mensagem de pacote grande demais, então nenhum salto informou uma MTU menor.

Os pings verificam a mesma coisa de ponta a ponta. Cada ping de 1500 bytes chegou ao respectivo host, e a resposta voltou. Isso cobre os saltos que não respondem ao tracepath, que só os pings testam. O caminho também começa no roteador de casa, então as próprias configurações do roteador fazem parte do resultado: nada nesses caminhos, incluindo o roteador de casa e a rede da Starlink, cortava pacotes abaixo de 1500 bytes naquele momento.

Em IPv4, os rastreamentos começaram com os mesmos tipos de saltos do rastreamento do guia sobre hospedar um servidor sem IPv4 público, que esta página não repete.

Um ping de 1472 bytes é um pacote IPv4 de 1500 bytes

A opção -s do ping define o número de bytes de dados, e o ICMP soma a eles um cabeçalho de 8 bytes (ping(8), iputils 20250605, verificado em outubro de 2026). Uma mensagem de eco ICMPv6 também tem 8 bytes antes dos dados: tipo, código, checksum, identificador e número de sequência (RFC 4443, seção 4.1, verificada em outubro de 2026). Um cabeçalho IPv4 mínimo tem 20 bytes, e um cabeçalho IPv6 tem 20 bytes a mais, 40 (RFC 8200, seção 8.3, verificada em outubro de 2026).

IP Dados do ping (-s), bytes Cabeçalho ICMP, bytes Cabeçalho IP, bytes Pacote, bytes
IPv4 1472 8 20 1500
IPv6 1452 8 40 1500
IPv4 1473 8 20 1501
IPv6 1453 8 40 1501

Um ping com don't fragment ligado que recebe respostas com 1472 bytes de dados em IPv4 significa que um pacote de 1500 bytes atravessou o caminho. O 1472 é a carga útil do ping, e a MTU é o pacote inteiro.

Em IPv6, os roteadores nunca dividem um pacote: “fragmentation in IPv6 is performed only by source nodes” (a fragmentação em IPv6 é feita apenas pelos nós de origem), diz a RFC 8200 (seção 4.5). Então um ping IPv6 de 1500 bytes ou atravessa inteiro ou encontra um roteador que tem de responder com uma mensagem Packet Too Big (RFC 4443, seção 3.2).

Para repetir o teste no Linux com o iputils, rode estes comandos, mostrados aqui com um dos três hosts:

rola na horizontal
tracepath -4 -n scanme.nmap.org
ping -4 -M do -n -c 3 -W 2 -s 1472 scanme.nmap.org
tracepath -6 -n scanme.nmap.org
ping -6 -M do -n -c 3 -W 2 -s 1452 scanme.nmap.org

-M do liga o don't fragment, -c 3 envia três pings e -W 2 define um tempo limite de resposta de 2 segundos (ping(8)). A página do Nmap pede que os visitantes não exagerem com o host: “A few scans in a day is fine” (algumas varreduras por dia, tudo bem). Os comandos ping de outros sistemas usam outras opções, e esta página não trata deles.

Pacotes de 1501 bytes nunca saíram do computador

Limitação

Todo ping dimensionado para formar um pacote de 1501 bytes, com 1473 bytes de dados em IPv4 e 1453 em IPv6, foi recusado pelo próprio kernel do computador de teste antes de ser enviado: 3 de 3 em todos os casos, nas duas leituras. A MTU de enlace do computador é de 1500 bytes, e o kernel não tinha nenhuma MTU do caminho em cache para nenhum host antes ou depois de cada leitura. O ping(8) explica a recusa: com -M do, os pacotes ficam “subject to PMTU checks by kernel, packets too large will be rejected” (sujeitos às verificações de PMTU do kernel; pacotes grandes demais serão rejeitados). Então esta metade do teste verifica o próprio enlace do computador, e não o caminho, e o teste não consegue mostrar se o caminho levaria mais de 1500 bytes.

Num computador cuja própria MTU de enlace é de 1500 bytes, um ping com -M do e 1473 bytes de dados (IPv4) ou 1453 (IPv6) que falha na hora, com um erro local dizendo que a mensagem é longa demais para uma MTU de 1500, foi recusado por esse computador. A falha não diz nada sobre o seu provedor.

Se o erro citar uma MTU menor que 1500, essa interpretação não vale. O computador está comparando o pacote com um limite mais baixo que o do seu enlace, e esse limite pode vir do caminho: um remetente reduz a sua estimativa depois de uma mensagem de pacote grande demais vinda de um roteador (RFC 1191, seção 2; RFC 8201, seção 3).

As ferramentas de túnel contam 80 bytes de cabeçalhos do WireGuard

Limitação

Nenhum túnel rodou neste teste. Os números de túnel abaixo são o que o código de cada ferramenta define, lidos no código-fonte em outubro de 2026, e nenhum foi medido nesta conexão.

Tabela 2. O que o código de cada ferramenta define, verificado em outubro de 2026. Não testado nesta conexão.
Ferramenta MTU de interface que o código define Cabeçalhos que conta, bytes Fonte Nesta conexão
WireGuard, driver do kernel Linux 1420 bytes para uma interface nova: 1500 menos 80 32 + 8 + 40 = 80 device.c, Linux 6.18 não testado
wg-quick no Linux, config sem MTU a MTU da rota menos 80: 1420 numa rota de 1500 bytes 80 linux.bash, wireguard-tools v1.0.20250521 não testado
Tailscale 1280 bytes, a menos que TS_DEBUG_MTU defina outro tamanho; 1360 bytes no fio 40 + 8 + 4 + 4 + 8 + 16 = 80 mtu.go, Tailscale v1.90.0 não testado

No kernel Linux, uma interface nova do WireGuard recebe dev->mtu = ETH_DATA_LEN - overhead (device.c, Linux 6.18). ETH_DATA_LEN é 1500, a carga útil máxima da Ethernet (if_ether.h). O overhead é a menor mensagem de dados do WireGuard, mais um cabeçalho UDP de 8 bytes (RFC 768) e o maior dos cabeçalhos IPv6 e IPv4, os 40 do IPv6 (RFC 8200). Essa mensagem tem 32 bytes: um tipo de 4 bytes, um índice de chave de 4 bytes, um contador de 8 bytes e uma tag de autenticação de 16 bytes (messages.h, com o tamanho da tag em chacha20poly1305.h). Então o overhead é de 80 bytes, e a interface começa em 1420. Tudo verificado em outubro de 2026.

A tag vem depois dos dados cifrados: no AEAD (criptografia autenticada com dados associados) da RFC 8439, a saída é o texto cifrado e depois a tag (seção 2.8, verificada em outubro de 2026).

As partes de três pacotes: ping IPv4, ping IPv6 e WireGuard sobre IPv6 Cada pacote tem 1500 bytes no enlace. Ping IPv4: um cabeçalho IPv4 de 20 bytes, um cabeçalho ICMP de 8 bytes e 1472 bytes de dados. Ping IPv6: um cabeçalho IPv6 de 40 bytes, um cabeçalho ICMPv6 de 8 bytes e 1452 bytes de dados. WireGuard sobre IPv6, a partir do código dele e não testado: um cabeçalho IPv6 de 40 bytes, um cabeçalho UDP de 8 bytes, 16 bytes de tipo, índice de chave e contador, um pacote cifrado de até 1420 bytes e uma tag de autenticação de 16 bytes. IPv4: ping, -s 1472 cabeçalho IPv4 cabeçalho ICMP dados do ping 20 8 1472 1500 bytes IPv6: ping, -s 1452 cabeçalho IPv6 cabeçalho ICMPv6 dados do ping 40 8 1452 1500 bytes WireGuard sobre IPv6, num enlace de 1500 bytes a partir do código do WireGuard, não testado 1 2 3 4 5 40 8 16 1420 16 1500 bytes 1 cabeçalho IPv6 2 cabeçalho UDP 3 tipo, índice de chave, contador 4 pacote cifrado 5 tag de autenticação Cabeçalhos desenhados em escala; dados longos encurtados na quebra. Tamanhos em bytes. As partes de três pacotes: ping IPv4, ping IPv6 e WireGuard sobre IPv6 Cada pacote tem 1500 bytes no enlace. Ping IPv4: um cabeçalho IPv4 de 20 bytes, um cabeçalho ICMP de 8 bytes e 1472 bytes de dados. Ping IPv6: um cabeçalho IPv6 de 40 bytes, um cabeçalho ICMPv6 de 8 bytes e 1452 bytes de dados. WireGuard sobre IPv6, a partir do código dele e não testado: um cabeçalho IPv6 de 40 bytes, um cabeçalho UDP de 8 bytes, 16 bytes de tipo, índice de chave e contador, um pacote cifrado de até 1420 bytes e uma tag de autenticação de 16 bytes. IPv4: ping, -s 1472 cabeçalho IPv4 cabeçalho ICMP dados do ping 20 8 1472 1500 bytes IPv6: ping, -s 1452 cabeçalho IPv6 cabeçalho ICMPv6 dados do ping 40 8 1452 1500 bytes WireGuard sobre IPv6, num enlace de 1500 bytes a partir do código do WireGuard, não testado cabeçalho IPv6 cabeçalho UDP tipo, índice de chave, contador pacote cifrado tag de autenticação 40 8 16 1420 16 1500 bytes Cabeçalhos desenhados em escala; dados longos encurtados na quebra. Tamanhos em bytes.
Três pacotes de 1500 bytes, com o primeiro byte à esquerda. Os cabeçalhos ocupam 28 bytes em IPv4 e 48 em IPv6; os do WireGuard ocupam 80, o que deixa 1420 para o pacote de dentro. A cor ferrugem marca o tamanho que atravessou todos os caminhos testados em outubro de 2026 (Tabela 1); a linha do WireGuard vem do código dele, não testada. Tamanhos como a página os cita: RFC 8200, RFC 4443, ping(8), RFC 768, messages.h e device.c do WireGuard, e chacha20poly1305.h e if_ether.h do kernel Linux; o lugar da tag depois dos dados, RFC 8439; verificados em outubro de 2026. Os números também estão na tabela em “Um ping de 1472 bytes é um pacote IPv4 de 1500 bytes” e na Tabela 2.

O wg-quick no Linux usa a linha MTU da config da interface quando ela existe. Sem ela, o script lê a MTU das rotas até os endpoints dos peers, recorre à da rota padrão e depois a 1500, e define a interface 80 bytes abaixo (linux.bash, wireguard-tools v1.0.20250521, verificado em outubro de 2026). Numa rota de 1500 bytes, isso dá 1420.

O Tailscale conta os mesmos 80 bytes para o pior caso, um cabeçalho externo IPv6. A lista dele é um “20-byte IPv4 header or 40-byte IPv6 header” (cabeçalho IPv4 de 20 bytes ou cabeçalho IPv6 de 40 bytes), um cabeçalho UDP de 8 bytes, um tipo de 4 bytes, um índice de chave de 4 bytes, um nonce de 8 bytes e uma tag de autenticação de 16 bytes (mtu.go, Tailscale v1.90.0, verificado em outubro de 2026). Nesse arquivo, o tamanho não depende do enlace: DefaultTUNMTU(), que o arquivo usa para definir a MTU da interface, retorna 1280, a MTU padrão “safe” (segura) dele, a menos que a configuração de depuração TS_DEBUG_MTU defina outro tamanho. Ele retorna 1280 mesmo com TS_DEBUG_ENABLE_PMTUD, a configuração de depuração para sondar a MTU do caminho, ligada. Somados os 80 bytes, 1280 vira 1360 bytes no fio. O valor 1280 também é a menor MTU que o IPv6 permite em qualquer enlace (RFC 8200, seção 5).

Os caminhos deste teste levaram pacotes de 1500 bytes. Nenhum túnel rodou sobre eles, então esta página não mostra o que os pacotes de um túnel fizeram.

Quando um pacote é grande demais para um enlace e a mensagem de pacote grande demais nunca chega ao remetente, a RFC 8201 descreve conexões que “complete the TCP three-way handshake correctly but then hang when data is transferred” (completam corretamente o handshake de três vias do TCP, mas depois travam quando os dados são transferidos; seção 1). Este teste não procurou isso.

Não testado aqui

  • A MTU de um túnel nesta conexão, para WireGuard, Tailscale ou uma VPN de trabalho. Se mudar uma MTU resolve um problema de VPN também não foi testado.
  • Um máximo ou um padrão. Nada acima de 1500 bytes pôde sair do computador de teste, então esta página não mostra um máximo. As páginas da própria Starlink sobre MTU não foram lidas para esta página, então ela também não mostra um padrão.
  • Wi-Fi. As duas leituras usaram um enlace cabeado.
  • Outras conexões e outros momentos. As duas leituras tiveram poucos minutos de intervalo, e a MTU de um caminho “may change over time, due to changes in the routing topology” (pode mudar com o tempo, por causa de mudanças na topologia de roteamento; RFC 8201, seção 3).

Veja como isso se encaixa nos outros testes de casa, para um homelab.

Fontes

  1. RFC 8201: Path MTU Discovery for IP version 6, IETF, acessado em
  2. RFC 8200: Internet Protocol, Version 6 (IPv6) Specification, IETF, acessado em
  3. RFC 1191: Path MTU Discovery, IETF, acessado em
  4. RFC 4443: Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification, IETF, acessado em
  5. RFC 768: User Datagram Protocol, IETF, acessado em
  6. RFC 8439: ChaCha20 and Poly1305 for IETF Protocols, IRTF, acessado em
  7. ping(8), iputils 20250605, man7.org, acessado em
  8. tracepath(8), iputils 20250605, man7.org, acessado em
  9. drivers/net/wireguard/device.c, Linux 6.18, Linux kernel, acessado em
  10. drivers/net/wireguard/messages.h, Linux 6.18, Linux kernel, acessado em
  11. include/crypto/chacha20poly1305.h, Linux 6.18, Linux kernel, acessado em
  12. include/uapi/linux/if_ether.h, Linux 6.18, Linux kernel, acessado em
  13. src/wg-quick/linux.bash, wireguard-tools v1.0.20250521, WireGuard, acessado em
  14. net/tstun/mtu.go, Tailscale v1.90.0, Tailscale, acessado em
  15. scanme.nmap.org home page, Nmap Project, acessado em
  16. speedtest.newark.linode.com home page, Akamai (Linode), acessado em
  17. proof.ovh.net home page, OVHcloud, acessado em
  18. A Starlink tem um programa de indicação?, Starlink, acessado em

Registro de testes

  1. Teste Duas leituras, em IPv4 e IPv6, da MTU do caminho a partir de um computador ligado por cabo à rede de casa até três hosts de teste públicos.
  • Dá para hospedar um servidor na Starlink sem IPv4 público?

    Não diretamente por IPv4: sem um endereço IPv4 público, as conexões vindas da internet chegam ao NAT do seu provedor, e um port forwarding (redirecionamento de portas) no seu próprio roteador não alcança esse NAT.

  • A Starlink serve para homelab? Um veredito de cinco testes

    Na única conexão Starlink doméstica testada, pacotes de 1500 bytes passaram em IPv4 e IPv6 em outubro de 2026, e o tempo de ida e volta (RTT) por IPv4 teve picos em quatro segundos fixos de cada minuto em um de dois testes de uma hora, com 901 de 143.462 pings perdidos nos dois; as formas de contornar o NAT de nível de operadora (CGNAT), como um túnel que começa dentro da sua rede, não foram testadas aqui.