У мене є кілька Debian Squeeze (6.0.6 на сьогоднішній день), які використовуються як маршрутизатори.
Коли посилання не працює, вони надсилають ICMP переадресації місцевим хостам. Це поведінка Debian та кількох інших за замовчуванням. Отож, коли посилання оживе, господарі не зможуть досягти його до перезавантаження.
Я не хочу, щоб перенаправлення ICMP надсилалося з цих маршрутизаторів.
Я перевірив, echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
і, sysctl -w net.ipv4.conf.all.send_redirects=0
вкладаючи net.ipv4.conf.all.send_redirects=0
в /etc/sysctl.d/local.conf
кожне з цих рішень, виставив правильне значення/proc/sys/net/ipv4/conf/all/send_redirects
Але ...
ядро продовжує надсилати перенаправлення ICMP. Навіть після перезавантаження:
$ 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
І таблиця маршрутизації локальних хостів (комп'ютери Windows) забруднена.
Я можу запобігти цьому за допомогою netfilter:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Будь-яке уявлення про те, чому звичайний метод не працює?
І як запобігти переадресації ICMP, щоб надіслати, не використовуючи netfilter?