Saya memiliki beberapa Debian Squeeze (6.0.6 yang terkini) yang digunakan sebagai router.
Ketika sebuah tautan sedang down, mereka mengirim pengalihan ICMP ke host lokal. Ini adalah perilaku default Debian dan beberapa lainnya. Jadi, sekali tautan hidup kembali, tuan rumah tidak dapat mencapainya sampai reboot.
Saya tidak ingin ada pengalihan ICMP untuk 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 memasukkan net.ipv4.conf.all.send_redirects=0
ke dalam /etc/sysctl.d/local.conf
Setiap solusi tersebut memberikan nilai yang benar/proc/sys/net/ipv4/conf/all/send_redirects
Tapi ...
kernel terus mengirim pengalihan ICMP. 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 routing 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 mencegah pengalihan ICMP untuk dikirim, tanpa menggunakan netfilter?
sumber
all
tidak menimpa, ia melakukan operasi bitwise. Lihat jawaban ini sekitarall
vsdefault
.send_redirects
adalahOR
parameter, jadi pengaturanall.send_redirects
ke 0 akan dikalahkan oleh pengaturan antarmuka.