Cache de rota IPV4 removido do kernel Linux >= 3.6

Cache de rota IPV4 removido do kernel Linux >= 3.6

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

informação relacionada