Create Linux Bridge on VLAN Interface in Debian 12 | 11 | 10

How can I create a Linux Bridge on Debian Linux system? How can one create a Linux bridge on top of a VLAN interface in Debian / Ubuntu system?. Our recent article covered the creation of a VLAN interface on a Debian System. As a continuation, we show you how a Linux bridge can be created on top of a VLAN interface.

For those new to Linux networking, a Linux bridge behaves like a typical network switch. It forwards packets between interfaces connected to it. The most common use case is forwarding packets between Virtual Machines in a Virtualized Infrastructure. A Linux bridge also supports STP, VLAN filter, and multicast snooping.

Create Linux Bridge on Debian 12 | 11 | 10

Before you can create bridge interfaces on Debian Linux you must install bridge-utils package:

sudo apt update && sudo apt install bridge-utils -y

To check active interfaces on your server run the command:

$ ip -f inet a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
6: eno1.100@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 172.20.20.10/28 brd 172.20.20.15 scope global eno1.100
       valid_lft forever preferred_lft forever
7: eno1.503@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 172.20.25.10/24 brd 172.20.25.255 scope global eno1.503
       valid_lft forever preferred_lft forever

Basic Example: Creating a Linux Bridge without VLAN

if you want to create a Linux bridge br1 on eno1 interface without any VLANs you’ll have settings like below.

$ sudo vim  /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback

#Bridge br1 network configurations
auto br1
iface br1 inet static
	address 172.20.25.10
	broadcast 172.20.25.255
	netmask 255.255.255.0
	gateway 172.20.25.1
	bridge_ports eno1
	bridge_stp off       # disable Spanning Tree Protocol
        bridge_waitport 0    # no delay before a port becomes available
        bridge_fd 0          # no forwarding delay

When using DHCP configurations will be modified to:

auto br1
 
# Bridge setup using DHCP
 iface br1 inet dhcp
    bridge_ports eno1

Then restart the network-manager service:

sudo systemctl restart network-manager

Check service status:

systemctl status network-manager

Confirm IP settings:

$ ip a s
$ ip r

Advanced Example: Creating Linux bridge on VLAN interface

Make sure the vlan package is installed on the system:

sudo apt install vlan

If the host is a hypervisor consider adding below sysctl configurations:

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_filter=0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter=2" | sudo tee -a /etc/sysctl.conf

Load configurations:

$ sudo sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.rp_filter = 2

Then modify configurations accordingly:

$ sudo vim /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback

# eno1 interface
auto eno1
iface eno1 inet manual

# VLAN 100
auto eno1.100
iface eno1.100 inet manual

# VLAN 503
auto eno1.503
iface eno1.503 inet manual

# Bridge br0
auto br0
iface br0 inet static
  bridge_ports eno1.100 
  bridge_stp off       # disable Spanning Tree Protocol
  bridge_waitport 0    # no delay before a port becomes available
  bridge_fd 0          # no forwarding delay
  address 172.21.200.2
  netmask 255.255.255.0
  gateway 172.21.200.1
  # dns-* options are implemented by the resolvconf package, if installed
  dns-nameservers 8.8.8.8 8.8.4.4

# Bridge br1
auto br1
iface br1 inet static
  bridge_ports eno1.101 
  bridge_stp off       # disable Spanning Tree Protocol
  bridge_waitport 0    # no delay before a port becomes available
  bridge_fd 0          # no forwarding delay
  address 172.20.20.1
  netmask 255.255.255.0

Reboot the server:

sudo reboot

Check bridges created once the system is rebooted:

$ sudo brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.e0db55fe5b03	no		eno1.100
br1		8000.e0db55fe5b03	no		eno1.503

You can also confirm IP configurations:

$ ip -f inet a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 172.21.200.2/29 brd 172.21.200.255 scope global br0
       valid_lft forever preferred_lft forever
9: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 172.20.20.1/24 brd 172.20.20.255 scope global br1
       valid_lft forever preferred_lft forever

You should now be able to create Virtual Machines on the bridges created. The IP configurations used need to be modified to suit the settings in your environment.

More guides:

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

AlmaLinux OS is a Linux operating systemd forked from RHEL by the team behind CloudLinux. It is meant to be […]

I recently experienced the error Failed creating Qemu driver: exec: “qemu-system-x86_64”: executable file not found in $PATH while trying to […]

In a Linux file system, files are stored within a single directory structure, called a virtual directory. The virtual directory […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.