Resumo

  • A RFC 2784 separa cabeçalho de entrega, cabeçalho GRE e payload. Sua base de quatro octetos identifica o protocolo interno, mas não decide por que o túnel existe, quem pode usá-lo ou se a carga é segura.
  • Tony Li foi coautor do registro GRE de 1994 e da especificação Standards Track de 2000. RFCs posteriores expõem a dívida operacional: Key é rótulo de contexto, não segredo; Sequence Number cria estado e risco de negação; IPv6 exige verificação contínua de MTU e integridade nas pontas.

Um pacote passa a carregar dois destinos

No ingress, o pacote original vira payload. Um cabeçalho GRE é colocado à frente dele, e um cabeçalho de entrega envolve o conjunto. O underlay lê o destino externo e o leva ao egress. Ali, as camadas externas são removidas e o destino interno volta a orientar o encaminhamento.

São três registros independentes. O cabeçalho de entrega identifica as pontas do túnel. GRE informa o tipo de conteúdo e as opções ativas. O pacote interno mantém origem, destino, tempo de vida e significado de camada superior. Uma rota externa funcional comprova somente a chegada do envelope. Não comprova rota interna, autorização depois da decapsulação nem inspeção no ponto correto.

A RFC 2784, publicada no Standards Track em março de 2000, tem Dino Farinacci, Tony Li, Stan Hanks, David Meyer e Paul Traina como autores. Ela sucedeu a Informational RFC 1701, de Hanks, Li, Farinacci e Traina. O perfil de Tony Li no IETF Datatracker oferece identidade pública, índice de RFCs e papéis na captura congelada. Isso demonstra coautoria coletiva, não invenção individual, vínculo profissional atual ou controle pessoal de redes em produção.

O recorte biográfico relevante é preciso: Li aparece na descrição geral inicial e na especificação que reduziu o núcleo comum. A contribuição não consiste em governar todos os usos de GRE, mas em definir pouco o bastante para que redes independentes continuem decidindo o restante.

Um envelope comum substitui uma matriz de pares

Se cada protocolo de payload exige uma técnica diferente sobre cada protocolo de entrega, as combinações crescem como uma matriz. A RFC 2784 caracteriza o problema como O(n²) e o reorganiza em payload, envelope GRE comum e entrega.

O texto reconhece o preço da generalidade. Nuances específicas são ignoradas e uma solução dedicada X sobre Y pode ser mais adequada. Mais importante, a RFC deliberadamente não define quando um pacote deve ser encapsulado. Ela fornece gramática, não justificativa.

Uma empresa pode interligar redes privadas, um provedor transportar um serviço ou um laboratório experimentar um protocolo não reconhecido pelo underlay. Formato correto não autoriza nenhuma finalidade. Ainda é preciso nomear dono, pontas, payloads admitidos, capacidade, segurança e condição de aposentadoria.

O ganho de custo não transfere o downside. Reutilizar um envelope reduz implementação e coordenação; não absorve vazamento, black hole, lacuna de inspeção ou dependência esquecida. Quem economiza com GRE continua responsável pelo efeito operacional.

Quatro octetos registram apenas o acordo mínimo

Sem checksum opcional, o cabeçalho base da RFC 2784 tem duas palavras de 16 bits. A primeira contém presença de checksum, bits reservados e versão; a segunda contém Protocol Type, o EtherType do payload. A versão base é zero.

Não há identificador global de túnel, dono, política, rota, declaração de criptografia ou compromisso de serviço. O campo diz como interpretar os próximos bytes. Protocol Type desconhecido deve ser descartado. Bits reservados são transmitidos em zero; posições antigas não nulas provocam descarte quando o receptor não implementa aquele comportamento.

O checksum opcional acrescenta quatro octetos e cobre cabeçalho GRE mais payload com a soma comum da Internet. Ele detecta parte da corrupção acidental, mas não autentica remetente, não oculta conteúdo e não concede permissão. Checksum válido e túnel confiável são afirmações diferentes.

Uma especificação mínima não é frouxa. Ela é rigorosa sobre poucos fatos compartilhados e deixa explícitas as decisões que continuam locais.

Depois da decapsulação, o destino interno retoma a autoridade

Quando o payload é IPv4, a RFC 2784 manda encaminhá-lo pelo destino interno e reduzir o TTL interno. O destino externo concluiu sua função e não substitui a semântica de roteamento da carga.

A RFC também identifica um loop: se o destino interno for o encapsulador do outro lado, o pacote pode voltar à mesma relação e deve ser descartado. O túnel pode ocultar topologia do payload, mas não elimina a consequência de um ciclo.

Essa separação evita diagnósticos falsos. Um traceroute externo chega ao egress sem que exista rota interna. A interface permanece up enquanto a política posterior descarta o pacote. Uma falha atribuída a GRE pode estar no underlay, retorno, firewall ou MTU. É necessário observar os três registros e ligá-los ao mesmo pacote.

A nova especificação tornou o núcleo menor

A RFC 1701 oferecia Routing, Key, Sequence, Strict Source Route e controle de recursão. A RFC 2784 escolheu a interseção já implantada por fornecedores diferentes e retirou esses campos do perfil base. Um receptor sem implementação explícita da versão antiga rejeita os bits correspondentes quando ativos.

