SCIENTIFIC-LINUX-USERS Archives

August 2009

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Jon Peatfield <[log in to unmask]>
Reply To:
Jon Peatfield <[log in to unmask]>
Date:
Fri, 7 Aug 2009 20:37:09 +0100
Content-Type:
TEXT/PLAIN
Parts/Attachments:
TEXT/PLAIN (87 lines)
On Fri, 7 Aug 2009, Chris O'Regan wrote:

> I am encountering a weird problem. I have a number of servers with a
> pair of on-board network interfaces. Kickstart is configured to set up
> eth0 with a static ip address; there is no mention of eth1 in the
> config. In the past, eth1 was always disabled by default. Now it's
> enabled, and trying to configure itself via DHCP. This interface is not
> even plugged into a switch; it's never going to get an answer. As such,
> booting takes a lot longer because it has to wait for the DHCP request
> for eth1 to time out.
>
> Sure, I can manually edit the configuration for eth1 to disable the
> interface, but I have a number of systems lined up to be built, and I
> would rather avoid this manual intervention. Any ideas?
>
> This is SL5.3.

I obviously hit something similar once (possibly long ago), because my 
standard kickstart postinstall scripts check each network interface ifcfg 
file and change the ONBOOT=y to ONBOOT=no for all but the 'primary' 
interface.

The script is ugly and probably overly complex, but I can send you a copy 
if you like...

I note that all the recent multi-network machines I've installed havn't 
needed this work but they were installed with sl52.  The RCS records 
suggest that I added it when we were still mainly using sl3.

e.g. on one recent box it logged:

...
Fix the network state
Found interface eth1   inet 131.111.17.208/16
  Found default route via 131.111.16.62
Interface eth1   addr=131.111.17.208 mask=255.255.0.0 network=131.111.0.0, 
brd=131.111.255.255
   Default route via 131.111.16.62 dev eth1
Bad/unacceptable hostname pollux looking up 131.111.17.208/16!!
hostname from gethostbyaddr is pollux.damtp.cam.ac.uk
hostname is pollux.damtp.cam.ac.uk
non-primary interface: eth0
Edit /etc/sysconfig/network-scripts/ifcfg-eth0
Content ok no need to rewriting /etc/sysconfig/network-scripts/ifcfg-eth0
Primary interface: eth1
Open /etc/sysconfig/network-scripts/ifcfg-eth1
Open /etc/sysconfig/network-scripts/route-eth1
Open /etc/sysconfig/static-routes
Open /etc/sysconfig/network
...

in this case eth1 is an onboard nic and eth0 is in a PCIE slot.  The 
(perl) fragment to check a particular non-primary ifcfg file is:

# rewrite the ifcfg file to turn onboot to "no" (if it is "yes").
sub turnoff {
     my ($file)=@_;
     my $info='';
     my $changed=0;

     open (IN, "<$file") || warn "Can't read $file: $!\n";
     while (<IN>) {
 	if (/ONBOOT=y/) {
 	    s/=.*/=no/;
 	    $changed++;
 	};
 	$info.=$_;
     };
     close(IN);
     if ($changed) {
 	print "Edited content, rewriting $file\n";
 	open (OUT, ">$file.new") || warn "Can't write $file.new: $!\n";
 	print OUT $info;
 	close (OUT) || warn "close of $file.new failed: $!\n";
 	rename("$file.new", $file) ||
 	    warn "rename $file.new -> $file failed: $!\n";
     } else {
 	print "Content ok no need to rewriting $file\n";
     }
}

there are parts of this script which are much uglier than that and the 
primary function is to 'fix' the networking for the primary interface (ie 
turn off dhcp), which I assume most others wouldn't want...

  -- Jon

ATOM RSS1 RSS2