According to Debian NetworkConfiguration document If you create the VLAN interface only to put it into a bridge, there is no need to define the VLAN interface manually. Just config the bridge, and the VLAN interface will be created automatically when creating the bridge. I have a following /etc/network/interfaces file:# The loopback network interfaceauto loiface lo inet loopback# mgmt network interfaceauto eth0iface 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 100auto br-VLAN-100iface br-VLAN-100 inet manual        bridge_ports eth1.100# VLAN 200auto br-VLAN-200iface br-VLAN-200 inet manual        bridge_ports eth1.200# VLAN 300auto br-VLAN-300iface br-VLAN-300 inet manual        bridge_ports eth1.300# VLAN 400auto br-VLAN-400iface br-VLAN-400 inet manual        bridge_ports eth1.400# VLAN 500auto br-VLAN-500iface br-VLAN-500 inet manual        bridge_ports eth1.500However, interfaces eth1.100, eth1.200, eth1.300, eth1.400 and eth1.500 are not automatically created one I start the system. Do I still need to create those interfaces manually or is there a mistake in my /etc/network/interfaces file?
create VLAN sub-interfaces automatically if they are part of a bridge in /etc/network/interfaces file
debian
Maybe you are missing the vlan package, that have the binaries required to configure the interfaces.To solve this:  apt-get install vlan. Installing the bridge-utils package is also needed.Long explanation:You could check out the scripts that lies inside the vlan package with the following command: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...The vlan package adds some scripts that will handle vlan interfaces during te ifup. This is the piece of code that will probe the eth*.* and bring it up as 802.1q interfaces: 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]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/`  ;;However, this will only explain how debian probes interfaces from /etc/network/interfaces. We have to go deeper. Taking a look at the scripts the package bridge-utils have(dpkg -L bridge-utils) we will find one that is of our interest: vim /etc/network/if-pre-up.d/bridge +60bridge_parse_ports $INTERFACES | while read ido  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 upIt will probe if the ports are already members of a bridge, try to probe if it is a vlan interface by calling /etc/network/if-pre-up.d/vlan.Basically, what was happening is that the if [ -x /etc/network/if-pre-up.d/vlan ]; expression was never evaluated. True if FILE exists and is executable.