Нужно ли вручную устанавливать широковещательный адрес интерфейса?


9

Я конвертирую свои скрипты из старых сетевых инструментов:

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.

Ответы:


4

Нет необходимости устанавливать широковещательный адрес вручную, он определяется автоматически из IP-сети и маски подсети.


Мне кажется, что вы правы: «Нет необходимости устанавливать широковещательный адрес», так как он всегда может быть получен из маски сети и ip. Но на некоторых системах (я пробовал Ubuntu в контейнере Docker) может случиться, что широковещательный адрес не установлен. И поэтому мне интересно, почему такое поле существует в определении интерфейса. Другими словами, почему я $ ip addr 192.168.0.4/16 broadcast 1.2.3.4 dev <dev>вообще могу ? Адрес трансляции не должен быть полем, но всегда вычисляется, верно?
JonasVautherin

Не отвечает на вопросы: как и где используется этот широковещательный адрес? Что может сломаться, если оно не установлено?
глина

0

В моей среде, если я не установил широковещательный адрес, я могу пропинговать новый IP со всех ресурсов в локальной «физической» подсети, например, с каждого устройства, напрямую подключенного к моему коммутатору. Однако я не могу пропинговать новый IP-адрес с любого устройства, подключенного к моему беспроводному маршрутизатору, к которому подключен коммутатор. Добавляя широковещательный адрес, беспроводной маршрутизатор обнаруживает новый IP-адрес, и все устройства видят друг друга независимо от того, как они подключены. Это может зависеть от производителя оборудования, которое я использую / моей индивидуальной топологии, но действительно было необходимо.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.