Я конвертирую свои скрипты из старых сетевых инструментов:
ifconfig eth0 192.168.2.1 netmask 255.255.255.0
на iproute2:
ip link set eth0 up
ip addr add 192.168.2.1/24 dev eth0
и я замечаю, что новые команды не устанавливают широковещательный адрес по умолчанию.
Что было:
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
сейчас:
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
Я могу добавить широковещательный адрес в ip addr
команду, но мне интересно, нужен ли он вообще? Прежде всего, как и где используется этот широковещательный адрес? Что может сломаться, если оно не установлено? Во-вторых, похоже, что таблица маршрутизации по-прежнему содержит правильные записи:
# 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
Я даже не могу проверить это, потому что в настоящее время никто не отвечает ping -b
.
$ ip addr 192.168.0.4/16 broadcast 1.2.3.4 dev <dev>
вообще могу ? Адрес трансляции не должен быть полем, но всегда вычисляется, верно?В моей среде, если я не установил широковещательный адрес, я могу пропинговать новый IP со всех ресурсов в локальной «физической» подсети, например, с каждого устройства, напрямую подключенного к моему коммутатору. Однако я не могу пропинговать новый IP-адрес с любого устройства, подключенного к моему беспроводному маршрутизатору, к которому подключен коммутатор. Добавляя широковещательный адрес, беспроводной маршрутизатор обнаруживает новый IP-адрес, и все устройства видят друг друга независимо от того, как они подключены. Это может зависеть от производителя оборудования, которое я использую / моей индивидуальной топологии, но действительно было необходимо.
источник