≡ Menu

How To Setup Bridge (br0) Network on Ubuntu Linux 14.04 and 16.04 LTS

I am a new Ubuntu Linux 16.04 LTS user. How do I setup a network bridge on the host server powered by Ubuntu 14.04 LTS or 16.04 LTS operating system?

A Bridged networking is nothing but a simple technique to connect to the outside network through the physical interface. It is useful for LXC/KVM/Xen/Containers virtualization and other virtual interfaces. The virtual interfaces appear as regular hosts to the rest of the network. In this tutorial I will explain how to configure a Linux bridge with bridge-utils (brctl) command line utility on Ubuntu server.

Our sample bridged networking

Fig.01: Sample Ubuntu Bridged Networking Setup For Kvm/Xen/LXC Containers (br0)

Fig.01: Sample Ubuntu Bridged Networking Setup For Kvm/Xen/LXC Containers (br0)


In this example eth0 and eth1 is the physical network interface. eth0 connected to the LAN and eth1 is attached to the upstream ISP router/Internet.

Install bridge-utils

Type the following apt-get command to install the bridge-utils:
$ sudo apt-get install bridge-utils
OR
$ sudo apt install bridge-utils
Sample outputs:

Fig.02: Ubuntu Linux install bridge-utils package

Fig.02: Ubuntu Linux install bridge-utils package

Creating a network bridge on the Ubuntu server

Edit /etc/network/interfaces using a text editor such as nano or vi, enter:
$ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2016
$ sudo vi /etc/network/interfaces

Let us setup eth1 and map it to br1, enter (delete or comment out all eth1 entries):

# br1 setup with static wan IPv4 with ISP router as gateway
auto br1
iface br1 inet static
        address 208.43.222.51
        network 255.255.255.248
        netmask 255.255.255.0
        broadcast 208.43.222.55
        gateway 208.43.222.49
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

To setup eth0 and map it to br0, enter (delete or comment out all eth1 entries):

auto br0
iface br0 inet static
        address 10.18.44.26
        netmask 255.255.255.192
        broadcast 10.18.44.63
        dns-nameservers 10.0.80.11 10.0.80.12
        # set static route for LAN 
	post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1
	post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

A note about br0 and DHCP

DHCP config options:

auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

Save and close the file.

Restart the server or networking service

You need to reboot the server or type the following command to restart the networking service (this may not work on SSH based session):
$ sudo systemctl restart networking
If you are using Ubuntu 14.04 LTS or older not systemd based system, enter:
$ sudo /etc/init.d/restart networking

Verify connectivity

Use the ping/ip commands to verify that both LAN and WAN interfaces are reachable:
# See br0 and br1
ip a show
# See routing info
ip r
# ping public site
ping -c 2 cyberciti.biz
# ping lan server
ping -c 2 10.0.80.12

Sample outputs:

Fig.03: Verify Bridging Ethernet Connections

Fig.03: Verify Bridging Ethernet Connections


Now, you can configure XEN/KVM/LXC containers to use br0 and br1 to reach directly to the internet or private lan. No need to setup special routing or iptables SNAT rules.

Share this tutorial on:
{ 1 comment… add one }
  • ThanksATon July 13, 2016, 3:14 pm

    Worked perfectly after setting my Juniper network switch configuration:

    # set chassis aggregated-devices ethernet device-count {number} <-- (This will be a number between 1 and 111.)
    # set interfaces ae0 aggregated-ether-options link-speed 1g
    # set interfaces ae0 aggregated-ether-options lacp active
    # set interfaces ae0 aggregated-ether-options lacp periodic fast
    # set interfaces ae0 unit 0 family ethernet-switching vlan members {vlan id}
    # set interfaces ge-0/0/1 ether-options 802.3ad ae0 <-- (Using 'ae0' for this example. Use the next available ae interface number.)
    # set interfaces ge-0/0/2 ether-options 802.3ad ae0

    Thanks a ton.

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , ,