6.2.2. Create a Network Bridge
To create a network bridge, create a file in the /etc/sysconfig/network-scripts/
directory called ifcfg-brN
, replacing N
with the number for the interface, such as 0
.
The contents of the file is similar to whatever type of interface is getting bridged to, such as an Ethernet interface. The differences in this example are as follows:
The DEVICE
directive is given an interface name as its argument in the format brN
, where N
is replaced with the number of the interface.
The TYPE
directive is given an argument Bridge
or Ethernet
. This directive determines the device type and the argument is case sensitive.
The bridge interface configuration file is given an IP
address whereas the physical interface configuration file must only have a MAC address (see below).
An extra directive, DELAY=0
, is added to prevent the bridge from waiting while it monitors traffic, learns where hosts are located, and builds a table of MAC addresses on which to base its filtering decisions. The default delay of 30 seconds is not needed if no routing loops are possible.
The NM_CONTROLLED=no
should be added to the Ethernet interface to prevent NetworkManager from altering the file. It can also be added to the bridge configuration file.
The following is a sample bridge interface configuration file using a static IP
address:
Example 6.1. Sample ifcfg-br0 Interface Configuration File
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0
To complete the bridge another interface is created, or an existing interface is modified, and pointed to the bridge interface. The following is a sample Ethernet interface configuration file pointing to a bridge interface. Configure your physical interface in /etc/sysconfig/network-scripts/ifcfg-ethX
, where X
is a unique number corresponding to a specific interface, as follows:
Example 6.2. Sample ifcfg-ethX Interface Configuration File
DEVICE=ethX
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
NM_CONTROLLED=no
BRIDGE=br0
For the DEVICE
directive, almost any interface name could be used as it does not determine the device type. TYPE=Ethernet
is not strictly required. If the TYPE
directive is not set, the device is treated as an Ethernet device (unless it's name explicitly matches a different interface configuration file.)
If you are configuring bridging on a remote host, and you are connected to that host over the physical NIC you are configuring, please consider the implications of losing connectivity before proceeding. You will lose connectivity when restarting the service and may not be able to regain connectivity if any errors have been made. Console, or out-of-band access is advised.
Restart the networking service in order for the changes to take effect. As root
issue the following command:
~]# systemctl network restart
An example of a network bridge formed from two or more bonded Ethernet interfaces will now be given as this is another common application in a virtualization environment. If you are not very familiar with the configuration files for bonded interfaces then please refer to
Section 4.3.2, “Create a Channel Bonding Interface”
Create or edit two or more Ethernet interface configuration files, which are to be bonded, as follows:
DEVICE=ethX
TYPE=Ethernet
SLAVE=yes
MASTER=bond0
BOOTPROTO=none
HWADDR=AA:BB:CC:DD:EE:FF
NM_CONTROLLED=no
Using ethX
as the interface name is common practice but almost any name could be used.
Create or edit one interface configuration file,
/etc/sysconfig/network-scripts/ifcfg-bond0
, as follows:
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS='mode=1 miimon=100'
BRIDGE=brbond0
NM_CONTROLLED=no
Create or edit one interface configuration file,
/etc/sysconfig/network-scripts/ifcfg-brbond0
, as follows:
DEVICE=brbond0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
NM_CONTROLLED=no
We now have two or more interface configuration files with the MASTER=bond0
directive. These point to the configuration file named /etc/sysconfig/network-scripts/ifcfg-bond0
, which contains the DEVICE=bond0
directive. This ifcfg-bond0
in turn points to the /etc/sysconfig/network-scripts/ifcfg-brbond0
configuration file, which contains the IP
address, and acts as an interface to the virtual networks inside the host.
Restart the networking service, in order for the changes to take effect. As root
issue the following command:
~]# systemctl network restart