Bug 3588 - start network, lo and eth0
start network, lo and eth0
Status: CLOSED NEXTRELEASE
Product: Red Hat Linux
Classification: Retired
Component: initscripts (Show other bugs)
6.0
i386 Linux
low Severity low
: ---
: ---
Assigned To: David Lawrence
:
: 3054 3338 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 1999-06-18 21:01 EDT by acount closed by user
Modified: 2008-05-01 11:37 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 1999-06-23 15:52:55 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description acount closed by user 1999-06-18 21:01:00 EDT
show this :

Jun 10 01:22:50 Chuchi modprobe: can't locate module lo:0
Jun 10 01:22:50 Chuchi modprobe: can't locate module lo:1
[....]
Jun 10 01:23:24 Chuchi modprobe: can't locate module lo:48
Jun 10 01:23:24 Chuchi modprobe: can't locate module lo:49
jun 10 01:23:24 Chuchi network: Bringing up interface lo
succeeded


and eth0 =
Comment 1 Bill Nottingham 1999-06-21 12:53:59 EDT
you've got your own kernel compiled, without IP aliasing
support, correct?  linuxconf doesn't handle this gracefully.

You can comment out the portion of ifup-aliases that
calls linuxconf and the messages will go away...
(or rpm -e linuxconf ;) )
Comment 2 Bill Nottingham 1999-06-21 16:26:59 EDT
*** Bug 3054 has been marked as a duplicate of this bug. ***

"can't locate module <netdev>:xx" kernel warnings are
produced when /etc/sysconfig/network-scripts/ifup-post
runs ifup-aliases (where <netdev> is typically lo or eth0
and xx is a number from 0 to 49).

Suggested fix: change line 20 of ifup-post to

if [ "$ISALIAS" = "yes" ] ; then

(please check that this is correct though!)

------- Additional Comments From jturner@redhat.com  05/26/99 11:17 -------
This issue has been forwarded to a developer for further review.

------- Additional Comments From adam@spiers.net  05/26/99 20:07 -------
These warnings are being generated from other startup scripts
too.  I haven't figured out which ones yet, but hopefully if
I never do, someone who knows more about initscripts than me
will know where else they're coming from.

------- Additional Comments From adam@spiers.net  06/02/99 21:26 -------
I've finally figured out where else these warnings are coming
from, and it's whenever

  linuxconf --hint netdev

gets run.  I looked at the linuxconf code, and thought about it,
and maybe it is actually doing the right thing, in which case
presumably the only fix is to add things like

alias lo:* off
alias eth0:* off

to /etc/conf.modules.  Or maybe linuxconf should do this itself?
Comment 3 Bill Nottingham 1999-06-21 16:33:59 EDT
*** Bug 3338 has been marked as a duplicate of this bug. ***

I started poking around in the /etc/sysconfig/network-
scripts stuff trying to debug some problems I was seeing in
aliased network interfaces. Doing this I bumped into some
weirdness/inconsistencies in the system setup which I
believe relate to linuxconf.

(1) Aliased devices get different ipaddr, device-name
parings than specified in the /etc/sysconfig/network-
scripts files.

I have the following setup:

[root@hobbes network-scripts]# cat ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.10.1
NETMASK=255.255.0.0
NETWORK=192.168.0.0
BROADCAST=192.168.255.255
ONBOOT=yes
[root@hobbes network-scripts]# cat ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=192.168.10.2
[root@hobbes network-scripts]# grep IPADDR ifcfg-eth0:*
ifcfg-eth0:0:IPADDR=192.168.10.2
ifcfg-eth0:1:IPADDR=192.168.10.3
ifcfg-eth0:2:IPADDR=192.168.10.4
ifcfg-eth0:3:IPADDR=192.168.10.5
ifcfg-eth0:4:IPADDR=192.168.10.6
ifcfg-eth0:5:IPADDR=192.168.10.7
ifcfg-eth0:6:IPADDR=192.168.10.8
ifcfg-eth0:7:IPADDR=192.168.10.9
ifcfg-eth0:8:IPADDR=192.168.10.10
ifcfg-eth0:9:IPADDR=192.168.10.11
ifcfg-eth0:10:IPADDR=192.168.10.12
ifcfg-eth0:11:IPADDR=192.168.10.13
[root@hobbes network-scripts]#

But when the alias devices are enabled they are given
_different_ ipaddr, device-name parings than I specified.
If you read ifup-aliases, you see that this comes from
linuxconf, which is returning messed up data:

[root@hobbes network-scripts]# linuxconf --hint ipalias eth0
add eth0:0 192.168.10.2 255.255.255.255 192.168.10.2
add eth0:1 192.168.10.3 255.255.255.255 192.168.10.3
add eth0:2 192.168.10.12 255.255.255.255 192.168.10.12
add eth0:3 192.168.10.13 255.255.255.255 192.168.10.13
add eth0:4 192.168.10.4 255.255.255.255 192.168.10.4
add eth0:5 192.168.10.5 255.255.255.255 192.168.10.5
add eth0:6 192.168.10.6 255.255.255.255 192.168.10.6
add eth0:7 192.168.10.7 255.255.255.255 192.168.10.7
add eth0:8 192.168.10.8 255.255.255.255 192.168.10.8
add eth0:9 192.168.10.9 255.255.255.255 192.168.10.9
add eth0:10 192.168.10.10 255.255.255.255 192.168.10.10
add eth0:11 192.168.10.11 255.255.255.255 192.168.10.11
[root@hobbes network-scripts]#

