Este contenido no está disponible en el idioma seleccionado.
9.3. Using the Command Line Interface (CLI)
9.3.1. Check if Bridging Kernel Module is Installed
In Red Hat Enterprise Linux 7, the bridging module is loaded by default. If necessary, you can make sure that the module is loaded by issuing the following command as
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
To display information about the module, issue the following command:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
See the
root
:
~]# modprobe --first-time bridge modprobe: ERROR: could not insert 'bridge': Module already in kernel
~]# modprobe --first-time bridge
modprobe: ERROR: could not insert 'bridge': Module already in kernel
~]$ modinfo bridge
~]$ modinfo bridge
modprobe(8)
man page for more command options.
9.3.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 formatbrN
, where N is replaced with the number of the interface. - The
TYPE
directive is given an argumentBridge
. 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 15 seconds is not needed if no routing loops are possible.
Example 9.1. Example ifcfg-br0 Interface Configuration File
The following is an example of a bridge interface configuration file using a static
IP
address:
DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 PREFIX=24 BOOTPROTO=none ONBOOT=yes DELAY=0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
BOOTPROTO=none
ONBOOT=yes
DELAY=0
To complete the bridge another interface is created, or an existing interface is modified, and pointed to the bridge interface.
Example 9.2. Example ifcfg-enp1s0 Interface Configuration File
The following is an example of an Ethernet interface configuration file pointing to a bridge interface. Configure your physical interface in
/etc/sysconfig/network-scripts/ifcfg-device_name
, where device_name is the name of the interface
DEVICE=device_name TYPE=Ethernet HWADDR=AA:BB:CC:DD:EE:FF BOOTPROTO=none ONBOOT=yes BRIDGE=br0
DEVICE=device_name
TYPE=Ethernet
HWADDR=AA:BB:CC:DD:EE:FF
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
Optionally specify a name using the NAME directive. If no name is specified, the NetworkManager plug-in,
ifcfg-rh
, will create a name for the connection profile in the form “Type Interface”. In this example, this means the bridge will be named Bridge br0
. Alternately, if NAME=bridge-br0
is added to the ifcfg-br0
file the connection profile will be named bridge-br0
.
Note
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 its name explicitly matches a different interface configuration file).
The directives are case sensitive.
Specifying the hardware or MAC address using the
HWADDR
directive will influence the device naming procedure as explained in Chapter 11, Consistent Network Device Naming.
Warning
If you are configuring bridging on a remote host, and you are connected to that host over the physical NIC you are configuring, 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.
To open the new or recently configured interfaces, issue a command as
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
This command will detect if NetworkManager is running and call
root
in the following format: ifup device
ifup device
nmcli con load UUID
and then call nmcli con up UUID
.
Alternatively, to reload all interfaces, issue the following command as
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
This command will stop the network service, start the network service, and then call
root
:
~]# systemctl restart network
~]# systemctl restart network
ifup
for all ifcfg files with ONBOOT=yes
.
Note
The default behavior is for NetworkManager not to be aware of changes to ifcfg files and to continue using the old configuration data until the interface is next brought up. This is set by the
monitor-connection-files
option in the NetworkManager.conf
file. See the NetworkManager.conf(5)
manual page for more information.
9.3.3. Network Bridge with Bond
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, see Section 7.4.2, “Create a Channel Bonding Interface”
Create or edit two or more Ethernet interface configuration files, which are to be bonded, as follows:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
DEVICE=interface_name TYPE=Ethernet SLAVE=yes MASTER=bond0 BOOTPROTO=none HWADDR=AA:BB:CC:DD:EE:FF
DEVICE=interface_name
TYPE=Ethernet
SLAVE=yes
MASTER=bond0
BOOTPROTO=none
HWADDR=AA:BB:CC:DD:EE:FF
Note
Using
interface_name
as the interface name is common practice but almost any name could be used.
Create or edit one interface configuration file,
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
For further instructions and advice on configuring the bonding module and to view the list of bonding parameters, see Section 7.7, “Using Channel Bonding”.
/etc/sysconfig/network-scripts/ifcfg-bond0
, as follows:
DEVICE=bond0 ONBOOT=yes BONDING_OPTS='mode=1 miimon=100' BRIDGE=brbond0
DEVICE=bond0
ONBOOT=yes
BONDING_OPTS='mode=1 miimon=100'
BRIDGE=brbond0
Create or edit one interface configuration file,
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
/etc/sysconfig/network-scripts/ifcfg-brbond0
, as follows:
DEVICE=brbond0 ONBOOT=yes TYPE=Bridge IPADDR=192.168.1.1 PREFIX=24
DEVICE=brbond0
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
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.
To open the new or recently configured interfaces, issue a command as
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
This command will detect if NetworkManager is running and call
root
in the following format: ifup device
ifup device
nmcli con load UUID
and then call nmcli con up UUID
.
Alternatively, to reload all interfaces, issue the following command as
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
This command will stop the network service, start the network service, and then call
root
:
~]# systemctl restart network
~]# systemctl restart network
ifup
for all ifcfg files with ONBOOT=yes
.
Note
The default behavior is for NetworkManager not to be aware of changes to ifcfg files and to continue using the old configuration data until the interface is next brought up. This is set by the
monitor-connection-files
option in the NetworkManager.conf
file. See the NetworkManager.conf(5)
manual page for more information.