Túneis GRE
Escrito por Ailton Soares Rocha
Introdução
O GRE (
Generic Routing Encapsulation ) é um túnel estático entre dois
hosts originalmente desenvolvido pela Cisco com a finalidade de encapsular vários tipos diferentes de protocolos, como por exemplo IPv6 e IS-IS (veja a lista completa de protocolos suportados em
http://www.iana.org/assignments/ethernet-numbers). Este tipo de encapsulamento é suportado na maioria do sistemas operacionais e roteadores e consiste em um
link ponto a ponto. A principal desvantagem do túnel GRE é a configuração manual, que de acordo com a quantidade de túneis, gerará um grande esforço na sua manutenção e gerenciamento.
A estrutura básica do pacote GRE é a seguinte:
O funcionamento deste tipo de túnel é muito simples, e consiste em pegar os pacotes originas, adicionar o cabeçalho GRE, e enviar ao IP de destino(o endereço do destino é especificado no cabeçalho GRE), quando o pacote encapsulado chega na outra ponta do túnel(IP de destino) é removido dele o cabeçalho GRE, sobrando apenas o pacote original, o qual é encaminhado normalmente ao destinatário.
Como estamos mais preocupados com os pacotes IPv6, no desenho abaixo podemos ver a estrutura de um pacote IPv6 sendo transportado em um túnel GRE:
Sendo os campos mais importantes do cabeçalho GRE os seguintes:
-
C (
Checksum): Se for 1, indica que existe o campo
Checksum e que há informações válidas nele e no
Offset;
-
R (
Routing): Se for 1, indica que existe o campo Roteamento e que há informações de roteamento válidas nele e no
Offset;
-
K (
Key): Se for 1, indica que o campo Chave existe e está sendo utilizado;
-
S (
Sequence): Se for 1, indica que o campo Número de seqüência existe e está sendo utilizado;
-
Versão: Geralmente preenchido com 0;
-
Protocolo: É preenchido com o código do protocolo sendo transportado, de acordo com os tipos de pacotes ethernet (
http://www.iana.org/assignments/ethernet-numbers);
-
Offset: Indica a posição onde inicia o campo de roteamento;
-
Checksum: Contém o
checksum IP(complemento de 1) do cabeçalho GRE e do pacote sendo transportado;
-
Chave (
Key): Contém um número de 32 bits que é inserido pelo encapsulador. Ele é utilizado pelo destinatário para identificar o remetente do pacote;
-
Número de seqüência (
Sequence number): Contém um número inteiro de 32 bits que é inserido pelo remetente do pacote. Ele é utilizado pelo destinatário para seqüenciar os pacotes recebidos;
-
Roteamento (
Routing): Contém uma lista de entradas de roteamento, mas, geralmente não é utilizado.
Última atualização 28/04/2009 17h09