Linux invia sempre il reindirizzamento ICMP


14

Ho diversi Debian Squeeze (6.0.6 aggiornati) usati come router.
Quando un collegamento non è attivo, inviano reindirizzamenti ICMP agli host locali. Questo è il comportamento predefinito di Debian e molti altri. Quindi, una volta che il collegamento torna in vita, gli host non possono raggiungerlo fino al riavvio.

Non voglio che nessun reindirizzamento ICMP venga inviato da quei router.

Ho testato echo 0 > /proc/sys/net/ipv4/conf/all/send_redirectse, sysctl -w net.ipv4.conf.all.send_redirects=0inserendo net.ipv4.conf.all.send_redirects=0in /etc/sysctl.d/local.conf
ognuna di quelle soluzioni, ho inserito il giusto valore/proc/sys/net/ipv4/conf/all/send_redirects

Ma ...
il kernel continua a inviare reindirizzamenti ICMP. Anche dopo un riavvio:

$ tcpdump -n -i eth0
00:56:17.186995 IP 192.168.0.254 > 192.168.0.100: ICMP redirect 10.10.13.102 to host 192.168.0.1, length 68

E la tabella di routing degli host locali (computer Windows) è inquinata.

Posso impedirlo con netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP

Qualche idea sul perché il solito metodo non funziona?
E come impedire che il reindirizzamento ICMP venga inviato, senza utilizzare netfilter?

Risposte:


14

Il comando giusto è: echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Perché è necessario avere 0 su 'all' e su 'nome_interfaccia' per disabilitarlo.

In /etc/sysctl.confun file simile o simile, devi impostare 'all' + 'default' (o 'all' + 'interface' ma l'interfaccia potrebbe non esistere già quando questo file viene elaborato).


5
Qual è il punto della directory "all" allora? Ho avuto la vaga impressione, avrebbe sovrascritto i valori di tutte le altre voci?
Elrond,

@Elrond, allnon sovrascrive, esegue operazioni bit per bit. Vedere questa risposta su allvs.default . send_redirectsè un ORparametro, quindi l'impostazione all.send_redirectssu 0 verrà superata dall'impostazione dell'interfaccia.
Leif Arne Storset,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.