Saya mengubah skrip saya dari alat-alat lama:
ifconfig eth0 192.168.2.1 netmask 255.255.255.0
untuk iproute2:
ip link set eth0 up
ip addr add 192.168.2.1/24 dev eth0
dan saya perhatikan bahwa perintah baru tidak menetapkan alamat broadcast secara default.
Apa itu:
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 1c:6f:65:c5:d6:d7 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global eth0
sekarang:
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 1c:6f:65:c5:d6:d7 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 scope global eth0
Saya dapat menambahkan alamat broadcast ke ip addr
perintah, tapi saya ingin tahu apakah itu diperlukan sama sekali? Pertama-tama, bagaimana dan di mana alamat siaran ini digunakan? Apa yang mungkin pecah jika tidak disetel? Kedua, sepertinya tabel routing masih memiliki entri yang benar secara default:
# ip route show table local dev eth0 scope link
broadcast 192.168.2.0 proto kernel src 192.168.2.1
broadcast 192.168.2.255 proto kernel src 192.168.2.1
Saya bahkan tidak bisa mengujinya karena saat ini tidak ada yang menjawab ping -b
.
$ ip addr 192.168.0.4/16 broadcast 1.2.3.4 dev <dev>
? Alamat siaran tidak boleh berupa bidang, tetapi selalu dihitung, bukan?Dalam lingkungan saya jika saya tidak mengatur alamat broadcast saya dapat melakukan ping IP baru dari semua sumber daya dalam subnet "fisik" lokal, misalnya setiap perangkat yang terhubung langsung ke switch saya. Namun, saya tidak bisa melakukan ping IP baru dari perangkat apa pun yang terhubung ke router nirkabel saya, yang dicolokkan ke sakelar. Dengan menambahkan alamat broadcast, router nirkabel mendeteksi IP baru dan semua perangkat saling melihat terlepas dari bagaimana mereka terhubung. Ini mungkin tergantung pada produsen peralatan yang saya gunakan / topologi pribadi saya, tetapi memang perlu.
sumber