Não foi uma evolução de acréscimo contínuo. O núcleo compartilhado diminuiu para que implementações independentes concordassem sobre menos significados com mais certeza. Necessidades opcionais poderiam retornar em extensões definidas, sem depender de adivinhação em bits reservados.

Compatibilidade é uma fronteira de recusa explicável. Aceitar um layout desconhecido não corrige capacidades divergentes. O operador comprova o par, ativa apenas o perfil acordado e preserva rollback para o contrato anterior de parsing.

Um campo chamado Key não é uma chave de segurança

A RFC 2890, escrita por Govindan Dommety e não por Li, definiu extensões opcionais Key e Sequence Number. O Key de quatro octetos identifica um fluxo ou contexto entre as pontas; o método de atribuição fica fora do escopo.

O nome favorece um erro que o próprio documento corrige: esse Key não oferece segurança. Um acordo local pode usá-lo para separar clientes ou serviços, mas quem consegue construir GRE copia ou inventa o valor se outra camada não proteger o pacote. O rótulo de contexto não é senha.

Sequence Number oferece entrega não confiável, porém ordenada. O receptor mantém o último valor decapsulado, rejeita valores antigos e pode armazenar uma pequena reordenação. O benefício para certos payloads cria estado por fluxo. A injeção de um número alto pode fazer o tráfego legítimo parecer antigo.

A RFC 2890 exige IPsec AH ou ESP contra essa ameaça. Também recomenda não duplicar ordenação quando a camada superior já a fornece ou tolera desordem. Habilitar a opção compromete memória, buffer, logs, counters e superfície de ataque em ambas as pontas.

Filtrar no lugar em que o significado fica visível

A RFC 2784 observa que route filtering continua parecido com IPv4 nativo, mas packet filtering precisa olhar dentro de GRE ou ocorrer nos endpoints. O underlay pode permitir corretamente protocolo 47 entre duas addresses sem conhecer protocolo, endereço ou porta internos.

A responsabilidade costuma se romper aí. Transporte diz que a rota externa está restrita. Segurança diz que o firewall permite GRE somente entre as pontas. Serviço presume que a carga interna herdou as duas autorizações. Nenhum dos fatos externos define o que pode sair depois da decapsulação.

Um desenho auditável registra prefixes e protocolos internos, ponto de decapsulação, inspeção antes ou depois e uso efetivo de IPsec. GRE up não é estado de segurança. A evidência é a política em vigor nas duas camadas, aplicada ao tráfego observado.

IPv6 converte omissões em gates de ativação

A RFC 7676, de Carlos Pignataro, Ron Bonica e Suresh Krishnan, especificou depois IPv6 como payload ou protocolo de entrega. Não é obra de Li. Ela mostra como o contrato base fino encontra obrigações concretas ao chegar a outra camada de rede.

Um túnel com payload IPv6 deve carregar um pacote de 1280 octetos do ingress ao egress sem fragmentar o payload. O ingress verifica isso antes da ativação e periodicamente, ativando ou desativando conforme o resultado. GMTU é o path MTU entre endpoints menos delivery header e overhead GRE. Um payload maior, nas condições previstas, é descartado e recebe ICMPv6 Packet Too Big com o valor utilizável.

O cabeçalho pequeno não apaga o tamanho. Torna o overhead calculável e atribui ao endpoint teste e feedback. Se PTB desaparecer, probes pequenos passam, fluxos grandes param e o control plane continua verde.

Há também um limite de integridade. Desligar checksum GRE pode evitar cálculo redundante, mas o cabeçalho de entrega IPv6 não tem checksum próprio e o GRE não o cobre. A RFC 7676 analisa um caso raro em que a corrupção do destino externo leva o pacote ao PE errado; com endereços privados sobrepostos e estado compatível, o payload pode entrar na VPN errada. GRE sobre IPv6 não deve ser implantado onde o operador não aceita o risco; autenticação end-to-end do payload pode mitigá-lo.

O RFC não afirma que um ambiente específico sofre a falha. Ele estabelece uma decisão que precisa de dono antes da produção. Transporte genérico não equivale a segurança genérica.

Coordenação fina exige evidência espessa nas bordas

O texto posterior de Lu Heng Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption dá a Sofia Ren uma lente para GRE. O comum pode ficar em layout, versão, tipo, extensão e rejeição. Cada rede preserva liberdade e dever de decidir propósito, endpoints, admissão, segurança e retirada.

Running-Code Primacy eleva a prova. Um objeto de configuração é intenção. A realidade une rota externa, flags emitidos, Protocol Type, overhead efetivo, contexto Key, security association, rota interna, decisão de filtro, feedback MTU, counters e resultado da aplicação.

Esses textos de Heng são uma estrutura editorial posterior, não evidência da intenção privada de Li nem de consenso IETF além dos RFCs citados. Eles esclarecem a alocação: o padrão cuida do envelope comum; a implementação, de parsing e state; o operador, de todos os motivos que autorizam sua existência.

GRE permaneceu porque não governa o payload. Essa contenção o tornou portátil. Também significa que nenhuma instituição mora nos quatro octetos para salvar um deployment descuidado. O envelope transporta quase tudo; somente suas pontas podem provar o que deveria transportar.

Fontes