Talvez você esteja perdendo o pacote vlan
, que possui os binários necessários para configurar as interfaces.
Para resolver isso: apt-get install vlan
. A instalação do pacote bridge-utils
também é necessária.
Longa explicação:
Você pode verificar os scripts que estão dentro do pacote vlan
com o seguinte comando:
root@host:~# dpkg -L vlan
...snip...
/usr/share/doc/vlan/changelog.Debian.gz
/usr/share/doc/vlan/howto.html
/etc
/etc/network
/etc/network/if-post-down.d
/etc/network/if-post-down.d/vlan
/etc/network/if-pre-up.d
/etc/network/if-pre-up.d/vlan
...snip...
O pacote vlan adiciona alguns scripts que manipularão as interfaces vlan durante te ifup
.
Esta é a parte do código que examinará o eth*.*
e o atualizará como interfaces 802.1q: vim /etc/network/if-pre-up.d/vlan + 18
eth*.*|bond*.*|wlan*.*|em*.*|p[0-9]*.*)
vconfig set_name_type DEV_PLUS_VID_NO_PAD
VLANID='echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//g;s/wlan
[0-9][0-9]*\.0*//g;s/em[0-9][0-9]*\.0*//g;s/p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0
-9]*\)\?\.0*//g"'
IF_VLAN_RAW_DEVICE='echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*//;s/\(bond[0-9][0-9]*\)\..*//;s/\(wlan[0-9][0-9]*\)\..*//;s/\(em[0-9][0-9]*\)\..*//;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*//"'
;;
No entanto, isso explicará apenas como as análises do Debian debian fazem a interface de /etc/network/interfaces
. Nós temos que ir mais fundo. Dando uma olhada nos scripts que o pacote bridge-utils possui ( dpkg -L bridge-utils
), vamos encontrar um que é de nosso interesse: vim /etc/network/if-pre-up.d/bridge +60
bridge_parse_ports $INTERFACES | while read i
do
for port in $i
do
# We attach and configure each port of the bridge
if [ "$MODE" = "start" ] && [ ! -d /sys/class/net/$IFACE/brif/$port ]; then
if [ -x /etc/network/if-pre-up.d/vlan ]; then
env IFACE=$port /etc/network/if-pre-up.d/vlan
fi
if [ "$IF_BRIDGE_HW" ]
then
ifconfig $port down; ifconfig $port hw ether $IF_BRIDGE_HW
fi
if [ -f /proc/sys/net/ipv6/conf/$port/disable_ipv6 ]
then
echo 1 > /proc/sys/net/ipv6/conf/$port/disable_ipv6
fi
brctl addif $IFACE $port && ifconfig $port 0.0.0.0 up
Ele examinará se as portas já são membros de uma ponte, tente sondar se for uma interface vlan chamando /etc/network/if-pre-up.d/vlan
.
Basicamente, o que estava acontecendo é que a expressão if [ -x /etc/network/if-pre-up.d/vlan ];
nunca foi avaliada. " Verdadeiro se o arquivo existir e for executável. "