Hah, descobriu como fazer isso. Eu não tenho certeza se isso funcionará igualmente em versões mais antigas do Ubuntu (eu estou rodando 14.04), mas aqui está como eu pude ver os comandos usando ifup(8)
:
ifup -anv
que nas opções de linha de comando longa é mais legível como:
ifup --all --no-act --verbose
Isso deve ler seu /etc/network/interfaces
e mostrar o que está acontecendo.
No entanto, obtive um resultado mais completo executando:
ifup -nv --force $(ifquery -l)
Como consegui executar isso a partir de uma conta de usuário sem privilégios, estou certo de que isso não tenta nenhuma ação estranha, por isso não se deixe enganar pela opção --force
.
Se você quiser testar com outro arquivo interfaces
, supondo que você tenha o caminho desse arquivo em uma variável de ambiente ENIFACES
, isso deve funcionar:
ifup -nv --force -i "$ENIFACES" $(ifquery -l -i "$ENIFACES")
Veja um exemplo interfaces
:
$ cat testif
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.16.33
netmask 255.255.255.0
gateway 192.168.16.254
dns-domain mydomain.net
dns-nameservers 8.8.8.8
dns-search mydomain.net sub.mydomain.net myotherdomain.com
auto _br1
iface _br1 inet static
address 10.1.0.0
netmask 255.255.0.0
pre-up brctl addbr $IFACE
post-up route add -host 192.168.16.1 $IFACE
post-down brctl delbr $IFACE
auto _br2
iface _br2 inet static
address 10.1.0.0
netmask 255.255.0.0
pre-up brctl addbr $IFACE
post-up route add -host 192.168.16.2 $IFACE
post-down brctl delbr $IFACE
iface eth0 inet6 static
address 2000:dead:beef:4::1234:5678
gateway 2000:dead:beef:0::1
netmask 64
... e a saída produzida:
Configuring interface lo=lo (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts --verbose /etc/network/if-up.d
Configuring interface lo=lo (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts --verbose /etc/network/if-up.d
Configuring interface eth0=eth0 (inet)
run-parts --verbose /etc/network/if-pre-up.d
ip addr add 192.168.16.33/255.255.255.0 broadcast 192.168.16.255 dev eth0 label eth0
ip link set dev eth0 up
ip route add default via 192.168.16.254 dev eth0
run-parts --verbose /etc/network/if-up.d
Configuring interface eth0=eth0 (inet6)
run-parts --verbose /etc/network/if-pre-up.d
modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
sysctl -q -e -w net.ipv6.conf.eth0.autoconf=0
ip link set dev eth0 up
ip -6 addr add 2000:dead:beef:4::1234:5678/64 dev eth0
ip -6 route add default via 2000:dead:beef:0::1 dev eth0
/lib/ifupdown/settle-dad.sh
run-parts --verbose /etc/network/if-up.d
Configuring interface _br1=_br1 (inet)
brctl addbr $IFACE
run-parts --verbose /etc/network/if-pre-up.d
ip addr add 10.1.0.0/255.255.0.0 broadcast 10.1.255.255 dev _br1 label _br1
ip link set dev _br1 up
route add -host 192.168.16.1 $IFACE
run-parts --verbose /etc/network/if-up.d
Configuring interface _br2=_br2 (inet)
brctl addbr $IFACE
run-parts --verbose /etc/network/if-pre-up.d
ip addr add 10.1.0.0/255.255.0.0 broadcast 10.1.255.255 dev _br2 label _br2
ip link set dev _br2 up
route add -host 192.168.16.2 $IFACE
run-parts --verbose /etc/network/if-up.d