Hide Forgot
Description of problem: When setting up vlans on ethernet interfaces that have letters in the device file name (ethWAN, ethVZ, ethLAN, etc) instead of numbers only (eth0, eth1, eth5, etc) running 'service network restart' fails when trying to enable the VLANs. It also appears, looking at the /sbin/ifup script, that it will allow VLAN ID's to be specified in excess of 4095. This is not as critical an issue, though. How reproducible: Every time Steps to Reproduce: 1. rename eth0 to ethLAN 2. create a ethLAN.100 config file, and enable VLANs in /etc/sysconfig/network 3. execute 'service network restart' Actual results: error messages come up when the VLANS are supposed to be configured Expected results: VLANS are configured Additional info: Attached is a patch to /sbin/ifup that fixes both the problems indicated in the summary.
Created attachment 316590 [details] Patch to /sbin/ifup
It's not really a sufficient patch - after all, you could name your devices Tom, Dick, and Harry.
I'm torn - although you could, indeed, name an ethernet interface anything you want, using eth* and bond* prefixes for network interfaces is the normal way to designate these things. Since VLANs are specific to ethernet interfaces, I'd see it as a reasonable restriction. I could resubmit if it would make sense to open up ethernet interfaces to any name.
*** Bug 440603 has been marked as a duplicate of this bug. ***
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index 1eaabab..d296508 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -73,9 +73,9 @@ fi # Ethernet 802.1Q VLAN support if [ "${VLAN}" = "yes" ] && [ "$ISALIAS" = "no" ]; then VID="" - MATCH='^(eth|hsi|bond)[0-9]+\.[0-9]{1,4}$' + MATCH='^.+\.[0-9]{1,4}$' if [[ "${DEVICE}" =~ $MATCH ]]; then - VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^[a-z0-9]*\.0*\([0-9]\+\)/\1/') + VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^.*\.\([0-9]\+\)/\1/') PHYSDEV=${DEVICE%.*} fi MATCH='^vlan[0-9]{1,4}?'
Created attachment 478120 [details] remove-network-device-naming-requirement-from-VLAN-names.patch Patch removes any naming requirement on device names before adding the .1234 VLAN ID. No sense testing for ID > 4096, vconfig will throw an error that point which the sysadmin can read just as well.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: If an Ethernet interface had letters in the device file name (such as ethWAN or ethVZ) instead of just numbers (such as eth0 or eth5), the /sbin/ifup script failed to enable VLANs configured on such interfaces after the network service was restarted. This bug has been fixed and the /sbin/ifup script now properly configures VLANs regardless of their names.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2011-1081.html