Ao passar pelo log de alterações do kernel Linux 3.6, me deparei com um e-mail (http://article.gmane.org/gmane.linux.network/238256) de David S Miller sobre a remoção do cache de roteamento para IPV4 no kernel. Estou me perguntando como funcionaria agora o redirecionamento ICMP e os recursos PMTU? O Mail também menciona que as rotas seriam pré-armazenadas em cache, mas várias rotas, dependendo da máscara de sub-rede, podem ter várias entradas possíveis. Como isso funcionaria? alguém tem alguma ideia sobre isso?
Obrigado.
Responder1
Basta ler os patches reais.
Em vez de armazenar redirecionamentos PMTU e ICMP no cache de roteamento, eles são armazenados em uma estrutura de "exceção de roteamento" que faz parte da entrada de roteamento. E para qualquer (origem, interface de entrada, tos, destino, marca), há apenas uma entrada de rota sendo selecionada. portanto, as exceções de roteamento sempre serão usadas, desde que a entrada da rota não seja alterada.
Responder2
Você pode obter informações detalhadas sobre o caminho MTU para um host da seguinte maneira. Observe que as informações do cache devem ser preenchidas primeiro. Este teste foi realizado com um kernel Ubuntu 3.13. Primeiro valido o cache atual de um host, não me comuniquei com ele e não tenho informações:
johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0 src 192.168.1.22
cache
Em seguida, tento fazer ping com um pacote maior que o MTU (mas não tão grande que o pacote precise ser fragmentado pelo sistema operacional). Você pode perder os primeiros pings durante o teste; deverá ver a mensagem Frag necessário.
johnf@mtutest:~$ ping -s 1460 192.168.3.48 -c 10
PING 192.168.3.48 (192.168.3.48) 1460(1488) bytes of data.
From 192.168.2.0 icmp_seq=1 Frag needed and DF set (mtu = 1220)
1468 bytes from 192.168.2.0: icmp_seq=2 ttl=252 time=1973 ms
[...]
--- 192.168.3.48 ping statistics ---
10 packets transmitted, 9 received, +1 errors, 10% packet loss, time 9016ms
rtt min/avg/max/mdev = 95.681/516.815/1973.697/568.969 ms, pipe 2
Depois de receber a mensagem ICMP MTU Exceeded, o kernel deverá ajustar seu cache de rota para refletir as limitações do caminho:
johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0 src 192.168.1.22
cache expires 588sec mtu 1220