Contents

Creating Bridges and VLANs with Netplan

In this post, It will be demonstrated how to create Bridges and VLANs to be used on KVM. In my other post , I already implemented VLANs using Openvswitch.

Physical host that I used on this lab is Linux Mint 20 (Ulyana).

Netplan is a utility for easily configuring networking on a GNU/Linux systems. You can easily create network configuration with YAML syntax. Netplan reads network configuration from /etc/netplan/*.yaml which are written by administrators, installers, cloud image instantiations, or other OS deployments.

Prerequisite:

Before starting any configuration you have to load the module 8021q, if it is not loaded. For Linux Mint 20 it is loaded automatically on boot.

Creating a netplan configuration File:

Create a file in the /etc/netplan/bridge.yaml and copy the content below. Of course you can change the configuration based on your needs.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp5s0:
      dhcp4: no
  bridges:
    VSW0:
      interfaces: [ enp5s0 ]
      dhcp4: false
      dhcp6: false
      parameters:
        forward-delay: 0
        stp: true
    br10:
      interfaces: [ vlan.10 ]
      dhcp4: false
      dhcp6: false
      addresses: []
      parameters:
        forward-delay: 0
        stp: true
    br20:
      interfaces: [ vlan.20 ]
      dhcp4: false
      dhcp6: false
      addresses: []
      parameters:
        forward-delay: 0
        stp: false
    br100:
      interfaces: [ vlan.100 ]
      dhcp4: false
      dhcp6: false
      addresses: []
      parameters:
        forward-delay: 0
        stp: true
  vlans:
    vlan.10:
      id: 10
      link: enp5s0
      dhcp4: false
      dhcp6: false
    vlan.20:
      id: 20
      link: enp5s0
      dhcp4: false
      dhcp6: false
    vlan.100:
      id: 100
      link: enp5s0
      dhcp4: false
      dhcp6: false

After netplan config created , syntax check should be made before apply the configuration.

gokay@tesla:~$ sudo netplan try
Please carefully review the configuration and use 'netplan apply' directly.
gokay@tesla:~$ sudo netplan apply

Once the configuration applied, bridges and vlan interfaces should be created. You can check it with the utility brctl.

gokay@tesla:~$ sudo brctl show
bridge name	bridge id		STP enabled	interfaces
VSW0		8000.244bfe0502f8	yes		enp5s0
br10		8000.244bfe0502f8	yes		vlan.10
br100		8000.244bfe0502f8	yes		vlan.100
							vnet0
br20		8000.244bfe0502f8	no		vlan.20

You can simply see the Figure below to understand easily how our physical host looks like now. In this post, you can ignore the Physical switch and Router part, as we did not do any Physical switch and Router configuration for Intervlan routing.

/natro/netplanVLAN.png

Once netplan configuration has been completed, you can check on virt-manager if you are able to see the bridges(VLANs)

/natro/KVM_Vlans_netplan1.png

Experiment


On the VM, I just ping the IP that does not allocated by any machine to create a Broadcast package to sniff via Wireshark.

I pinged to 10.5.100.23 from 10.5.100.10(VM) .

/natro/wireshark_vlan_netplan_2-1024x171.png

As you see in the figure above, You can see the frame 802.1q section. Which means vlan configured successfully.