Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
I tried to add bond device bond0 with "nmcli c add type bridge-slave" but failed. Instead, I needed to configure connection.master and connection.slave-type properties directly. I'd like to know if this is an intended behavior or a defect.
Version-Release number of selected component (if applicable):
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
# rpm -qa | grep NetworkManager
NetworkManager-glib-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64
NetworkManager-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64
NetworkManager-config-server-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64
NetworkManager-tui-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64
# uname -a
Linux rhel7 3.10.0-123.13.2.el7.x86_64 #1 SMP Fri Dec 12 19:51:03 EST 2014 x86_64 x86_64 x86_64 GNU/Linux
Steps to Reproduce:
1. Intended configuration
ens6 -|
|--bond0--br0 (192.168.1.11/24)
ens7 -|
2. Create bridge br0
# nmcli c add type bridge ifname br0 con-name bridge-br0
# nmcli c mod bridge-br0 bridge.stp no
# nmcli c mod bridge-br0 ipv4.method manual ipv4.addresses "192.168.1.11/24 192.168.1.1"
# nmcli c mod bridge-br0 ipv4.dns 8.8.8.8 ipv4.dns-search redhat.com
# nmcli c down bridge-br0
# nmcli c up bridge-br0
3. Create bonding device bond0
# nmcli c add type bond ifname bond0 con-name bond-bond0 mode active-backup
# nmcli c add type bond-slave ifname ens6 con-name bond-slave-ens6 master bond0
# nmcli c add type bond-slave ifname ens7 con-name bond-slave-ens7 master bond0
4. Create bridge-slave with bond0
# nmcli c add type bridge-slave ifname bond0 con-name bridge-slave-bond0 master bridge-br0
# nmcli c
NAME UUID TYPE DEVICE
bridge-slave-bond0 2d89f01d-d005-4a5d-8d27-f04b697d7ac5 802-3-ethernet --
bond-slave-ens7 ecc99c0e-19b7-4d55-ad4b-5d0f7c9d3864 802-3-ethernet ens7
bond-slave-ens6 a5b42f25-b231-4115-8167-5ecfa47cf80c 802-3-ethernet ens6
bond-bond0 348c9233-8b37-467d-95c1-296ddf425fd9 bond bond0
bridge-br0 0d5772ac-bf53-48e5-9b51-c4c3e6d7db7e bridge br0
eth0 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth0
As seen above, DEVICE is not assigned to bridge-slave-bond0 and fails to activate it as below.
# nmcli c up bridge-slave-bond0
Error: no device found for connection 'bridge-slave-bond0'.
Even after rebooting the sysmtem, the situation remains the same.
5. Instead of using bridge-slave type, I configured connection.master and connection.slave-type properties. It worked.
# nmcli c delete bridge-slave-bond0
# nmcli c mod bond-bond0 connection.master br0
# nmcli c mod bond-bond0 connection.slave-type bridge
# nmcli c up bond-bond0
# nmcli c up bond-slave-ens6
# nmcli c up bond-slave-ens7
# nmcli c
NAME UUID TYPE DEVICE
bond-bond0 348c9233-8b37-467d-95c1-296ddf425fd9 bond bond0
bridge-br0 0d5772ac-bf53-48e5-9b51-c4c3e6d7db7e bridge br0
bond-slave-ens7 ecc99c0e-19b7-4d55-ad4b-5d0f7c9d3864 802-3-ethernet ens7
eth0 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth0
bond-slave-ens6 a5b42f25-b231-4115-8167-5ecfa47cf80c 802-3-ethernet ens6
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens6
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens6
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 52:54:00:eb:91:9c
Slave queue ID: 0
Slave Interface: ens7
MII Status: up
Speed: 100 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 52:54:00:aa:a4:66
Slave queue ID: 0
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.525400eb919c no bond0
(In reply to Etsuji Nakai from comment #0)
> Description of problem:
>
> I tried to add bond device bond0 with "nmcli c add type bridge-slave" but
> failed. Instead, I needed to configure connection.master and
> connection.slave-type properties directly. I'd like to know if this is an
> intended behavior or a defect.
Yes, nmcli has limitations in creating slave profiles directly. 'bridge-slave', 'bond-slave' and 'team-slave' just offer ethernet type at the moment. We will work on this in the future to improve it.
As you figured out, you need to create all the profiles separately as ordinary
types, and then make them as slaves later by modifying master and slave-type properties.
For example, for creating bond over VLANs, you will create all connections:
$ nmcli con add type ethernet con-name myeth1 ifname eth1
$ nmcli con add type ethernet con-name myeth2 ifname eth2
$ nmcli con add type vlan con-name vlan111 dev eth1 id 111
$ nmcli con add type vlan con-name vlan222 dev eth2 id 222
$ nmcli con add type bond con-name jamesbond ifname bond007 mode 802.3ad
And then you edit the VLANs to became slaves of the bond:
$ nmcli con edit vlan111
nmcli> remove ipv4
nmcli> remove ipv6
nmcli> set connection.slave-type bond
nmcli> set connection.master bond007
nmcli> save
nmcli> quit
and the same for vlan222
It is also possible to create/edit ifcfg files directly as before, because
NetworkManager reads them. You just have to let NetworkManager know when you
are done with the changes. Call 'nmcli con reload' as root to do that. (See
also monitor-connection-files option in man Networkmanager.conf).
Also, there is the GUI nm-connection-editor that allows stacking connections
while creating them (will offer other types than ethernet for slave types).
Damn, I spent almost a day in our datacenter trying to understand why my bond0/team0 device could not be added to the bridge, and then I stepped onto this bug.
These limitations should find their way inside the official Red Hat manuals, as this configuration is not described as not supported in RHEL 7.
With the version of NetworkManager that will be shipped with RHEL-7.3 the desired configuration is done like this:
# nmcli c add type bridge ifname br0 con-name bridge-br0
# nmcli c add type bond ifname bond0 con-name bridge-slave-bond0 master bridge-br0
# nmcli c add type ethernet ifname ens6 con-name bond-slave-ens6 master bond0
# nmcli c add type ethernet ifname ens7 con-name bond-slave-ens7 master bond0
Note the absence of "*-slave" types and presence of "master" option to denote a slave.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHSA-2016-2581.html
Description of problem: I tried to add bond device bond0 with "nmcli c add type bridge-slave" but failed. Instead, I needed to configure connection.master and connection.slave-type properties directly. I'd like to know if this is an intended behavior or a defect. Version-Release number of selected component (if applicable): # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) # rpm -qa | grep NetworkManager NetworkManager-glib-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64 NetworkManager-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64 NetworkManager-config-server-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64 NetworkManager-tui-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64 # uname -a Linux rhel7 3.10.0-123.13.2.el7.x86_64 #1 SMP Fri Dec 12 19:51:03 EST 2014 x86_64 x86_64 x86_64 GNU/Linux Steps to Reproduce: 1. Intended configuration ens6 -| |--bond0--br0 (192.168.1.11/24) ens7 -| 2. Create bridge br0 # nmcli c add type bridge ifname br0 con-name bridge-br0 # nmcli c mod bridge-br0 bridge.stp no # nmcli c mod bridge-br0 ipv4.method manual ipv4.addresses "192.168.1.11/24 192.168.1.1" # nmcli c mod bridge-br0 ipv4.dns 8.8.8.8 ipv4.dns-search redhat.com # nmcli c down bridge-br0 # nmcli c up bridge-br0 3. Create bonding device bond0 # nmcli c add type bond ifname bond0 con-name bond-bond0 mode active-backup # nmcli c add type bond-slave ifname ens6 con-name bond-slave-ens6 master bond0 # nmcli c add type bond-slave ifname ens7 con-name bond-slave-ens7 master bond0 4. Create bridge-slave with bond0 # nmcli c add type bridge-slave ifname bond0 con-name bridge-slave-bond0 master bridge-br0 # nmcli c NAME UUID TYPE DEVICE bridge-slave-bond0 2d89f01d-d005-4a5d-8d27-f04b697d7ac5 802-3-ethernet -- bond-slave-ens7 ecc99c0e-19b7-4d55-ad4b-5d0f7c9d3864 802-3-ethernet ens7 bond-slave-ens6 a5b42f25-b231-4115-8167-5ecfa47cf80c 802-3-ethernet ens6 bond-bond0 348c9233-8b37-467d-95c1-296ddf425fd9 bond bond0 bridge-br0 0d5772ac-bf53-48e5-9b51-c4c3e6d7db7e bridge br0 eth0 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth0 As seen above, DEVICE is not assigned to bridge-slave-bond0 and fails to activate it as below. # nmcli c up bridge-slave-bond0 Error: no device found for connection 'bridge-slave-bond0'. Even after rebooting the sysmtem, the situation remains the same. 5. Instead of using bridge-slave type, I configured connection.master and connection.slave-type properties. It worked. # nmcli c delete bridge-slave-bond0 # nmcli c mod bond-bond0 connection.master br0 # nmcli c mod bond-bond0 connection.slave-type bridge # nmcli c up bond-bond0 # nmcli c up bond-slave-ens6 # nmcli c up bond-slave-ens7 # nmcli c NAME UUID TYPE DEVICE bond-bond0 348c9233-8b37-467d-95c1-296ddf425fd9 bond bond0 bridge-br0 0d5772ac-bf53-48e5-9b51-c4c3e6d7db7e bridge br0 bond-slave-ens7 ecc99c0e-19b7-4d55-ad4b-5d0f7c9d3864 802-3-ethernet ens7 eth0 bc302e8f-f5f3-478d-bf87-e77d3288dac7 802-3-ethernet eth0 bond-slave-ens6 a5b42f25-b231-4115-8167-5ecfa47cf80c 802-3-ethernet ens6 # cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: ens6 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens6 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 52:54:00:eb:91:9c Slave queue ID: 0 Slave Interface: ens7 MII Status: up Speed: 100 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 52:54:00:aa:a4:66 Slave queue ID: 0 # brctl show bridge name bridge id STP enabled interfaces br0 8000.525400eb919c no bond0