Saya memiliki beberapa Debian Squeeze (6.0.6 up to date) yang digunakan sebagai router.
Ketika sebuah link sedang down, mereka mengirimkan ICMP redirect ke host lokal. Ini adalah perilaku default Debian dan beberapa lainnya. Jadi, setelah tautan hidup kembali, host tidak dapat menjangkaunya sampai reboot.
Saya tidak ingin pengalihan ICMP apa pun dikirim dari router tersebut.
Saya menguji echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
dan sysctl -w net.ipv4.conf.all.send_redirects=0
dan letakkan net.ipv4.conf.all.send_redirects=0
ke /etc/sysctl.d/local.conf
Setiap solusi tersebut memberikan nilai yang tepat ke /proc/sys/net/ipv4/conf/all/send_redirects
Tapi…
kernel terus mengirimkan ICMP redirect. Bahkan setelah reboot :
$ 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
Dan tabel perutean host lokal (komputer Windows) tercemar.
Saya dapat mencegah ini dengan netfilter :iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP
Adakah yang tahu mengapa metode yang biasa tidak berhasil ?
Dan bagaimana cara mencegah ICMP redirect agar tidak terkirim, tanpa menggunakan netfilter ?
Jawaban yang Diterima:
Perintah yang benar adalah :echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
Karena Anda harus memiliki 0 pada 'all' dan pada 'interface_name' untuk menonaktifkannya.
Ke dalam /etc/sysctl.conf
atau file serupa, Anda harus mengatur 'semua' + 'default' (atau 'semua' + 'antarmuka' tetapi antarmuka mungkin belum ada saat file ini diproses).