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?