View Issue Details

IDProjectCategoryView StatusLast Update
0007594CentOS-7initscriptspublic2014-09-15 17:33
Reporteromb Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status assignedResolutionopen 
Product Version7.0-1406 
Summary0007594: no creation of network bridge possible using ifcfg-files and service network
Descriptionif you define a network bridge in e.g ifcfg-kvmbr0 script and start the the bridge interface:
ifup kvmbr0 <enter>
you get the errormessage:
"can't add kvmbr0 to bridge enp1s0: Operation not supported"

after correction of the ifup-eth script with the bridge running you get a similiar errormessage:
ifdown kvmbr0 <enter>
"can't delete kvmbr0 from enp10: Operation not supported"
Steps To Reproducecreate ethernet interface:
----------------
# RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
UUID=f905216d-bc3f-43b6-9c0b-5f80a8b9ee39
DEVICE=enp1s0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
HWADDR=01:02:03:04:05:06
IPV6INIT=no
NM_CONTROLLED=no
NOZEROCONF=yes
USERCTL=no
PEERDNS=yes
----------------
create bridge interface:
----------------
# Bridge for KVM Clients
DEVICE=kvmbr0
NAME=kvmbr0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
BRIDGE="enp1s0"
IPADDR=192.168.9.98
NETWORK=192.168.9.0
PREFIX=24
BROADCAST=192.168.9.255
IPV6INIT=no
NM_CONTROLLED=no
NOZEROCONF=yes
USERCTL=no
PEERDNS=yes
GATEWAY=192.168.9.1
----------------
ifup enp1s0 <enter>
ifup kvmbr0 <enter>
Additional Informationin the ifcfg-kvmbr0 file you find defined the two variables:

DEVICE=kvmbr0
BRIDGE="enp1s0"

in the /etc/sysconfig/network-scripts/ifup-eth file at line 142 you can read:
/usr/sbin/brctl addif -- ${BRIDGE} ${DEVICE}

the correct syntax of the brctl executable is:
brctl addif <bridge> <device> add interface to bridge

it was not so very intelligent to name the bridge DEVICE and the device BRIDGE.
if you change line 142 to:

/usr/sbin/brctl addif -- ${DEVICE }${BRIDGE}

you get the bridge up and running.

the same mistake can be found in /etc/sysconfig/network-scripts/ifdown-eth in line 128:
/usr/sbin/brctl delif -- ${BRIDGE} ${DEVICE}
instead of
/usr/sbin/brctl delif -- ${DEVICE} ${BRIDGE}

correct syntax of the brctl executable is here:
brctl delif <bridge> <device> delete interface from bridge

if you now comment out the "exit 0" in line 152 of ifup-eth you can even give an ip address to the bridge ...
TagsNo tags attached.
abrt_hash
URL

Activities

Evolution

Evolution

2014-09-15 15:40

reporter   ~0020915

This works fine for me (I use it for my kvm host) however you have some config options that may not be correct.

I have:
ifcfg-enp6s0 which contains:
NAME=enp6s0
UUID=6e1754ca-7c6d-4abf-89d2-124987e4ff6c
ONBOOT=yes
HWADDR=BC:30:5B:A1:AE:BF
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no

and ifcfg-br0, which contains:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no


Once the files are there, you should not need to use the ifup/ifdown scripts (and these may cause issues). You simply need to (re)start the network service
Evolution

Evolution

2014-09-15 15:41

reporter   ~0020916

WFM with listed configuration in previous comment. Please double check your configs.
omb

omb

2014-09-15 17:33

reporter   ~0020919

Some of the differences in the ifcfg-files may be caused by ipv4 <-> ipv6.
And yes, of course the interfaces are brought up and down automatically during network start and stop (without error messages), I used them for debugging only.

The problem of the calls to brctl with swapped parameters remains, as the ifup-eth and ifdown-eth scripts are called by service network start and stop: the ethernet interface is not bound to the bridge.

Issue History

Date Modified Username Field Change
2014-09-15 15:16 omb New Issue
2014-09-15 15:40 Evolution Note Added: 0020915
2014-09-15 15:41 Evolution Note Added: 0020916
2014-09-15 15:41 Evolution Status new => feedback
2014-09-15 17:33 omb Note Added: 0020919
2014-09-15 17:33 omb Status feedback => assigned