TipsAndTricks/BridgeAndNmcli

References: Upstream document blog memomemo

In CentOS 6, if you wanted to set up a network bridge, it was advised to disable NetworkManager and do it manually. In CentOS 7, this is not quite an option because NetworkManager is now more integral to the OS. However, it is possible in CentOS 7 to create and configure a bridge using NetworkManager. This article shows you how to achieve this using NetworkManager’s nmcli command.

(1) Create a bridge named bridge-br0.

[[email protected]]# nmcli con add type bridge ifname br0

(2) Disable spanning tree protocol (STP)

[[email protected]]# nmcli con modify bridge-br0 bridge.stp no

(3) Set the IP address, etc. (adjust the parameters appropriately)

[[email protected]]# nmcli con modify bridge-br0 ipv4.method manual ipv4.address "192.168.199.100/24" ipv4.gateway "192.168.199.254"  ipv4.dns 8.8.8.8 ipv4.dns-search example.com

Note that, in CentOS 7.0, the syntax was ‘ipv4.addresses 192.168.199.100/24 192.168.199.254’. This has been changed in the later minor versions.

(4) Connect the physical port enp0s25 to the bridge just created.

[[email protected]]# nmcli con add type bridge-slave ifname enp0s25 master bridge-br0

(5) Delete the physical port and reboot the system immediately as the connection will be lost

[[email protected]]# nmcli con del enp0s25; reboot

If your host uses dhcp, not static IP, skip steps (3) and (5).