12

I am trying to setup vlans on my eth0 network card. The following are the steps that I've taken:

  1. Install vlan with sudo apt-get install vlan
  2. Edit /etc/network/interfaces in vi by adding:

    auto eth0.100
    iface eth0.100 inet dhcp
    
  3. Restarted networking and/or restarted Ubuntu

  4. Ran ifconfig

I don't see the eth0.100 listed, I'm not sure what I am doing wrong.

I can add vlans using vconfig but they don't stay after a reboot.

2 Answers 2

19

First you must install vlan

sudo apt-get install vlan

load kernel module

sudo modprobe 8021q

Create a new interface that is a member of a specific VLAN, VLAN id 100

We use the physical interface eth0 in this example. This command will add an additional interface next to the interfaces which have been configured already

sudo vconfig add eth0 100

Assign an address to the new interface:

sudo ip addr add 10.0.0.1/24 dev eth0.100

To make this setup permanent. Add the module to the kernel on boot

sudo bash -c 'echo "8021q" >> /etc/modules'

Create the interface and make it available when the system boots. Add the following lines to /etc/network/interfaces

auto eth0.100
iface eth0.100 inet dhcp
    vlan-raw-device eth0
4
  • Why does the new interface need an IP assigned to it? Could this step be skipped and the interface pickup a dynamic IP on the next boot?
    – hammertime
    Aug 13, 2015 at 11:20
  • Yes, can be skiped. This is only example. At the end on answer you have config for eth0.100 for you.
    – 2707974
    Aug 13, 2015 at 11:24
  • You might need the universe repository to install vlan, but note that vconfig is deprecated now anyway.
    – mwfearnley
    May 5, 2021 at 16:10
  • I have added an answer explaining the 'modern day' solution using ip link and netplan.
    – zwets
    May 10, 2022 at 22:08
0

The modern way to create a VLAN interface is using ip link from iproute2. Assuming you want to run the VLAN over interface eno1:

sudo ip link add link eno1 name vlan100 type vlan id 100

Now optionally give it an address:

sudo ip address add 10.0.0.100/24 dev vlan100

And bring it up:

sudo ip link set vlan100 up

To make this permanent, define the vlan interface in /etc/netplan/*. This will look like:

network:
    version: 2
    ethernets:
        eno1:
            ... eno1 config ...
    vlans:
        vlan100:
            id: 100
            link: eno1
            addresses: [10.0.0.100/24]

Detailed documentation is in the netplan reference.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .