Ran into a situation recently where I needed to set up provider_vlan within OpenStack as well as configure the VLANs on the underlying hosts. This being the first time I’ve done this in Ubuntu it needs to be written down:
apt-get update && apt-get install -y vlan
modprobe 8021q
vconfig add bond0 100
vconfig add bond0 200
vconfig add bond0 300
echo "
auto bond0.200
iface bond0.200 inet static
address 192.168.100.4
netmask 255.255.255.0
vlan_raw_device bond0
auto bond0.300
iface bond0.300 inet static
address 10.0.1.4
netmask 255.255.255.0
vlan_raw_device bond0
" | sudo tee -a /etc/network/interfaces
After that, restarting networking should bring everything in line.