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 addr
comando, 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
.
$ 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?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.
fonte