Not having these paring the way I specified messes things
up when I need to disable a specific network interface.

For example, let's say that I need to disable 192.168.10.12
which I specified to be eth0:10. Naturally, I would type
"ifdown eth0:10". But that actually takes down
192.168.10.10, not .12. Evidence:

[root@hobbes network-scripts]# ifdown eth0:10
[root@hobbes network-scripts]# ifconfig | grep -B 1
192.168.10.12
eth0:2    Link encap:Ethernet  HWaddr 00:40:05:16:91:49
          inet addr:192.168.10.12  Bcast:192.168.10.12
Mask:255.255.255.255
[root@hobbes network-scripts]# ifconfig | grep -B 1
192.168.10.10
[root@hobbes network-scripts]#

(2) Inconstancy between linuxconf settings and ifconfig-
eth0:* settings

There are now two ways to enable an aliased network
interface whichwill yield different configuration: using
ifup-aliases (which grabs config from linuxconf), and using
ifup (which grabs config from ifconfig-eth0:* files)

Here is an example:

[root@hobbes network-scripts]# ifup eth0:0
[root@hobbes network-scripts]# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:40:05:16:91:49
          inet addr:192.168.10.2  Bcast:192.168.10.255
Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0x300

[root@hobbes network-scripts]# ifdown eth0:0
[root@hobbes network-scripts]# ./ifup-aliases eth0
[root@hobbes network-scripts]# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:40:05:16:91:49
          inet addr:192.168.10.2  Bcast:192.168.10.2
Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0x300

[root@hobbes network-scripts]#

Note the different netmasks and broadcast addrs.

As per point one, it is possible that we could have gotten
different ipaddrs in this test... but I chose an aliased
interface that I knew would have the same ipaddr in both
setup methods.

This one REALLY threw me for a loop back in Red Hat 5.1
when I was having weird problems with my alised interfaces
and I thought it was the netmask.

Conclusion:

Linuxconf needs to be fixed to respect the ifconfig-eth0:*
settings better, or ifup-aliases should not get its
information from linuxconf.

Note: I modified ifup-alises to think that linuxconf was
not there and use an old method of just calling ifup for
each aliased interface... problem was it went from using
0.22 seconds elapsed time with linuxconf gathering
configuration to 6.23 seconds elapsed with only 12 aliased
interfaces. That will be a problem when I try to give it a
few hundred aliased interfaces.

Sorry for the length of this, but I thought it would be
best to be very specific and give examples.

------- Additional Comments From notting@redhat.com  06/17/99 18:48 -------
There is a potential fix in initscripts-4.22;
linuxconf support is removed, and the main part
of ifup-aliases is simply the following:

current=0
while : ; do
 if [ ! -f /etc/sysconfig/network-scripts/$device:$current ]; then
    return
 fi
 /etc/sysconfig/network-scripts/ifup $device:$current
 current=`expr $current + 1`
done

However, I don't know how this will affect the speed issue.
Comment 4 Bill Nottingham 1999-06-21 19:21:59 EDT
- don't upgrade to initscripts-4.21, it's broken. ;)
- initscripts-4.22 will contain a fix for this (by not using
linuxconf), and will be in the next Raw Hide release.
Comment 5 dharris 1999-06-30 01:46:59 EDT
I just grabbed initscripts-4.23-1 from Raw Hide and it was way too
slow. (Actually it was broken out-of-box because it was looking for
the wrong filenames, but I fixed that.) On my P166 with 64MB RAM, it
took 2:05.67elapsed with 98%CPU to startup the aliases on a class C
block (eth0:0 through eth0:253).

I have a patch that implements an ifup-aliases without simply calling
ifup for each alias. The ifup and related shell scripts are really
bulky and are just not meant to be called 255 times.

On the same problem, my patch took 0:14.91elapsed with 99%CPU of
which about 30% was spent in the actual ifconfig calls. My version is
also more robust in that it will remove aliased interfaces in order
to create others and get the correct end result. Also will update the
netmasks and broadcasts of currently running interfaces, if they are
wrong. I've also implemented an ifdown-aliases. All of this in shell.

I've done basic testing, but nothing super extensive. I've left the
print statements in but commented out for you, so you can see how it
works internally if you want. A good tip is to change the "eval"
calls to "echo" commands to see some of the auto-generated code.

I'll scoot the patch out in a bit.
Comment 6 dharris 1999-06-30 04:58:59 EDT
I've just done some more work on the ifup-aliases program. It now
supports ranged based clone interface configuration. (It was easy
enough to add to what I had.) Here's an example range configuration
file:

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0-range1
CLONENUM_START=0
IPADDR_START=192.168.30.1
IPADDR_END=192.168.30.254
NETMASK=255.255.255.255
$

The patch is on the net at http://www.davideous.com/misc/initscripts-
ifupalias.patch, but I'll be doing the proper e-mail submission in a
moment.
Comment 7 dharris 1999-06-30 16:53:59 EDT
New patch coming your way. Has some improvements to make it run
faster.. I can now configure 1024 aliased interfaces in 25 sec (of
which 16 seconds is the ifconfig calls). Also, includes documentation
at the top of the ifup-aliases file on the ifcfg-$DEV-range file
format and the speed considerations.

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