É necessário definir manualmente o endereço de broadcast da interface?

9

Estou convertendo meus scripts de antigas ferramentas de rede:

ifconfig eth0 192.168.2.1 netmask 255.255.255.0

para iproute2:

ip link set eth0 up
ip addr add 192.168.2.1/24 dev eth0

e percebo que os novos comandos não definem o endereço de broadcast por padrão.

O que era:

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

é agora:

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

Posso adicionar o endereço de broadcast ao ip addrcomando, mas me pergunto se é necessário. Primeiro de tudo, como e onde esse endereço de transmissão é usado? O que pode quebrar se não estiver definido? Segundo, parece que a tabela de roteamento ainda possui as entradas corretas por padrão:

# 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 

Não posso nem testá-lo porque hoje em dia ninguém responde ping -b.

Powerman
fonte

Respostas:

4

Não é necessário definir o endereço de transmissão manualmente, ele é determinado automaticamente a partir da rede IP e da máscara de sub-rede.

mgorven
fonte
Parece-me que você está certo ao dizer "não há necessidade de definir o endereço de transmissão", pois sempre pode ser deduzido da máscara de rede e do ip. Mas em alguns sistemas (tentei no Ubuntu em um contêiner de docker), pode acontecer que o endereço de broadcast não esteja definido. E, portanto, estou me perguntando por que esse campo existe em uma definição de interface. Em outras palavras, por que posso $ ip addr 192.168.0.4/16 broadcast 1.2.3.4 dev <dev>? O endereço de broadcast não deve ser um campo, mas sempre calculado, certo?
JonasVautherin
Não responde às perguntas: como e onde esse endereço de transmissão é usado? O que pode quebrar se não estiver definido?
claymation
0

No meu ambiente, se eu não definir o endereço de broadcast, posso efetuar ping no novo IP de todos os recursos da sub-rede "física" local, por exemplo, todos os dispositivos diretamente conectados ao meu switch. No entanto, não consigo executar ping no novo IP de nenhum dispositivo conectado ao meu roteador sem fio, no qual o switch está conectado. Ao adicionar o endereço de transmissão, o roteador sem fio detecta o novo IP e todos os dispositivos se veem, independentemente de como estejam conectados. Isso pode depender do fabricante do equipamento que eu uso / minha topologia individual, mas era realmente necessário.

Dan
fonte