Bug 1730445 - Changing the IP via ifcfg-<file> of a bridge on a bond drops the interfaces of the bond [NEEDINFO]
Summary: Changing the IP via ifcfg-<file> of a bridge on a bond drops the interfaces o...
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: NetworkManager
Version: 8.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: 8.0
Assignee: sushil kulkarni
QA Contact: Desktop QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-07-16 18:08 UTC by digimer
Modified: 2020-01-22 10:15 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-01-22 10:15:00 UTC
Type: Bug
Target Upstream Version:
thaller: needinfo? (digimer)


Attachments (Terms of Use)

Description digimer 2019-07-16 18:08:10 UTC
Description of problem:

I've got a RHEL 8 server with an IP assigned to a bridge, with a bonded interface connected to it. When I change the IP by editing the ifcfg-<device> file, then do 'ifdown <device> && ifup <device>', the bond's slaves drop and don't come back up. 

(note: the VM config is meant to mimic hardware, hence the odd config)

The file I edited was:

====
[root@el8-a01n01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-IFN_1_-_Bridge_1 
# Internet-Facing Network 1 - Bridge 1
STP="yes"
BRIDGING_OPTS="priority=32768"
TYPE="Bridge"
BROWSER_ONLY="no"
NAME="IFN 1 - Bridge 1"
DEVICE="ifn1_bridge1"
UUID="fc0c4b88-4517-48c2-8132-19f251e5a59e"
ONBOOT="yes"
BOOTPROTO="none"
IPADDR="10.255.110.1"
PREFIX="16"
GATEWAY="10.255.255.254"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DEFROUTE="yes"
ZONE="IFN1"
====

In this case, I changed 'IPADDR' from 10.255.10.1 -> 10.255.110.1, no change to the subnet. 

The bond config is:

====
[root@el8-a01n01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-IFN_1_-_Bond_1 
# Internet-Facing Network 1 - Bond 1
UUID="47c50ffc-36c6-4bac-a259-5d09552634eb"
NAME="IFN 1 - Bond 1"
DEVICE="ifn1_bond1"
BRIDGE="ifn1_bridge1"
BONDING_OPTS="mode=active-backup primary=ifn1_link1 updelay=120000 downdelay=0 miimon=100 primary_reselect=better"
TYPE="Bond"
BONDING_MASTER="yes"
BOOTPROTO="none"
IPV6INIT="no"
ONBOOT="yes"
MTU="1500"
ZONE="IFN1"
====

The two slaved interfaces are:

====
[root@el8-a01n01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-IFN_1_-_Link_1
# Internet-Facing Network 1 - Link 1
HWADDR="52:54:00:32:31:fa"
UUID="795e6cec-fe4c-46a4-ba07-690d34f1bfec"
NAME="IFN 1 - Link 1"
DEVICE="ifn1_link1"
TYPE="Ethernet"
BOOTPROTO="none"
IPV6INIT="no"
ONBOOT="yes"
USERCTL="no"
MTU="1500"
NM_CONTROLLED="yes"
SLAVE="yes"
MASTER="ifn1_bond1"
ZONE="IFN1"
====

And:

====
[root@el8-a01n01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-IFN_1_-_Link_2
# Internet-Facing Network 1 - Link 2
HWADDR="52:54:00:d4:20:b2"
UUID="916cd71b-d905-4d40-83fd-2cd7de2732ac"
NAME="IFN 1 - Link 2"
DEVICE="ifn1_link2"
TYPE="Ethernet"
BOOTPROTO="none"
IPV6INIT="no"
ONBOOT="yes"
USERCTL="no"
MTU="1500"
NM_CONTROLLED="yes"
SLAVE="yes"
MASTER="ifn1_bond1"
ZONE="IFN1"
====

The output from the ifdown/up was;

====
[root@el8-a01n01 ~]# ifdown IFN_1_-_Bridge_1 && ifup IFN_1_-_Bridge_1
Connection 'IFN 1 - Bridge 1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/11)

(process:3923): GLib-GIO-WARNING **: 17:19:19.869: gdbusobjectmanagerclient.c:1589: Processing InterfaceRemoved signal for path /org/freedesktop/NetworkManager/ActiveConnection/11 but no object proxy exists
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/25)
====

After the ifdown/up, I checked the /proc bond info:

====
[root@el8-a01n01 ~]# cat /proc/net/bonding/ifn1_bond1 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: down
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
====

NOTE: The interfaces are virtio-net devices. This is all in a VM setup to emulate hardware for development purposes.

And the ethtool info for the slaved interfaces;

====
[root@el8-a01n01 ~]# ethtool ifn1_link1
Settings for ifn1_link1:
	Supported ports: [ ]
	Supported link modes:   Not reported
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Unknown! (255)
	Port: Other
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	Link detected: yes
[root@el8-a01n01 ~]# ethtool ifn1_link2
====

And:

====
Settings for ifn1_link2:
	Supported ports: [ ]
	Supported link modes:   Not reported
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Unknown! (255)
	Port: Other
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	Link detected: yes
====

If I do 'ifup' on the bond, the slaved interfaces reconnect;

====
[root@el8-a01n01 ~]# ifup IFN_1_-_Bond_1 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/29)
====

About 20 seconds later, network traffic starts flowing again. The ethtool output of the slaves didn't change.



Version-Release number of selected component (if applicable):

NetworkManager.x86_64                         1:1.14.0-14.el8
NetworkManager-libnm.x86_64                   1:1.14.0-14.el8
NetworkManager-team.x86_64                    1:1.14.0-14.el8
NetworkManager-tui.x86_64                     1:1.14.0-14.el8
iproute.x86_64                                4.18.0-11.el8
iproute-tc.x86_64                             4.18.0-11.el8

[root@el8-a01n01 ~]# uname -r
4.18.0-80.4.2.el8_0.x86_64


How reproducible:

Appears to be 100%


Steps to Reproduce:
1. Setup a VM with two NICs and configure as a bond/bridge as above
2. Do ifdown <bridge> && ifup <bridge>
3. Check /proc/net/bonding/<bond>

Actual results:

Slaves drop when bridge is restarted


Expected results:

Network works after 'ifup' call.


Additional info:

Comment 1 Thomas Haller 2019-07-31 11:07:31 UTC
Hi, I could not reproduce this (trying to follow the steps here, using the same NM version).
After `ifup` for me all profiles were active again.


Could you enable level=TRACE logging and provide a full logfile of NetworkManager that shows the issue?

See https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/contrib/fedora/rpm/NetworkManager.conf#n28 for hints about logging.

Comment 2 Thomas Haller 2020-01-22 10:15:00 UTC
Closing, as not sufficient information is provided.

Please reopen if the issue still exists. Thank you!!


Note You need to log in before you can comment on or make changes to this bug.