This article shows how to configure a network interface as an IEEE 802.1q VLAN trunk.
First, install the vlan package. This will give you support for vlans in the /etc/network/interfaces file.
Edit the /etc/network/interfaces file:
auto eth0.8 iface eth0.8 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1
With the vlan package installed, ifup will find the trailing .8 in eth0.8 and will create a vlan interface with vid 8 over eth0.
Alternativly with vlan8 over eth0:
auto vlan8 iface vlan8 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 vlan-raw-device eth0
A static ip address was used in the examples shown above, but dhcp can be used as well.
Example with bridges associated with VLANs over bonding with differing MTUs on the various VLANs
This serves as an example of some of the more complicated networking possible. Particularly, this would work well for a hypervisor attached to a dedicated storage VLAN. Less complicated implementations can be achieved by merely excising those parts inapplicable.
auto lo iface lo inet loopback auto bond0 iface bond0 inet manual bond_slaves eth0 eth1 bond_mode 802.3ad bond_miimon 100 bond_xmit_hash_policy layer2+3 post-up ip link set dev bond0 mtu 9000 iface bond0.1 inet manual auto br1 iface br1 inet static address 192.168.1.196 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports bond0.1 bridge_stp off bridge_fd 0.0 post-up ip link set dev bond0.1 mtu 1500 iface bond0.10 inet manual auto br10 iface br10 inet static address 192.168.10.1 netmask 255.255.255.0 bridge_ports bond0.10 bridge_stp off bridge_fd 0.0