Debian Ubuntu Mint Howto Create Bridge (br0)

Having a network bridge allows you to bridge traffic under multiple devices so they can talk natively without using any special routing, iptables/firewall or other trickery.

To create your bridge you need the bridge-utils package for brctl and if you want to do things like bridge VMs that run on a tap   device you will need the uml-utilities which provides "tunctl".

Install the utilities to make our bridge

sudo apt-get install bridge-utils uml-utilities

Backup your interfaces file to your home dir

sudo cp /etc/network/interfaces ~/interfaces-`date +%Y-%m-%d-%s`

Edit your interfaces file like this:

sudo vi /etc/network/interfaces

In this case I have a public facing NIC enp0s9 which I do NOT want to bridge.

But I wanted to bridge my internal NIC enp0s8.  The first thing you do is set a line for the bridged NIC to just be manual (remove any IP config info whether static or DHCP from the NIC you want to bridge).

Disable the NIC you want to bridge

iface enp0s8 inet manual

Setup your bridge

Also be note that the br0 is a zero not an "O"

For simplicity I am going to call it br0 but it could be called almost anything. 

The key part is below in bold where I declare the br0:


iface br0 inet static
  bridge_ports enp0s8

Now of course I could use dhcp instead of static and that is where it would end (assuming you wanted to use DHCP). 

On the second line below indented you add "bridge_ports enp0s8" which defines enp0s8 as belonging to the br0 bridge.

*Note what you see below are NOT commands in the terminal but the contents of /etc/network/interfaces

eg. iface is NOT a command, it is part of the config file /etc/network/interfaces

Here is what it all looks like:

*Sometimes having the network interface itself creates issues, especially when hacking around trying to make bridging work.  Things work better if you remove any of your NICs from auto.

**Note change enp0s8 to your NIC adapter that you want to bridge.

 

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo br0
iface lo inet loopback


iface br0 inet static
  bridge_ports enp0s8
   address 192.168.1.1
   netmask 255.255.255.0
   gateway 192.168.1.1

Another basic example of what it could look like if you wanted a static IP and to receive a DHCP on your bridge:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo br0 br0:0
iface lo inet loopback


iface br0 inet static
  bridge_ports enp0s3
   address 192.168.1.1
   netmask 255.255.255.0
   gateway 192.168.1.1
iface br0:0 inet dhcp

 

Example of adding an alias to the bridge

 # interfaces(5) file used by ifup(8) and ifdown(8)
auto lo enp0s3 br0
iface lo inet loopback


iface br0 inet static
  bridge_ports enp0s3
   address 192.168.1.1
   netmask 255.255.255.0
   gateway 192.168.1.1
#below we add an alias called br0:0 but we could have called it br0:1, br0:10 etc...
auto br0:0
iface br0:0 inet static
   address 192.168.1.200
   netmask 255.255.255.0
   gateway 192.168.1.1

 

After you are done do not forget to restart your network to apply the changes or your bridge won't work.

sudo service networking restart

 

 Quick and dirty (temporary) to get a bridge up and running:

Note that this is temporary so once you restart your network or your server the bridge will no longer be there or working:

#create a bridge named br0

sudo brctl addbr br0

#add a NIC named eno1 to br0 bridge
sudo brctl addif br0 eno1

# put our bridge up or it won't work
sudo ifconfig br0 up

# bring your NIC down and then back up otherwise the bridge won't work
sudo ifconfig eno1 down
sudo ifconfig eno1 0.0.0.0 up

#use dhclient on interface br0 to get a LAN IP by DHCP

#if you are using static then you would set the IP statically / manually
sudo dhclient  -i br0


Tags:

debian, ubuntu, mint, howto, br, allows, multiple, devices, natively, routing, iptables, firewall, trickery, utils, brctl, vms, uml, utilities, provides, quot, tunctl, install, sudo, apt, interfaces, dir, cp, etc, edit, nic, enp, bridged, manual, ip, config, info, static, dhcp, disable, iface, inet, simplicity, bold, declare, bridge_ports, indented, defines, belonging, ifup, ifdown, auto, loopback, netmask, gateway,

Latest Articles

  • LXC Containers LXD How to Install and Configure Tutorial Ubuntu Debian Mint
  • GlusterFS HowTo Tutorial For Distributed Storage in Docker, Kubernetes, LXC, KVM, Proxmox
  • Ubuntu Mint audio output not working pulseaudio "pulseaudio[13710]: [pulseaudio] sink-input.c: Failed to create sink input: too many inputs per sink."
  • How To Shrink Dynamically Allocated VM QEMU KVM VMware Disk Image File
  • How To Enable Linux Swapfile Instead of Partition Ubuntu Mint Debian Centos
  • 404 Not Found [IP: 151.101.194.132 80] apt update Debian 11 Bullseye Solution The repository 'http://security.debian.org bullseye/updates Release' does not have a Release file.
  • WARNING: Can't download daily.cvd from db.local.clamav.net freshclam clamav error solution
  • (firefox:9562): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Failed to execute child process "dbus-launch" (No such file or directory) Solution
  • Debian Mint Ubuntu Which Package Provides missing top, ps and w Solution
  • Vbox Virtualbox DNS NAT Network Mode NOT working
  • Docker Tutorial HowTo Install Docker, Use and Create Docker Container Images Clustering Swarm Mode Monitoring Service Hosting Provider
  • Zoom Password Error 'That passcode was incorrect' - Solution Wrong Passcode Wrong Meeting Name
  • How To Startup and Open Remote/Local Folder/Directory in Ubuntu Linux Mint automatically upon login
  • How To Reset Windows Server Password 2019, 2022, 7, 8, 10, 11 Recovery and Removal Guide Using Linux Ubuntu Mint Debian
  • How To Create OpenVPN Server for Secure Remote Corporate Access in Linux Debian/Mint/Ubuntu with client public key authentication
  • HongKong VPS Server, Cloud, Dedicated Server, Co-Location, Datacenter The Best Guide on Hong Kong, China Internet IT/Computing
  • ssh-keygen id_rsa private key howto remove the passphrase so no password is required and no encryption is used
  • Package wget is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source. E: Package 'wget' has no installation candidate. Solution
  • tag#4 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE tag#4 Sense Key : Illegal Request [current] res 40/00:b4:98:02:00/00:00:00:00:00/40 Emask 0x10 (ATA bus error) solution
  • Wazuh Install and Configuration Howto Tutorial Guide for Monitoring Agents