View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0008187||CentOS-7||initscripts||public||2015-02-09 20:23||2015-02-09 20:23|
|Summary||0008187: ifup: issues when DEVICE is absent from ifcfg* configuration files on system with multiple devices with the same MAC address|
|Description||Scenario: Using openvswitch with two external bridges (OpenStack setup using RDO). One bridge is the "external" bridge for the OpenStack cloud. The other is set up as an external bridge for non-managed virtual machines. Both have physical interfaces set up as ports.|
Upon boot of the machine, the network does not start properly, further inspection shows that the physical interfaces did not start (ie: the enp* interfaces). Restarting the network after logging in thru a console fixes the issue.
The logs show something like this:
Feb 9 10:39:52 devhost network: Bringing up interface enp2s0: Error: either "dev" is duplicate, or "br-ex" is a garbage.
Feb 9 10:39:52 devhost network: cat: /sys/class/net/enp2s0: Is a directory
Feb 9 10:39:52 devhost network: cat: br-ex/ifindex: No such file or directory
Feb 9 10:39:52 devhost network: /etc/sysconfig/network-scripts/ifup-eth: line 273: 1000 + : syntax error: operand expected (error token is "+ ")
Feb 9 10:39:52 devhost network: ERROR : [/etc/sysconfig/network-scripts/ifup-aliases] Missing config file br-ex.
Feb 9 10:39:52 devhost /etc/sysconfig/network-scripts/ifup-aliases: Missing config file br-ex.
Feb 9 10:39:52 devhost ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl -t 10 -- --may-exist add-port br-ex "enp2s0
Feb 9 10:39:52 devhost ovs-vsctl: br-ex"
Feb 9 10:39:53 devhost network: [ OK ]
The giveaway is the line where ovs-vsctl is invoked to add the port - note the line break.
After doing some digging I tracked down the problem to the fact that when get_device_by_hwaddr is called, it is returning two interfaces - the physical port and the OVS bridge. This is due to the fact that when I was retooling my ifcfg-* files to set up the bridges, I did not change NAME to DEVICE.
Solution/Workaround: Change NAME in your network configs to DEVICE.
|Steps To Reproduce||Try to set up an OVS bridge using interface configuration files (ie: TYPE=OVSBridge/OVSPort) and rather to referring to the device names by DEVICE, refer to them with the NAME directive.|
|Additional Information||This bug seems similar to at least one other RH bug that I have found: https://bugzilla.redhat.com/show_bug.cgi?id=1082447. |
With the way get_device_by_hwaddr runs, it may be tricky to figure out a "good" solution for this other than enforcing DEVICE in the interface configuration files when there are multiple devices sharing the same MAC address on the system.
It should also be noted that I performed minimal modification of the physical interface files to set up the bridges, so NAME rather than DEVICE was likely there from installation.
|Tags||No tags attached.|