cria sub-interfaces VLAN automaticamente se elas fizerem parte de uma ponte no arquivo / etc / network / interfaces

3

De acordo com o Configuração da Rede Debian documento "Se você criar a interface da VLAN apenas para colocá-la em uma ponte, existe Não é necessário definir a interface de VLAN manualmente, basta configurar a ponte e a interface de VLAN será criada automaticamente ao criar a ponte ". Eu tenho o seguinte arquivo /etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback


# mgmt network interface
auto eth0
iface eth0 inet static
        address 10.10.1.182
        netmask 255.255.255.192
        network 10.10.1.128
        broadcast 10.10.1.191
        gateway 10.10.1.190


# VLAN 100
auto br-VLAN-100
iface br-VLAN-100 inet manual
        bridge_ports eth1.100

# VLAN 200
auto br-VLAN-200
iface br-VLAN-200 inet manual
        bridge_ports eth1.200

# VLAN 300
auto br-VLAN-300
iface br-VLAN-300 inet manual
        bridge_ports eth1.300

# VLAN 400
auto br-VLAN-400
iface br-VLAN-400 inet manual
        bridge_ports eth1.400

# VLAN 500
auto br-VLAN-500
iface br-VLAN-500 inet manual
        bridge_ports eth1.500

No entanto, as interfaces eth1.100 , eth1.200 , eth1.300 , eth1.400 e eth1.500 não são criadas automaticamente. Eu inicio o sistema. Ainda preciso criar essas interfaces manualmente ou há um erro no meu arquivo /etc/network/interfaces ?

    
por Martin 26.03.2015 / 16:56

1 resposta

1

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. "

    
por 27.03.2015 / 17:49

Tags