segunda-feira, 2 de abril de 2007

VPN Cisco e MTU

O protocolo IP Path MTU Discovery, definido no RFC 1191, permite que um host descubra dinamicamente qual o maior MTU em que ele pode enviar dados sem ter que efetuar a fragmentação dos pacotes (e que por consequência diminui a quantidade de pacotes enviados). Além disso, este algoritmo é útil caso o MTU de um caminho varie, por exemplo devido ao chaveamente para um link secundário de MTU diferente, permitindo assim que os hosts das pontas "negociem" um novo tamanho máximo de pacote.

O padrão para interfaces Ethernet é de 1518 bytes já contando os cabeçalhos de camada 2. No entanto quando se usa um túnel VPN esse MTU diminui devido aos cabeçalhos adicionais de criptografia (este MTU pode variar dependendo do algoritmo utilizado).

Quando um roteador Cisco tenta passar um pacote maior do que o túnel VPN permite ele manda uma mensagem ICMP unreachable para o originador do pacote informando qual o novo MTU. Portanto é importante permitir que o roteador envie as mensagens de ICMP unreachable com o seguinte comando nas interfaces inside e outside do túnel VPN.

conf t
int fas 0/0
ip unreachables
int fas 0/1
ip unreachables

Para descobrir qual o maior MTU permitido em um determinado caminho podem ser utilizados os seguintes comandos:

traceroute -M -I icmp dest_ip_addr

ou

tracepath -n dest_ip_addr

Maiores informações em:

http://www.cisco.com/en/US/products/ps6350/products_configuration_guide_chapter09186a0080435c3e.html#wp1049788

http://www.cisco.com/en/US/products/ps6350/products_configuration_guide_chapter09186a0080435c3e.html#wp1051721

Um comentário:

Unknown disse...

Nesses casos não se pode esquecer de limitar o número de mensagens icmp unreachables:
ip icmp rate-limit unreachable.
Uma outra solução é usar ip tcp adjust-mss na interface.