Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    Introduction

    Est documento descreve como funciona a fragmentação de IPv4 e a Descoberta da unidade máxima de transmissão do caminho (PMTUD), bem como discute alguns cenários que envolvem o comportamento da PMTUD com diferentes combinações de túneis IPv4. O uso generalizado atual de túneis IPv4 na Internet colocou em destaque os problemas que envolvem a fragmentação de IPv4 e a PMTUD.

    Fragmentação e remontagem de IPv4

    O protocolo IPv4 foi projetado para uso em uma grande variedade de links de transmissão. Embora o comprimento máximo de um datagrama IPv4 seja 65535, a maioria dos links de transmissão impõe um limite menor de comprimento máximo do pacote, chamado MTU. O valor da MTU depende do tipo do link de transmissão. O design do IPv4 comporta diferenças de MTU, pois permite aos roteadores fragmentarem datagramas IPv4 conforme a necessidade. A estação receptora é responsável pela remontagem dos fragmentos no datagrama IPv4 original de tamanho completo.

    A fragmentação de IPv4 envolve quebrar um datagrama em um número de peças que podem ser remontadas posteriormente. A origem, o destino, a identificação, o tamanho total e os campos de deslocamento do fragmento de IPv4, juntamente com os sinalizadores de "mais fragmentos" e "não fragmentar" no cabeçalho do IPv4, são usados para fragmentação e remontagem de IPv4. Para obter mais informações sobre a mecânica da fragmentação de IPv4 e da remontagem, consulte RFC 791

    Esta imagem mostra o layout de um cabeçalho IPv4.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    A identificação é de 16 bits e é um valor atribuído pelo remetente de um datagrama IPv4 para ajudar na remontagem dos fragmentos de um datagrama.

    O deslocamento do fragmento é de 13 bits e indica onde um fragmento pertence no datagrama de IPv4 original. Esse valor é um múltiplo de oito bytes.

    No campo de sinalizadores de cabeçalho IPv4, existem três bits para sinalizadores de controle. É importante notar que o bit "não fragmentar" (DF) desempenha um papel central na PMTUD, porque determina se um pacote pode ou não ser fragmentado.

    O bit 0 é reservado e sempre definido como 0. O bit 1 é o bit DF (0 = "pode fragmentar", 1 = "não fragmentar"). O Bit 2 é o bit MF (0 = "último fragmento", 1 = "mais fragmentos").

    ValorBit 0 reservadoBit 1 DFBit 2 MF
    0 0 Maio Sobrenome
    1 0 Errado Mais

    O próximo gráfico mostra um exemplo de fragmentação. Se você somar todos os comprimentos de fragmentos IPv4, o valor excederá em 60 o comprimento do datagrama IPv4 original. O motivo pelo qual o comprimento total é aumentado em 60 é porque três cabeçalhos IPv4 adicionais foram criados, um para cada fragmento após o primeiro fragmento.

    O primeiro fragmento tem um deslocamento de 0, o comprimento desse fragmento é de 1.500; Isso inclui 20 bytes para o cabeçalho IPv4 original ligeiramente modificado.

    O segundo fragmento tem um deslocamento de 185 (185 x 8 = 1.480), o que significa que a parte de dados desse fragmento inicia em 1.480 bytes no datagrama IPv4 original. O comprimento desse fragmento é de 1.500; Isso inclui o cabeçalho IPv4 adicional criado para esse fragmento.

    O terceiro fragmento tem um deslocamento de 370 (370 x 8 = 2.960), o que significa que a parte de dados desse fragmento inicia em 2.960 bytes no datagrama IPv4 original. O comprimento desse fragmento é de 1.500; Isso inclui o cabeçalho IPv4 adicional criado para esse fragmento.

    O quarto fragmento tem um deslocamento de 555 (555 x 8 = 4.440), o que significa que a parte de dados desse fragmento inicia em 4.440 bytes no datagrama IPv4 original. O comprimento desse fragmento é de 700 bytes; Isso inclui o cabeçalho IPv4 adicional criado para esse fragmento.

    O tamanho do datagrama IPv4 original só pode ser determinado quando o último fragmento for recebido.

    O deslocamento do fragmento no último fragmento (555) fornece um deslocamento de dados de 4.440 bytes para o datagrama IPv4 original. Se você adicionar os bytes de dados do último fragmento (680 = 700-20), totalizará 5.120 bytes, que é a porção de dados do datagrama IPv4 original. Em seguida, a adição de 20 bytes para um cabeçalho IPv4 é igual ao tamanho do datagrama IPv4 original (4.440 + 680 + 20 = 5140), conforme mostrado nas imagens.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    Problemas com fragmentação de IPv4

    Há vários problemas que tornam a fragmentação de IPv4 indesejável. Há um pequeno aumento na sobrecarga de CPU e memória para fragmentar um datagrama de IPv4. Isso continua verdadeiro para o remetente e para um roteador no caminho entre o remetente e o receptor. A criação de fragmentos simplesmente envolve a criação de cabeçalhos de fragmento e a cópia do datagrama original nos fragmentos. Isso pode ser feito de forma bastante eficiente, porque todas as informações necessárias para criar os fragmentos estão imediatamente disponíveis.

    A fragmentação provoca mais “overhead” para o destinatário durante a remontagem dos fragmentos, porque o destinatário deve alocar memória para os fragmentos de chegada e agrupá-los novamente em um datagrama, depois do recebimento de todos os fragmentos. A remontagem em um host não é considerada um problema, porque o host possui os recursos de memória e o tempo para se dedicar a essa tarefa.

    Porém, a remontagem é muito ineficiente em um roteador, cuja principal função é encaminhar pacotes o mais rápido possível. Um roteador não é projetado para reter os pacotes por qualquer período. Além disso, um roteador que faz a remontagem escolhe o maior buffer disponível (18k) com o qual deseja trabalhar, porque ele só saberá o tamanho do pacote IPv4 original quando o último fragmento for recebido.

    Outro problema da fragmentação envolve o modo de manuseio dos fragmentos descartados. Se um fragmento de um datagrama IPv4 for descartado, então todo o datagrama IPv4 original deverá ser reenviado e também será fragmentado. Você verá um exemplo disso com o NFS (Network File System). NFS, por padrão, tem um tamanho de bloco de leitura e gravação de 8192, então um datagrama IPv4/UDP de NFS  é de aproximadamente 8.500 bytes (incluindo cabeçalhos NFS, UDP e IPv4). Uma estação de envio, ligada a uma Ethernet (MTU 1500) , deve fragmentar o datagrama de 8.500 bytes em seis pedaços; cinco fragmentos de 1.500 bytes e um fragmento de 1.100 bytes. Se qualquer um dos seis fragmentos for descartado por causa de um link congestionado, o datagrama original completo precisará ser retransmitido, o que significa que mais seis fragmentos serão criados. Caso esse link descarte um a cada seis pacotes, é baixa a probabilidade de transferência de quaisquer dados de NFS, já que pelo menos um fragmento IPv4 seria descartado em cada datagrama IPv4 iginal de 8.500 bytes de NFS.

    Os firewalls que filtram ou manipulam pacotes baseados nas informações da Camada 4 (L4) a Camada 7 (L7) no pacote podem ter dificuldade em processar fragmentos IPv4 corretamente. Se os fragmentos IPv4 estiverem fora de ordem, um firewall poderá bloquear os fragmentos não iniciais, pois não carregam as informações que corresponderiam ao filtro de pacote. Isso significaria que o datagrama IPv4 original não pode ser recomposto pelo host de recebimento. Se o firewall estiver configurado para permitir fragmentos não iniciais com informações insuficientes para corresponder corretamente ao filtro, poderá ocorrer um ataque de fragmento não inicial pelo firewall. Além disso, alguns dispositivos de rede (como Mecanismos de Switch de Conteúdo) direcionam os pacotes de acordo com as informações de L4 a L7, e se um pacote abranger vários fragmentos, o dispositivo pode ter dificuldade em aplicar as políticas.

    Evitar fragmentação de IP: O que o MSS TCP faz e como ele funciona

    O tamanho máximo de segmento TCP (MSS) define o volume máximo de dados que um host deseja aceitar em um único conjunto de dados TCP/IPv4. Este datagrama de TCP/IPv4 pode ser fragmentado na camada de IPv4. O valor MSS é enviado como uma opção de cabeçalho TCP somente em segmentos TCP SYN. Cada lado de uma conexão TCP relata seu valor MSS para o outro lado. Ao contrário do que se acredita, o valor MSS não é negociado entre os hosts. O host remetente é necessário para limitar o tamanho dos dados em um único segmento TCP para um valor menor ou igual ao MSS relatado pelo host destinatário.

    Originalmente, o MSS mostrava o tamanho de um buffer (maior ou igual a 65.496 bytes) alocado em uma estação receptora para armazenar os dados TCP contidos em um único datagrama IPv4. O MSS foi o máximo segmento (pedaço) de dados que o receptor TCP estava disposto a aceitar. Esse segmento TCP poderia ser tão grande quanto 64 K (o tamanho máximo do datagrama IPv4) e poderia ser fragmentado na camada IPv4 para transmissão pela rede ao host de destino. O host receptor remontaria o datagrama de IPv4 antes de ele enviar o segmento TCP completo para a camada de TCP.

    Aqui estão algumas situações que mostram como os valores de MSS são definidos e usados para os tamanhos de segmento TCP limite e, portanto, tamanhos de datagrama IPv4.

    O cenário 1 ilustra a maneira que o MSS foi implementado pela primeira vez. O Host A tem um buffer de 16K e o Host B um buffer de 8K. Eles enviam e recebem seus valores de MSS e ajustam o MSS de envio para enviar dados um ao outro. Observe que o Host A e o Host B precisarão fragmentar os datagramas IPv4 maiores do que a interface MTU, mas ainda assim menores que o MSS enviado, porque a pilha TCP poderia transmitir 16K ou 8K bytes de dados para a pilha de IPv4. No caso do Host B, os pacotes poderiam ser fragmentados duas vezes, uma vez para chegar à LAN de Token Ring e, novamente, para chegar à LAN de Ethernet.

    Cenário 1

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O Host A envia o valor MSS de 16K para o Host B.
    2. O Host B recebe o valor MSS de 16K do Host A.
    3. O Host B define o valor MSS de envio como 16K.
    4. O Host B envia o valor MSS de 8K para o Host A.
    5. O Host A recebe o valor MSS de 8K do Host B.
    6. O Host A define o valor MSS de envio como 8K.

    Para ajudar a evitar fragmentação de IPv4 nos endpoints da conexão de TCP, a seleção do valor MSS foi trocada para o tamanho de buffer mínimo e para a MTU da interface de saída (- 40). Os números de MSS são menores que os números de MTU de 40 bytes porque o MSS é apenas o tamanho de dados de TCP, não incluindo o cabeçalho IPv4 de 20 bytes e o cabeçalho TCP de 20 bytes. O MSS tem como base os tamanhos do cabeçalho padrão; a pilha de remetente deve subtrair os valores apropriados para o cabeçalho IPv4 e o cabeçalho TCP, dependendo de quais opções de IPv4 ou TCP são usadas.

    Agora, o MSS faz com que cada host compare primeiro a interface MTU de saída com o próprio buffer e escolha o menor valor como o MSS a ser enviado. Os hosts compararão o tamanho MSS recebido com base em sua própria MTU de interface e escolherão novamente o menor dos dois valores.

    O cenário 2 ilustra esta etapa adicional executada pelo remetente, a fim de evitar a fragmentação nos fios locais e remotos. Observe como o MTU da interface de saída é considerado por cada host (antes dos host trocarem entre si os valores de MSS) e como isso ajuda a evitar a fragmentação.

    Cenário 2

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O Host A compara o buffer de MSS (16K) e seu MTU (1.500 - 40 = 1.460) e usa o valor mais baixo como MSS (1.460) para envio ao Host B.
    2. O Host B recebe o MSS de envio do Host A (1.460) e compara com o valor de sua interface de saída de MTU - 40 (4.422).
    3. O Host B define o valor mais baixo (1.460) como o MSS  para enviar datagramas IPv4 para o Host A.
    4. O Host B compara o buffer de MSS (8K) e o MTU (4.462-40 = 4.422) e usa 4.422 como MSS para enviar ao Host A.
    5. O Host A recebe o MSS de envio do Host B (4422) e compara com o valor de sua interface de saída de MTU -40 (1460).
    6. O Host A define o valor mais baixo (1.460) como o MSS para enviar datagramas IPv4 para o Host B.

    1460 é o valor escolhido por ambos os hosts como o MSS de envio de um para o outro. Muitas vezes, o valor do MSS de envio será o mesmo em cada extremidade de uma conexão TCP.

    No cenário 2, a fragmentação não ocorre nos endpoints de uma conexão TCP, porque os hosts consideram os dois MTUs de interface de saída. É possível que os pacotes ainda sejam fragmentados na rede, entre os roteadores A e B, se encontrarem um enlace com uma MTU inferior à das interfaces de saída dos hosts.

    O que é PMTUD?

    Conforme descrito anteriormente, o MSS de TCP se encarrega da fragmentação em dois endpoints de uma conexão TCP, mas não interfere quando há um link de MTU menor no meio, entre esses dois endpoints. O PMTUD foi desenvolvido para evitar a fragmentação no caminho entre os endpoints. Ele é usado para determinar dinamicamente o MTU mais baixo ao longo do caminho, da origem de um pacote até o destino.

    Note: O PMTUD é compatível somente com TCP e UDP. Outros protocolos não são compatíveis. Se o PMTUD for ativado em um host, o que quase sempre ocorre, todos os pacotes TCP e UDP provenientes do host terão o bit DF definido. 

    Quando um host envia um pacote de dados MSS completo com o conjunto de bits DF, o PMTUD reduz o valor do MSS de envio para a conexão, caso ele receba a informação de que o pacote precisa de fragmentação. Um host geralmente "lembra" o valor de MTU para um destino, pois ele cria uma entrada de "host" (/32) em sua tabela de roteamento com esse valor MTU.

    Se um roteador tentar encaminhar um datagrama IPv4 com o conjunto de bits DF em um link que tem um MTU menor que o tamanho do pacote, o roteador  descarta o pacote e retornará uma mensagem de Internet control message protocol (ICMP) "Destino inacessível" para a origem do datagrama IPv4, com o código que indica "fragmentação necessária e DF definido" (tipo 3, código 4). Quando a estação de origem recebe a mensagem do ICMP, diminuirá o MSS de envio e, quando o TCP retransmitir o segmento, usará o menor tamanho de segmento.

    Este é um exemplo de uma mensagem ICMP de "fragmentação necessária e DF definido" que você pode ver em um roteador após o comando debug ip icmp ser ativado:

    ICMP: dst (10.10.10.10) frag. needed and DF set 
    unreachable sent to 10.1.1.1

    Este diagrama mostra o formato do cabeçalho de ICMP de uma mensagem "fragmentação necessária e DF definido" "Destino inacessível".

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    De acordo com RFC 1191, um roteador que retorna uma mensagem ICMP indicando "fragmentação necessária e DF definido" deve incluir o MTU da rede de próximo salto nos 16 bits de ordem inferior do campo de cabeçalho adicional de ICMP, rotulado como "não utilizado" na especificação do ICMP RFC 792.

    As implementações iniciais do RFC 1191 não forneceram as informações de MTU do próximo salto. Mesmo quando essa informação tiver sido fornecida, alguns hosts vão ignorá-la. Para esse caso, o RFC 1191 também contém uma tabela que lista os valores sugeridos que devem ser usados para diminuir o MTU durante o PMTUD. Ele é usado por hosts para chegar com mais rapidez a um valor razoável para o MSS de envio conforme mostrado na imagem.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    O PMTUD é executado continuamente em todos os pacotes porque o caminho entre o remetente e o receptor pode ser alterado dinamicamente. Sempre que um remetente receber mensagens ICMP de "não é possível fragmentar", ele atualizará as informações de roteamento (onde armazena o PMTUD).

    Duas coisas podem acontecer durante o PMTUD:

    1. O pacote pode chegar até o receptor sem ser fragmentado.

    Note: Para que um roteador proteja a CPU contra ataques DoS, ele limita para duas pessoas por segundo o número de mensagens ICMP inacessíveis enviadas. Portanto, nesse contexto, se você tiver um cenário de rede em que o roteador precisa responder com mais de duas mensagens ICMP (tipo = 3, código = 4) por segundo (pode ser de diferentes hosts), talvez você prefira desativar o controle de fluxo de mensagens ICMP com o comando de interface no ip icmp rate-limit unreachable [df].

    2. O remetente pode obter mensagens ICMP "Cant Fragment" a partir de quaisquer (ou de todos) os nós junto com o caminho para o receptor.

    O PMTUD é efetuado independentemente de ambas as direções de um fluxo de TCP. Pode haver casos em que o PMTUD em uma direção de fluxo aciona uma das estações finais para diminuir o MSS de envio e a outra estação final mantém o MSS de envio original, porque ela nunca enviou um datagrama IPv4 grande o suficiente para disparar o PMTUD.

    Um bom exemplo disso é a conexão HTTP retratada abaixo no Cenário 3. O cliente TCP envia pacotes pequenos e o servidor envia pacotes grandes. Nesse caso, apenas os pacotes grandes do servidor (maiores de 576 bytes) acionarão o PMTUD. Os pacotes do cliente são pequenos (menores que 576 bytes) e não dispararão PMTUD porque não requerem fragmentação para chegar ao link de 576 MTU.

    Cenário 3

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    O Cenário 4 mostra um exemplo de roteamento assimétrico, em que um dos caminhos tem um MTU mínimo menor que o outro. O roteamento assimétrico ocorre quando diferentes caminhos são usados para enviar e receber dados entre os dois endpoints. Nesse cenário, o PMTUD acionará a redução do MSS de envio apenas em uma direção de um fluxo de TCP. O tráfego do cliente TCP para o servidor flui através do Roteador A e do Roteador B, enquanto o tráfego de retorno que vem do servidor para o cliente flui através do Roteador D e do Roteador C. Quando o servidor TCP envia pacotes para o cliente, o PMTUD disparará o servidor para reduzir o MSS de envio porque o Roteador D deve fragmentar os pacotes de 4092 bytes antes de enviá-los para o Roteador C.

    Por outro lado, o cliente nunca receberá uma mensagem ICMP de “Destino inacessível" com o código que indica "fragmentação necessária e DF definido", porque o Roteador A não precisa fragmentar os pacotes quando os envia ao servidor pelo Roteador B.

    Cenário 4

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    Note: O comando ip tcp path-mtu-discovery é usado para ativar a descoberta de caminho TCP MTU para conexões TCP iniciadas pelos roteadores (BGP e Telnet, por exemplo).

    Problemas com o PMTUD

    Há três coisas que podem romper o PMTUD, duas que são incomuns e uma que é comum.

    • Um roteador pode descartar um pacote e não enviar uma mensagem ICMP. (Incomum)

    • Um roteador pode gerar e enviar uma mensagem ICMP, mas a mensagem ICMP fica bloqueada por um roteador ou firewall entre esse roteador e o remetente. (Comum)

    • Um roteador pode gerar e enviar uma mensagem ICMP que será ignorada pelo remetente. (Incomum)

    O primeiro e o último dos três marcadores aqui são incomuns e geralmente são o resultado de um erro, mas o marcador central descreve um problema comum. As pessoas que implementam filtros de pacotes de ICMP tendem a bloquear todos os tipos de mensagens de ICMP em vez de bloquear somente determinados tipos de mensagens de ICMP. Um filtro de pacotes pode bloquear todos os tipos de mensagens ICMP, exceto as que contêm "inacessível" ou "tempo excedido". O sucesso ou a falha do PMTUD depende das mensagens inacessíveis de ICMP que chegam ao remetente de um pacote TCP/IPv4. As mensagens ICMP de tempo excedido são importantes para outros problemas de IPv4. Um exemplo desse filtro de pacotes, implementado em um roteador, é mostrado aqui.

    access-list 101 permit icmp any any unreachable
    access-list 101 permit icmp any any time-exceeded
    access-list 101 deny icmp any any
    access-list 101 permit ip any any

    Há outras técnicas que podem ser usadas para ajudar a aliviar o problema do bloqueio total do ICMP.

    • Limpar o bit DF no roteador e permitir a fragmentação (porém, isso pode não ser uma boa ideia. Consulte Problemas com a fragmentação de IP para obter mais informações).

    • Manipular o MSS de valor de opção TCP MSS com o comando de interface ip tcp adjust-mss <500-1460>.

    No próximo cenário, os Roteadores A e B estão no mesmo domínio administrativo. O Roteador C é inacessível e bloqueia o ICMP, então o PMTUD é interrompido. Uma solução para essa situação é limpar o bit DF em ambos sentidos no Roteador B, para habilitar a fragmentação. Isso pode ser feito com o roteamento de política. A sintaxe para limpar o bit DF está disponível no Cisco IOS® Software Versão 12.1(6) e posterior.

    interface serial0 
    ... 
    ip policy route-map clear-df-bit 
    route-map clear-df-bit permit 10 
    	match ip address 111 
    	set ip df 0 
     
    access-list 111 permit tcp any any

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    Outra opção é alterar o valor de opção TCP MSS em pacotes SYN que atravessam o roteador (disponível no Cisco IOS® 12.2(4)T e posterior). Isso reduz o valor da opção MSS no pacote TCP SYN para que ele seja menor que o valor (1460) no comando ip tcp adjust-mss. O resultado é que o emissor do TCP enviará segmentos não maiores que esse valor. O tamanho do pacote IP será 40 bytes (1.500) maior do que o valor do MSS (1.460 bytes) para incluir o cabeçalho TCP (20 bytes) e o cabeçalho IPv4 (20 bytes).

    É possível ajustar o MSS dos pacotes TCP SYN com o comando ip tcp adjust-mss. Essa sintaxe reduzirá o valor MSS em segmentos TCP para 1460. Esse comando afeta o tráfego de entrada e saída na interface serial0.

    int s0 
    ip tcp adjust-mss 1460

    Os problemas de fragmentação de IPv4 tornaram-se mais conhecidos desde que as implantações de túneis IPv4 aumentaram. O encapsulamento do túnel adiciona um “overhead" ao tamanho do pacote, por isso os túneis provocam mais fragmentação. Por exemplo, a adição de Encapsulamento de roteador genérico (GRE) aumenta um pacote em 24 bytes e, após esse aumento, o pacote talvez precise ser fragmentado porque é maior do que o MTU de saída. Em uma seção posterior neste documento, você verá exemplos dos tipos de problemas que podem surgir com túneis e fragmentação de IPv4.

    Topologias de rede comuns que necessitam de PMTUD

    O PMTUD é necessário nas situações de rede em que os links intermediários têm MTUs menores que o MTU dos links finais. Algumas razões comuns para a existência desses enlaces de MTU menores são:

    • Hosts terminais conectados por Token Ring (ou FDDI), com uma conexão Ethernet entre eles. Os MTUs de Token Ring (ou FDDI) nas extremidades são maiores que o MTU de Ethernet localizado no meio.

    • O PPPoE (geralmente utilizado com ADSL) precisa de 8 bytes para seu cabeçalho. Isso reduz o MTU efetivo de Ethernet para 1492 (1500 - 8).

    Os protocolos de tunelamento, como o GRE, IPv4sec, L2TP, também precisam de espaço para seus respectivos cabeçalhos e rodapés. Isso também reduz a MTU efetiva da interface de saída.

    Nas próximas seções, o impacto de PMTUD, onde um protocolo de tunelamento é usado em algum lugar entre os dois hosts terminais, será estudado. Dos três casos anteriores, esse é o mais complexo e abrange todos os problemas que você pode ver nos outros casos.

    Túnel

    Um túnel é uma interface lógica em um roteador da Cisco, proporcionando uma maneira de encapsular pacotes passageiros dentro de um protocolo de transporte. É uma arquitetura projetada para prestar serviços para implementação em um esquema de encapsulamento ponto a ponto. O encapsulamento tem estes três componentes principais:

    • Protocolo de passageiro (AppleTalk, Banyan VINES, CLNS, DECnet, IPv4 ou IPX)

    • Protocolo de portador - um desses protocolos de encapsulamento:

      • GRE - Protocolo de portadora multiprotocolo da Cisco. Consulte RFC 2784 e RFC 1701 para obter mais informações.

      • IPv4 em túneis de IPv4 - Consulte RFC 2003 para obter mais informações.

    • Protocolo de transporte - O protocolo usado para transportar o protocolo encapsulado.

    Os pacotes mostrados nesta seção ilustram os conceitos de tunelamento de IPv4, em que o GRE é o protocolo de encapsulamento e o IPv4 é o protocolo de transporte. O protocolo de passageiro também é IPv4. Nesse caso, o IPv4 é o protocolo de transporte e de passageiros.

    Pacote normal

    Pacote de túneis

    IPv4 GRE IPv4 TCP Telnet
    • IPv4 é o protocolo de transporte

    • GRE é o protocolo de encapsulamento.

    • IPv4 é o protocolo de passageiros.

    O próximo exemplo mostra o encapsulamento de IPv4 e DECnet como protocolos de passageiro com GRE como transportador. Isso ilustra o fato de que o protocolo da transportador pode encapsular vários protocolos de passageiro, conforme mostrado na imagem.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    Um administrador de rede pode considerar um tunelamento quando há duas redes não contíguas e sem IPv4 separadas por um backbone de IPv4. Caso as redes não contíguas executem o DECnet, o administrador pode não querer conectá-las entre si ao configurar o DECnet no backbone. O administrador pode não querer permitir que o roteamento de DECnet consuma a largura de banda do backbone, porque isso interferiria no desempenho da rede IPv4.

    Uma alternativa viável é fazer um túnel DECnet no backbone IPv4. O tunelamento encapsula os pacotes DECnet dentro do IPv4 e os envia pelo backbone até o terminal de túnel, onde o encapsulamento é removido e os pacotes DECnet podem ser encaminhados ao seu destino através de DECnet.

    Encapsular o tráfego dentro de um outro protocolo oferece estas vantagens:

    • Os endpoints usam endereços privados (RFC 1918) e o backbone não suporta o roteamento desses endereços.

    • Permitem redes virtuais privadas (VPNs) através de WANs ou Internet.

    • Unem redes de multiprotocolos descontíguas em um backbone de protocolo único.

    • Criptografam o tráfego ao longo do backbone ou da Internet.

    No resto do documento, o IPv4 é usado como protocolo passageiro e protocolo de transporte.

    Considerações com relação às interfaces de túnel

    Estas são considerações sobre tunelamento.

    • O switching rápido de túneis GRE foi introduzido no Cisco IOS® versão 11.1 e o switching de CEF foi introduzido na versão 12.0. O switching de CEF para túneis GRE de vários pontos foi introduzido na versão 12.2(8)T. O encapsulamento e o desencapsulamento no terminal de túnel eram operações lentas em versões anteriores do Cisco IOS® , quando havia suporte somente ao switching de processo.

    • Há problemas de segurança e topologia no tunelamento de pacotes. Os túneis podem desviar listas de controle de acesso (ACLs) e firewalls. Se você criar um túnel através de um firewall, basicamente ignorará o firewall em qualquer tunelamento sendo feito para o protocolo de passageiro . Portanto, é recomendável incluir a funcionalidade do firewall nos endpoints do túnel para aplicar qualquer política aos protocolos de passageiro.

    • O tunelamento pode criar problemas com os protocolos de transporte com temporizadores limitados (por exemplo, DECnet) por causa do aumento da latência.

    • O tunelamento em ambientes com links de velocidade diferentes, como anéis FDDI rápidos e linhas telefônicas lentas de 9600 bps, pode introduzir problemas de reordenação de pacotes. Alguns protocolos passageiros apresentam baixo desempenho nas redes de mídia mista.

    • Os túneis ponto a ponto podem usar a largura de banda em um enlace físico. Se você executar protocolos de roteamento em vários túneis de ponto a ponto, tenha em mente que cada interface de túnel tem uma largura de banda e que a interface física na qual o túnel passa tem uma largura de banda. Por exemplo, você gostaria de definir a largura de banda do túnel como 100 Kb, se houvesse 100 túneis passando por um link de 10 Mb. A largura de banda padrão para um túnel é 9Kb.

    • Protocolos de roteamento podem preferir um túnel que passa por um link real, porque o túnel pode parecer um link de um salto com o caminho de custo mais baixo, mas na realidade ele envolve mais saltos e tem maior custo que outro caminho. Isso pode ser mitigado com a configuração correta do Routing Protocol. É possível considerar a execução como um Routing Protocol diferente sobre a interface do túnel e não o roteamento de uma execução de protocolo na interface física.

    • Problemas com roteamento recursivo podem ser evitados configurando rotas estáticas apropriadas para o destino do túnel. Uma rota recursiva ocorre quando o melhor caminho para o destino do túnel é pelo próprio túnel. Essa situação faz com que a interface de túnel salte para cima e para baixo. Você verá esse erro quando houver um problema de roteamento recursivo.

      %TUN-RECURDOWN Interface Tunnel 0
      temporarily disabled due to recursive routing

    Roteador como participante PMTUD no endpoint do túnel

    O roteador tem duas funções PMTUD diferentes quando é o ponto final de um túnel.

    • Na primeira função, o roteador é o remetente de um pacote de host. Para o processamento de PMTUD, o roteador precisa verificar o tamanho do bit DF e do pacote de dados original para executar a ação apropriada, quando necessário.

    • A segunda função ocorre após o roteador encapsular o pacote IPv4 original do host dentro do pacote de túnel. Nessa fase, o roteador atua mais com um host em relação ao PMTUD e ao pacote IPv4 do túnel.

    Vamos começar  a analisar o que acontece quando o roteador atua na primeira função, um roteador que encaminha pacotes IP do host, em relação ao PMTUD. Essa função ocorre antes do roteador encapsular o pacote IPv4 do host dentro do pacote de túnel.

    Se o roteador participar como o remetente de um pacote do host, ele executará estas ações:

    • Verifica se o bit DF está definido.

    • Verifica qual tamanho de pacote o túnel pode comportar.

    • Fragmenta (se o pacote for muito grande e o bit DF não estiver definido), encapsula os fragmentos e os envia; or

    • Descarta o pacote (se o pacote for muito grande e o bit DF estiver definido) e envia uma mensagem de ICMP para o remetente.

    • Encapsula (se o pacote não for muito grande) e envia.

    Genericamente, há uma escolha de encapsulamento e fragmentação (envia dois fragmentos de encapsulamento) ou fragmentação e encapsulamento (envia dois fragmentos encapsulados).

    Alguns exemplos que descrevem a mecânica do encapsulamento e a fragmentação de pacotes IPv4 e os dois cenários que mostram a interação do PMTUD e pacotes que atravessam redes de exemplo estão detalhados nesta seção.

    O primeiro exemplo mostra o que acontece com um pacote quando o roteador (na origem do túnel) tem a função de roteador de encaminhamento. Lembre-se que para processar o PMTUD, o roteador precisa verificar o tamanho do bit DF e do pacote de dados original para executar a ação apropriada. Este exemplo usa encapsulamento GRE para o túnel. Como pode ser observado, o GRE faz a fragmentação antes do encapsulamento. Os exemplos posteriores mostram cenários em que a fragmentação é feita após o encapsulamento.

    No exemplo 1, o bit DF não está definido (DF = 0) e a MTU de IPv4 do túnel GRE é 1.476 (1.500-24).

    Exemplo 1

    1. O roteador de encaminhamento (na origem de túnel) recebe um datagrama de 1500 bytes com o bit DF limpo (DF = 0) do host de envio. Esse datagrama é composto por um cabeçalho de IP de 20 bytes e um payload de TCP de 1480 bytes.

    IPv4 TCP de 1.480 bytes + dados

     2. Como o pacote é muito grande para o IPv4 de MTU depois da adição do overhead de GRE (24 bytes), o roteador de encaminhamento divide o datagrama em dois fragmentos de 1.476 (20 bytes de cabeçalho IPv4 + 1.456 bytes de payload IPv4) e 44 bytes (20 bytes de cabeçalho IPv4 + 24 bytes de payload IPv4), portanto depois que o encapsulamento GRE for adicionado, o pacote não será maior do que o MTU de interface física de saída.

    IP0 TCP de 1.456 bytes + dados

     3. O roteador de encaminhamento adiciona o encapsulamento GRE, incluindo um cabeçalho GRE de 4 bytes e um cabeçalho IPv4 de 20 bytes, a cada fragmento do datagrama IPv4 original. Esses dois datagramas IPv4 agora têm um comprimento de 1.500 e 68 bytes e não são considerados fragmentos, mas sim datagramas IP individuais.

    IPv4 GRE IP0 TCP de 1.456 bytes + dados
    IPv4 GRE IP1 Dados de 24 bytes

    4. O roteador de destino do túnel remove o encapsulamento GRE de cada fragmento do datagrama original, permanecendo dois fragmentos IPv4 de 1.476 e 24 bytes de comprimento. Esses fragmentos de datagrama de IPv4 são encaminhados separadamente por este roteador para o host destinatário.

    IP0 TCP de 1.456 bytes + dados

    5. O host destinatário remonta esses dois fragmentos no datagrama original.

    IPv4 TCP de 1.480 bytes + dados

    O cenário 5 descreve a função do roteador de encaminhamento no contexto de uma topologia de rede.

    Neste exemplo, o roteador tem a mesma função do roteador de encaminhamento, mas dessa vez o bit DF está definido (DF = 1).

    Exemplo 2

    1. O roteador de encaminhamento na origem do túnel recebe um datagrama de 1500 bytes com DF = 1 do host de envio.

    IPv4 TCP de 1.480 bytes + dados

    2. Como o bit DF está definido, e o tamanho do datagrama (1.500 bytes) é maior do que o MTU IPv4 do túnel GRE (1476), o roteador descartará o datagrama e enviará uma mensagem de "fragmentação ICMP necessária, mas bit DF definido" para a origem do datagrama. A mensagem de ICMP alertará o remetente de que o MTU é 1.476.

    IPv4 MTU de ICMP de 1.476

    3. O host remetente recebe a mensagem de ICMP e, ao reenviar os dados originais, ele usa uma datagrama IPv4 de 1.476 bytes.

    IPv4 TCP de 1.456 bytes + dados

    4. Esse comprimento de datagrama IPv4 (1.476 bytes) agora é igual em valor ao MTU IPv4 do túnel GRE, de modo que o roteador adiciona o encapsulamento GRE ao datagrama IPv4.

    IPv4 GRE IPv4 TCP de 1.456 bytes + dados

    5. O roteador destinatário (no destino do túnel) remove o encapsulamento GRE do datagrama IPv4 e o envia para o host destinatário.

    IPv4 TCP de 1.456 bytes + dados

    Agora, você pode analisar o que acontece quando o roteador tem uma segunda função como host remetente em relação ao PMTUD e ao pacote IPv4 do túnel. Lembre-se de que essa função ocorre após o roteador encapsular o pacote IPv4 original do host dentro do pacote de túnel.

    Note: Como padrão, um roteador  não faz PMTUD nos pacotes de túnel GRE gerados por ele. O comando tunnel path-mtu-discovery pode ser usado para ativar o PMTUD para pacotes de túnel IPv4 do GRE.

    O exemplo 3 mostra o que acontece quando o host envia datagramas IPv4 suficientemente pequenos para caber no IPv4 do MTU da interface de túnel GRE. O bit DF, nesse caso, pode ser configurado ou limpo (1 ou 0). A interface de túnel GRE não tem o comando tunnel path-mtu-discovery configurado, portanto o roteador não faz o PMTUD no pacote IPv4 do GRE.

    Exemplo 3

    1. O roteador de encaminhamento na origem do túnel recebe um datagrama de 1476 bytes do host de envio.

    IPv4 TCP de 1.456 bytes + dados

    2. Esse roteador encapsula o datagrama de IPv4 de 1476 bytes dentro do GRE para obter um datagrama de IPv4 do GRE de 1.500 bytes. O bit DF no cabeçalho do IPv4 do GRE será removido (DF = 0). Esse roteador encaminha, em seguida, esse pacote ao destino do túnel.

    IPv4 GRE IPv4 TCP de 1.456 bytes + dados

    3. Pressuponha que há um roteador entre a origem e o destino do túnel com um MTU de link de 1.400. Esse roteador fragmentará o pacote de túnel porque o bit de está limpo (DF = 0). Lembre-se que esse exemplo fragmenta o IPv4 mais externo, então os cabeçalhos de GRE, IPv4 interno e TCP só aparecerão no primeiro fragmento.

    IP0 GRE IP TCP de 1352 bytes + dados

    4. O roteador de destino do túnel deve realizar a remontagem dos pacotes GRE do túnel.

    IP GRE IP TCP de 1.456 bytes + dados

    5. Depois que o pacote de túnel GRE for remontado, o roteador removerá o cabeçalho IPv4 de GRE e encaminhará normalmente o datagrama IPv4 original.

    IPv4 TCP de 1.456 bytes + dados

    O próximo exemplo mostra o que acontece quando o roteador funciona como host remetente em relação ao PMTUD e ao pacote IPv4 do túnel. Dessa vez, o bit DF está definido (DF = 1) no cabeçalho IPv4 original e o comando tunnel path-mtu-discovery foi configurado para que o bit DF seja copiado do cabeçalho IPv4 interno para o cabeçalho externo (GRE + IPv4).

    Exemplo 4

    1. O roteador de encaminhamento na fonte de túnel recebe um datagrama de 1.476 bytes com DF = 1 proveniente do host remetente.

    IPv4 TCP de 1.456 bytes + dados

    2. Esse roteador encapsula o datagrama de IPv4 de 1476 bytes dentro do GRE para obter um datagrama de IPv4 do GRE de 1.500 bytes. Este cabeçalho IPv4 de GRE terá o DF bit definido (DF = 1), pois o datagrama IPv4 original tinha o bit DF definido. Esse roteador encaminha, em seguida, esse pacote ao destino do túnel.

    IPv4 GRE IPv4 TCP de1456 bytes

    3. Novamente, pressuponha que há um roteador entre a origem e o destino do túnel com um MTU de link de 1.400. Este roteador não fragmentará o pacote de túnel desde que o bit DF esteja definido (DF = 1). Esse roteador deve descartar o pacote e enviar uma mensagem de erro de ICMP para o roteador de origem do túnel, já que é o endereço IPv4 de origem no pacote.

    IPv4 MTU de ICMP de 1.400

    4. O roteador de encaminhamento na origem do túnel recebe esta mensagem de erro de "ICMP" e diminuirá o MTU de IPvr do túnel GRE para 1.376 (1.400-24). Na próxima vez que o host de envio retransmite os dados em um pacote de IPv4 de 1.476 bytes, esse pacote pode ser muito grande e o roteador enviará uma mensagem de erro de "ICMP" para o remetente com um valor MTU de 1.376. Quando o host remetente retransmite os dados, ele envia um pacote IPv4 de 1.376 bytes e o pacote atravessará o túnel GRE até o host destinatário.

    Cenário 5

    Esse cenário ilustra a fragmentação GRE. Lembre-se que você fragmenta antes do encapsulamento para o GRE e, em seguida, faz o PMTUD para o pacote de dados, além disso o bit DF não é copiado quando o pacote IPv4 é encapsulado pelo GRE. Nesse cenário, o bit DF não está definido. O MTU de IPv4 da interface de túnel GRE é, por padrão, 24 bytes menor do que o MTU de IPv4 de interface física, portanto o MTU de IPv4 da interface GRE é 1.476, como mostrado na imagem.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O remetente envia um pacote de 1.500 bytes (cabeçalho IPv4 de 20 bytes + 1.480 bytes de payload de TCP).
    2. Como o MTU do túnel GRE é 1.476, o pacote de 1500 bytes é dividido em dois fragmentos IPv4 de 1.476 e 44 bytes, cada um prevendo os 24 bytes adicionais do cabeçalho GRE.
    3. Os 24 bytes do cabeçalho GRE são adicionados a cada fragmento de IPv4. Agora os fragmentos têm 1.500 (1.476 + 24) e 68 (44 + 24) bytes cada.
    4. Os pacotes IP + GRE que contêm os dois fragmentos IPv4 são encaminhados para o roteador de túnel GRE correspondente.
    5. O roteador do par do túnel GRE remove os cabeçalhos GRE dos dois pacotes.
    6. Esse roteador encaminha os dois pacotes para o host de destino.
    7. O host de destino reagrupa os fragmentos IPv4 de volta ao datagrama IP original.

    Cenário 6

    Esse cenário é semelhante ao cenário 5, mas desta vez o bit DF está definido. No Cenário 6, o roteador está configurado para fazer PMTUD nos pacotes de túnel IPv4 + GRE com o comando tunnel path-mtu-discovery, e o bit DF é copiado do cabeçalho IPv4 original para o cabeçalho IPv4 do GRE. Se o roteador recebe um erro de ICMP para o pacote IPv4 + GRE, ele reduz o MTU do IP na interface de túnel GRE. Novamente, lembre-se de que o MTU do IPv4 do túnel GRE é definido como 24 bytes, menos do que o MTU de interface física por padrão, portanto este MTU de IPv4 de GRE é 1.476. Além disso, observe que há um link de MTU de 1.400 no caminho do túnel GRE, conforme mostrado na imagem.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O roteador recebe um pacote de 1.500 bytes (cabeçalho IPv4 de 20 bytes + payload TCP de 1.480), e ele descarta o pacote. O roteador descarta o pacote porque é maior do que o IPv4 de MTU (1.476) na interface de túnel GRE.
    2. O roteador envia um erro ICMP ao remetente informando que o próximo MTU de nó é 1476. O host registrará essas informações, normalmente como uma rota de host para o destino em sua tabela de roteamento.
    3. O host de envio usa um tamanho de pacote de 1.476 bytes quando reenvia os dados. O roteador GRE acrescenta 24 bytes de encapsulamento de GRE e envia um pacote de 1500 bytes.
    4. O pacote de 1500 bytes não pode atravessar o enlace de 1400 bytes; portanto, será descartado pelo roteador intermediário.
    5. O roteador intermediário envia um ICMP (tipo = 3, código = 4) para o roteador GRE com um MTU de próximo salto de 1.400. O roteador GRE reduz isso a 1.376 (1.400-24) e define um valor de MTU de IPv4 interno na interface GRE. Essa alteração só pode ser vista ao usar o comando debug tunnel; ele não pode ser visto na saída do comando show ip interface tunnel<#>.
    6. Da próxima vez que o host enviar novamente o pacote de 1.476 bytes, o roteador GRE descartará o pacote, já que é maior do que o MTU de IPv4 (1.376) atual na interface de túnel GRE.
    7. O roteador GRE enviará outro ICMP (tipo = 3, código = 4) ao remetente com um MTU de próximo salto de 1.376 e o host atualizará as próprias informações atuais com o novo valor.
    8. O host reenvia novamente os dados, mas agora num pacote menor de 1376 bytes; o GRE incluirá 24 bytes de encapsulamento e o encaminhará. Desta vez, o pacote chegará ao par do túnel GRE, onde será desencapsulado e enviado ao host de destino.

    Note: Se o comando tunnel path-mtu-discovery não for configurado no roteador de encaminhamento neste cenário, e o bit DF for definido nos pacotes encaminhados pelo túnel GRE, o Host 1 ainda conseguiria enviar os pacotes TCP/IPv4 para o Host 2, mas eles teriam se fragmentado no meio, no link MTU 1.400. Além disso, o par do túnel GRE teria que remontá-los, antes que pudessem ser desencapsulados, e enviá-los.

    GRE + IPsec (Modo de túnel)

    O protocolo de segurança IPv4 (IPv4sec) é um método padronizado que fornece privacidade, integridade e autenticidade às informações transferidas pelas redes IPv4. O IPv4sec fornece a criptografia de camada de rede IPv4. O IPv4sec alonga o pacote IPv4 ao adicionar pelo menos um cabeçalho IPv4 (modo de túnel). O(s) cabeçalho(s) adicionado(s) varia(m) em comprimento dependendo do modo de configuração IPv4sec, mas não excedem ~58 bytes (Encapsulating Security Payload (ESP) e ESP authentication (ESPauth)) por pacote.

    O IPv4sec tem dois modos, o modo de túnel e o modo de transporte.

    1. Modo de túnel é o modo padrão. No modo de túnel, todo pacote IPv4 original é protegido (criptografado, autenticado ou ambos) e encapsulado pelos cabeçalhos e rodapés IPv4sec. Em seguida, um novo cabeçalho IPv4 é anexado ao pacote, especificando os endpoints de IPv4sec (pares) como a origem e o destino. O modo de túnel pode ser usado com qualquer tráfego IPv4 unicast e deve ser usado se o IPv4sec protege o tráfego contra hosts escondidos nos pares IPv4sec. Por exemplo, o modo de túnel é usado em Redes virtuais privadas (VPNs), onde hosts em uma rede protegida enviam pacotes para hosts em uma rede diferente por meio de um par de pares IPv4sec. Com VPNs, o "túnel" IPv4sec protege o tráfego de IPv4 entre os hosts ao criptografar esse tráfego entre os roteadores de pares IPv4sec.
    2. Com o modo de transporte (configurado com o subcomando, mode transport, na definição de transformação), somente o payload do pacote IPv4 original está protegido (criptografado, autenticado ou ambos). O payload é encapsulado pelos cabeçalhos e trailers de IPv4sec. Os cabeçalhos IPv4 originais permanecem intactos, exceto o campo de protocolo IPv4 que é alterado para ESP (50), e o valor do protocolo original é salvo no trailer IPv4sec para ser restaurado quando o pacote for descriptografado. O modo de transporte é usado apenas quando o tráfego IPv4 a ser protegidos está entre os pares de IPv4sec, a origem e os endereços IPv4 de destino no pacote são os mesmos que os endereços de mesmo nível de IPv4sec. Normalmente o modo de transporte IPv4sec é usado somente quando um outro protocolo de encapsulamento (como GRE) for usado para encapsular primeiro o pacote de dados IPv4, em seguida, o IPv4sec é usado para proteger os pacotes de túnel GRE.

    O IPv4sec sempre faz PMTUD para pacotes de dados e para seus próprios pacotes. Existem comandos de configuração IPv4sec para modificar o processamento de PMTUD para o pacote IPv4 de IPv4sec, o IPv4sec pode limpar, definir ou copiar o bit DF do cabeçalho IPv4 do pacote de dados para o cabeçalho IPv4 de IPv4sec. Esse recurso é denominado "Funcionalidade de Anulação de Bit DF".

    Note: Você realmente quer evitar a fragmentação após o encapsulamento quando faz a criptografia de hardware com o IPv4sec. A criptografia de hardware pode fornecer a você uma produtividade de cerca de 50 Mbs, dependendo do hardware, mas se o pacote IPv4sec estiver fragmentado você perderá de 50 a 90% da produtividade. Essa perda ocorre porque os pacotes IPv4sec fragmentados são comutados por processo para remontagem e, em seguida, enviados para o mecanismo de criptografia de hardware para descriptografia. Essa perda de produtividade pode prejudicar a produtividade de criptografia de hardware até o nível de desempenho da criptografia de software (2-10 Mbs).

    Cenário 7

    Este cenário retrata a fragmentação de IPv4sec em ação. Nesse cenário, o MTU em todo o caminho é 1.500. Nesse cenário, o bit DF não está definido.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O roteador recebe um pacote de 1.500 bytes (cabeçalho IPv4 de 20 bytes + payload TCP de 1.480) destinado para o Host 2.
    2. O pacote de 1.500 bytes é criptografado por IPv4sec e 52 bytes de sobrecarga são adicionados (cabeçalho IPv4sec, trailer e cabeçalho adicional do IPv4). Agora, o IPv4sec precisa enviar um pacote de 1.552 bytes. Como o MTU de saída é 1500, este pacote terá que ser fragmentado.
    3. Dois fragmentos são criados fora do pacote IPv4sec. Durante a fragmentação, outro cabeçalho IPv4 de 20 bytes é adicionado ao segundo fragmento, resultando em um fragmento de 1.500 bytes e um fragmento IPv4 de 72 bytes.
    4. O roteador de par do túnel IPv4sec recebe os fragmentos, remove o cabeçalho IPv4 adicional e agrupa os fragmentos IPv4 de volta ao pacote original do IPv4sec. Em seguida, o IPv4sec descriptografa esse pacote.
    5. O roteador encaminha o pacote de dados original de 1500 bytes para o Host 2.

    Cenário 8

    Esse cenário é semelhante ao cenário 6, porém, neste caso, o bit DF está definido no pacote de dados original e há um link no caminho entre os pares de túnel IPv4sec com MTU menor do que os outros links. Esse cenário demonstra como o roteador par de IPv4sec executa as duas funções de PMTUD, conforme descrito na seção O roteador como um participante PMTUD no endpoint de um túnel.

    Nesse cenário, você verá como o PMTU de IPv4sec é alterado para um valor mais baixo, como resultado da necessidade de fragmentação. Lembre-se de que o bit DF é copiado do cabeçalho IPv4 interno para o cabeçalho IPv4 externo, quando o IPv4sec criptografa um pacote. Os valores de MTU e PMTU de mídia são armazenados em Security Association (SA) do IPv4sec. A mídia de MTU baseia-se no MTU da interface do roteador de saída e o PMTU tem como base o MTU mínimo visto no caminho entre os pares de IPv4sec. Lembre-se de que o IPv4sec encapsula/criptografa o pacote antes de tentar fragmentá-lo, conforme mostrado na imagem.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O roteador recebe um pacote de 1.500 bytes e o descarta porque o overhead de IPv4sec, quando adicionado, deixará o pacote maior que o PMTU (1.500).
    2. O roteador envia uma mensagem ICMP ao Host 1 informando-o de que o MTU do próximo salto é 1442 (1500 - 58 = 1442). Esses 58 bytes são a sobrecarga de IPv4sec máxima ao usar ESP e ESPauth de IPv4sec. A sobrecarga real do IPv4sec pode ser até 7 bytes menor que esse valor. O Host 1 registra esta informação, geralmente como uma rota de host para o destino (Host 2), em sua tabela de roteamento.
    3. 3. O Host 1 reduz o PMTU do Host 2 para 1.442, então o Host 1 enviará pacotes menores (1.442 bytes) quando retransmitir os dados para o Host 2. O roteador recebe o pacote 1.442 bytes e o IPv4sec adiciona 52 bytes de sobrecarga de criptografia, então o pacote IPv4sec resultante é de 1.496 bytes. Como esse pacote tem o DF bit definido no cabeçalho, ele é descartado pelo roteador do meio com o link de MTU de 1.400 bytes.
    4. O roteador do meio que descartou o pacote envia uma mensagem ICMP para o remetente do pacote IPv4sec (o primeiro roteador) dizendo que o MTU do próximo salto é de 1.400 bytes. Esse valor é registrado no PMTU de SA do IPv4sec.
    5. Na próxima vez que Host 1 retransmitir o pacote de 1.442 bytes (ele não recebeu uma confirmação disso), o IPv4sec descartará o pacote. Novamente, o roteador descartará o pacote porque a sobrecarga de IPv4sec, quando adicionado ao pacote, irá torná-lo maior do que o PMTU (1.400).
    6. O roteador envia uma mensagem ICMP para o Host 1 dizendo que o MTU do próximo salto agora é de 1.342. (1.400 - 58 = 1.342). O Host 1 gravará novamente essa informação.
    7. Quando o Host 1 retransmitir novamente os dados, ele usará o pacote de tamanho menor (1.342). Esse pacote não exigirá fragmentação e atravessará o túnel IPv4sec até o Host 2.

    GRE e IPv4sec juntos

    As interações mais complexas para fragmentação e PMTUD ocorrem quando o IPv4sec é usado para criptografar túneis GRE. O IPv4sec e o GRE são combinados dessa maneira porque o IPv4sec não comporta pacotes de multicast de IPv4, o que significa que você não pode executar um protocolo de roteamento dinâmico pela rede IPv4sec VPN. Os túneis GRE oferecem suporte ao multicast, portanto, um túnel GRE pode ser usado para encapsular primeiro o pacote de multicast do protocolo de roteamento dinâmico em um pacote de unicast de IPv4 de GRE, que pode então ser criptografado pelo IPv4sec. Ao fazer isso, o IPv4sec geralmente é implementado no modo de transporte no topo do GRE, porque os pares de IPv4sec e os endpoints de túnel de GRE (os roteadores) são os mesmos, e o modo de transporte salvará 20 bytes de sobrecarga de IPv4sec.

    Um caso interessante é quando um pacote IPv4 tiver sido dividido em dois fragmentos e encapsulado pelo GRE. Nesse caso, o IPv4sec verá dois pacotes de GRE + IPv4 independentes. Frequentemente, em uma configuração padrão, um desses pacotes será grande o suficiente para precisar ser fragmentado depois que for criptografado. O par de IPv4sec terá que remontar este pacote antes de descriptografar. Essa “fragmentação dupla" (uma vez antes de GRE e novamente depois de IPv4sec) no roteador remetente aumenta a latência e reduz a taxa de transferência. Além disso, a remontagem é em switch de processo, então haverá um acesso à CPU no roteador destinatário sempre que isso acontecer.

    Essa situação pode ser evitada ao definir o "ip mtu" da interface do túnel GRE baixo o suficiente para levar em conta a sobrecarga do GRE e IPv4sec (por padrão, a interface do túnel GRE "ip mtu" é definido como os bytes de sobrecarga de MTU - GRE da interface real de saída).

    Esta tabela lista os valores de MTU sugeridos para cada combinação de túnel/modo, pressupondo que a interface física de saída tenha um MTU de 1.500.

    Combinação de Túneis MTU específico necessário MTU recomendado
    GRE + IPsec (Modo de transporte) 1440 bytes 1400 bytes
    GRE + IPsec (Modo de túnel) 1420 bytes 1400 bytes

    Note: O valor de MTU de 1.400 é recomendado porque abrange as combinações de modo de GRE + IPv4sec mais comuns. Além disso, não há nenhuma desvantagem discernível em permitir um overhead de 20 ou 40 bytes adicionais. É mais fácil de lembrar e definir um valor e esse valor abrange quase todos os cenários.

    Cenário 9

    O IPv4sec é implantado por cima do GRE. O MTU físico de saída é 1.500, o IPv4sec de PMTU é 1.500 e o MTU de IPv4 de GRE é 1.476 (1.500-24 = 1.476). Por causa disso, os pacotes TCP/IPv4 serão fragmentados duas vezes, uma vez antes do GRE e uma vez depois do IPv4sec. O pacote será fragmentado antes do encapsulamento de GRE e um desses pacotes GRE será fragmentado novamente após a criptografia de IPv4sec.

    Configurar o "ip mtu 1440" (modo de transporte de IPv4sec) ou "mtu ip 1420" (modo de túnel de IPv4sec) no túnel GRE eliminaria a possibilidade de fragmentação dupla nesse cenário.

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    1. O roteador recebe um datagrama de 1.500 bytes.
    2. Antes do encapsulamento, o GRE fragmenta o pacote de 1.500 bytes em dois pedaços, 1.476 (1.500-24 = 1.476) e 44 (24 dados + 20 cabeçalhos IPv4) bytes.
    3. O GRE encapsula os fragmentos IPv4, acrescentando 24 bytes a cada pacote. Isso resulta em dois pacotes GRE + IPv4sec de 1.500 (1.476 + 24 = 1.500) e 68 (44 + 24) bytes cada.
    4. O IPv4sec criptografa os dois pacotes, adicionando 52 bytes (modo de túnel de IPv4sec) de overhead de encapsulamento para cada um, para fornecer um pacote de 1.552 bytes e um pacote de 120 bytes.
    5. O pacote IPv4sec de 1.552 bytes é fragmentado pelo roteador porque é maior do que o MTU de saída (1.500). O pacote de 1.552 bytes é dividido em partes, um pacote de 1.500 bytes e um pacote de 72 bytes (52 bytes "de payload" mais um cabeçalho de IPv4 de 20 bytes adicional para o segundo fragmento). Os três pacotes de 1.500 bytes, 72 bytes e 120 bytes são encaminhados para o par IPv4sec + GRE.
    6. O roteador destinatário remonta a dois fragmentos de IPv4sec (1.500 bytes e 72 bytes) para compor o pacote de IPv4sec de 1.552 bytes + pacote GRE original. Nada precisa ser feito para o pacote IPv4sec + GRE de 120 bytes.
    7. O IPv4sec descriptografa os pacotes IPv4sec + GRE de 1.552 bytes e 120 bytes para obter pacotes GRE de 68 bytes e de 1.500 bytes.
    8. O GRE desencapsula os pacotes GRE de 1.500 bytes e de 68 bytes para obter fragmentos de pacotes IPv4 de 1.476 bytes e 44 bytes. Esses fragmentos de pacotes IPv4 são encaminhados para o host de destino.
    9. O Host 2 remonta esses fragmentos IPv4 para obter o datagrama IPv4 original de 1.500 bytes.

    O Cenário 10 é semelhante ao Cenário 8, exceto pela existência de um link MTU mais baixo no caminho de túnel. Este é um pior cenário para o primeiro pacote enviado do Host 1 para o Host 2. Após a última etapa neste cenário, o Host 1 define o PMTU correto para o Host 2 e tudo está bem para as conexões TCP entre o Host 1 e o Host 2. Os fluxos de TCP entre o Host 1 e outros hosts (alcançáveis através do túnel IPv4sec + GRE) terão apenas que passar pelas três últimas etapas do Cenário 10.

    Nesse cenário, o comando tunnel path-mtu-discovery é configurado no túnel GRE e o bit DF é definido em pacotes TCP/IPv4 que se originam do Host 1.

    Cenário 10

    Qual termo descreve um campo no cabeçalho do pacote IPv4 usado para identificar o Protocolo de próximo nível?

    • O roteador recebe um pacote de 1.500 bytes. Este pacote é descartado pelo GRE porque o GRE não pode fragmentá-lo ou encaminhá-lo, pois o bit DF está definido, e o tamanho do pacote excede a interface de saída "ip mtu" depois de adicionar o overhead do GRE (24 bytes).
    • O roteador envia uma mensagem ICMP ao Host 1 para informar que o MTU do próximo salto agora é de 1.476 (1.500 - 24 = 1.476)
    • O Host 1 altera o PMTU do Host 2 para 1.476 e envia o menor tamanho quando retransmite o pacote. O GRE o encapsula e entrega o pacote de 1.500 bytes para o IPv4sec. O IPv4sec descarta o pacote porque o GRE copiou o bit DF (definido) do cabeçalho IPv4 interno e, com o overhead de IPv4sec (máximo de 38 bytes), o pacote é muito grande para encaminhamento fora da interface física.
    • O IPv4sec envia uma mensagem de ICMP para GRE que indica que o MTU do próximo salto é de 1.462 bytes (já que um máximo de 38 bytes será adicionado para criptografia e overhead de IPv4). O GRE registra o valor 1.438 (1.462-24) como o "ip mtu" da interface de túnel.
    • Note: Essa alteração no valor é armazenada internamente e não pode ser visualizada na saída do comando show ip interface tunnel<#>. Você verá essa alteração se acionar o comando use debug tunnel.
    • Da próxima vez que o Host 1 retransmitir o pacote de 1.476 bytes, ele será descartado pelo GRE.
    • O roteador envia uma mensagem ICMP para o Host 1, que indica que 1.438 é o MTU do próximo salto.
    • O Host 1 reduz o PMTU para o Host 2 e retransmite um pacote de 1.438 bytes. Desta vez, o GRE aceita o pacote, o encapsula e entrega ao IPv4sec para criptografia. O pacote de IPv4sec é encaminhado para o roteador intermediário e descartado porque tem uma interface de saída MTU de 1.400.
    • O roteador intermediário envia uma mensagem ICMP para o IPv4sec dizendo que o MTU do próximo salto é de 1.400. Esse valor é gravado pelo IPv4sec no valor de PMTU do SA de IPv4sec associado.
    • Quando o Host 1 retransmite o pacote de 1.438 bytes, o GRE o encapsula e entrega para o IPv4sec. O IPv4sec descarta o pacote porque mudou seu próprio PMTU para 1.400.
    • O IPv4sec envia um erro de ICMP ao GRE, indicando que o MTU do próximo salto é de 1.362, e o GRE registra o valor 1.338 internamente.
    • Quando o Host 1 retransmite o pacote original (porque não recebeu uma confirmação de recebimento), ele é descartado pelo GRE.
    • O roteador envia uma mensagem ICMP ao Host 1, indicando que o MTU do próximo salto é de 1.338 (1.362 - 24 bytes). O Host 1 reduz para 1.338 o PMTU para o Host 2.
    • O Host 1 retransmite um pacote de 1.338 bytes e dessa vez pode finalmente chegar até o fim para o Host 2.

    Outras recomendações

    Configurar o comando tunnel path-mtu-discovery em uma interface de túnel pode ajudar na interação do GRE e IPv4sec quando eles estão configurados no mesmo roteador. Lembre-se de que sem o comando tunnel path-mtu-discovery configurado, o bit DF será sempre removido do cabeçalho IPv4 do GRE. Essa configuração permite que o pacote IPv4 de GRE seja fragmentado, mesmo que o cabeçalho IPv4 dos dados encapsulados tenha o bit DF definido, o que normalmente não permitiria a fragmentação do pacote.

    Se o comando tunnel path-mtu-discovery for configurado na interface de túnel GRE, isso acontecerá.

    1. O GRE vai copiar o bit DF do cabeçalho IPv4 de dados para o cabeçalho IPv4 do GRE.
    2. Se o bit DF estiver definido no cabeçalho IPv4 do GRE e o pacote for "muito grande" após a criptografia IPv4sec para o MTU de IPv4 na interface de saída física, então o IPv4sec vai descartar o pacote e notificar ao túnel GRE que reduza seu tamanho de MTU de IPv4.
    3. O IPv4sec faz o PMTUD para seus próprios pacotes e se o PMTU do IPv4sec mudar (caso seja reduzido), então o IPv4sec não notifica imediatamente o GRE, mas quando outro pacote "muito grande" passa, ocorre o processo da etapa 2.
    4. O MTU de IPv4 do GRE agora é menor, então ele descartará quaisquer pacotes de dados IPv4 com o bit DF definido que for muito grande e enviará uma mensagem ICMP para o host remetente.

    O comando tunnel path-mtu-discovery ajuda a interface do GRE definir seu MTU de IPv4 dinamicamente, em vez de estaticamente, com o comando ip mtu. Na verdade, recomenda-se que os dois comandos sejam usados. O comando ip mtu é usado para dar espaço para o GRE e a sobrecarga do IPv4sec relativo ao MTU de IPv4 de interface física de saída. O comando tunnel path-mtu-discovery permite que o túnel GRE do MTU de IPv4 seja reduzido ainda mais se houver um link de MTU de IPv4 mais baixo no caminho entre os pares de IPv4sec.

    Aqui estão algumas ações que podem  ser feitas caso você esteja com problemas de PMTUD em uma rede com túneis GRE + IPv4sec configurados.

    Esta lista começa com a solução mais desejável.

    1. Corrija o problema do PMTUD que não está funcionando, geralmente causado por um roteador ou firewall que bloqueia o ICMP.
    2. Use o comando ip tcp adjust-mss nas interfaces de túnel para que o roteador reduza o valor de TCP MSS no pacote TCP SYN. Isso ajudará os dois hosts finais (o TCP emissor e receptor) a usar pacotes suficientemente pequenos, de modo que o PMTUD não seja necessário.
    3. Use o roteamento de política na interface de ingresso do roteador e configure um mapa de rota para liberar o bit DF no cabeçalho IPv4 de dados antes de chegar à interface de túnel GRE. Esse aumento permitirá que o pacote IPv4 de dados seja fragmentado antes do encapsulamento de GRE.
    4. Aumente o "ip mtu" da interface de túnel GRE para que seja igual ao MTU da interface de saída. Esse aumento permitirá que o pacote IPv4 de dados seja encapsulado pelo GRE sem fragmentá-lo primeiro. O pacote GRE será criptografado pelo IPv4sec e, em seguida, fragmentado para sair da interface física de saída. Nesse caso, não configure o comando tunnel path-mtu-discovery na interface do túnel GRE. Isso pode reduzir significativamente a taxa de transferência porque remontagem do pacote IPv4 no peer IPv4sec é feita no modo de switching de processos.

    Informações Relacionadas

    • Página de Suporte do IP Routing
    • Página de suporte do IPSec (protocolo de segurança IP)
    • Calculadora de overhead de IPSec (calcular o tamanho do pacote com protocolos de encapsulamento de IPSec)
    • Descoberta de MTU de caminho RFC 1191
    • Opções de descoberta de MTU RFC 1063 IP
    • Protocolo de Internet RFC 791
    • Protocolo de controle de transmissão RFC 793
    • RFC 879 - O tamanho máximo do segmento de TCP e tópicos relacionados
    • RFC 1701 Generic Routing Encapsulation (GRE)
    • Esquema 1241 A de RFC para um protocolo de encapsulamento de Internet
    • RFC 2003 IP Encapsulation within IP
    • Suporte Técnico e Documentação - Cisco Systems

    Qual termo descreve um campo no cabeçalho do pacote IPv4?

    Os campos significativos no cabeçalho IPv4 incluem: Versão - Contém um valor binário de 4 bits que identifica a versão do pacote IP. Em pacotes IPv4, esse campo é sempre definido como 0100.

    Qual o campo do cabeçalho IPv4 que identifica o protocolo de camada superior presente no pacote?

    Qual campo de cabeçalho IPv4 identifica o protocolo da camada superior transportado no pacote? Explicação: É o campo Protocolo no cabeçalho IP que identifica o protocolo da camada superior que o pacote está transportando. O campo Versão identifica a versão do IP.

    Qual a afirmativa descreve uma característica dos campos de cabeçalho do quadro de camada de enlace de dados?

    Qual afirmação descreve uma característica dos campos de cabeçalho de quadro da camada de enlace de dados? Os campos de cabeçalho do quadro Ethernet contêm os endereços de origem e destino da Camada 3. Eles incluem informações sobre os aplicativos do usuário.

    Qual valor que está contido em um campo de cabeçalho IPv4 e diminuído por cada roteador que recebe um pacote?

    Qual valor, que está contido em um campo de cabeçalho IPv4, é diminuído por cada roteador que recebe um pacote? Explicação: Quando um roteador recebe um pacote, o roteador diminuirá o campo Time-to-Live (TTL) em um.