Com a seguinte configuração no Devuan Chimaera Linux:
/etc/network/interfaces
auto wlan0
iface wlan0 inet dhcp
pre-up /sbin/wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
post-down /usr/bin/killall -q wpa_supplicant
/etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="MySSID"
psk="redacted"
}
ctrl_interface=/run/wpa_supplicant
update_config=1
dhclient só é executado quando a interface aparece pela primeira vez.
Se eu usar ifconfig wlan0 down
, o endereço IP será retido enquanto estiver inativo e ifconfig wlan0 up
trará a interface de volta sem executar o dhclient.
Infelizmente, tenho um /etc/dhcp/dhclient-exit-hooks.d/wlan0-routes personalizado que adiciona rotas personalizadas, calculadas a partir da rota padrão fornecida pelo dhclient.
Quando desligo o wlan0, as rotas personalizadas são perdidas, como esperado.
Quando aciono o wlan0, o dhclient não é executado e, portanto, as rotas personalizadas não são adicionadas novamente.
Atualizar:
Parece haver uma diferença no comportamento de ifconfig wlan0 down
(que causou isso) e ifdown wlan0
.
root@demo:~# ifconfig wlan0 down
root@demo:~# ip addr show wlan0
9: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:0e:8e:4c:f6:a3 brd ff:ff:ff:ff:ff:ff
inet 192.168.98.196/24 brd 192.168.98.255 scope global dynamic wlan0
valid_lft 7130sec preferred_lft 7130sec
root@demo5:~# ifconfig wlan0 up
...
root@demo5:~# ifdown wlan0
root@demo5:~# ip addr show wlan0
9: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:0e:8e:4c:f6:a3 brd ff:ff:ff:ff:ff:ff
Quando eu uso ifdown wlan0
em vez de ifconfig wlan0 down
dhclient
é chamado quando eu abro a interface, e tudo funciona como deveria.
Qual é a diferença entre ifconfig wlan0 down
e ifdown wlan0
?
citando o homem:
enquanto
ifconfig faz parte do net-tools (utilitários de rede) https://net-tools.sourceforge.io/
acho que é uma ferramenta obsoleta e obsoleta substituída por iproute2 https://wiki.linuxfoundation.org/networking/iproute2
De https://access.redhat.com/solutions/27166
Qual é a diferença entre 'ifconfig up eth0' e 'ifup eth0'?
Resolução:
Um comando "ifconfig" e um comando "ifup" ou "ifdown" podem ativar interfaces de rede. "ifconfig" controla diretamente as interfaces de rede, porém "ifup" ou "ifdown" executa os scripts "/etc/sysconfig/network-scripts/ifup-" ou "ifdown-". Os scripts usam um comando ip.
Os comandos "ifconfig" e "ip" usam ioctl() para ativar ou desativar as interfaces de rede. "ifconfig" sinaliza as interfaces de rede 'IFF_UP | IFF_RUNNING', porém "ip" sinaliza que 'IFF_UP'.
Um "ifconfig up eth0" ativa eth0, mas não configura endereços IP, no entanto, um "ifup eth0" configura endereços IP ou outras opções baseadas em um ifcfg-eth0, porque o "ifup" usa um script "ifup-eth*".
O comando ifup também configurará quaisquer rotas estáticas configuradas no diretório network-scripts. O comando ifconfig não.