LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Why MAXNICS=${MAXNICS:-6} in rc.inet1.conf? (http://www.linuxquestions.org/questions/slackware-14/why-maxnics%3D%24%7Bmaxnics-6%7D-in-rc-inet1-conf-4175485819/)

slackcode 11-25-2013 07:57 AM

Why MAXNICS=${MAXNICS:-6} in rc.inet1.conf?
 
Code:

############################
# DETERMINE INTERFACE LIST #
############################

# Compose a list of interfaces from /etc/rc.d/rc.inet1.conf (with a maximum
# of 6 interfaces, but you can easily enlarge the interface limit
# - send me a picture of such a box :-).
# If a value for IFNAME[n] is not set, we assume it is an eth'n' interface.
# This way, the new script is compatible with older rc.inet1.conf files.
# The IFNAME array will be used to determine which interfaces to bring up/down.
MAXNICS=${MAXNICS:-6}
i=0
while [ $i -lt $MAXNICS ];
do
  IFNAME[$i]=${IFNAME[$i]:=eth${i}}
  i=$(($i+1))
done
if [ "$DEBUG_ETH_UP" = "yes" ]; then
  echo "/etc/rc.d/rc.inet1:  List of interfaces: '${IFNAME[@]}'" | $LOGGER
fi

I have a situation that need more than 6 (Maybe 7).
I set an ip address and it can't be valid until I ifconfig that.

Finally, I found this code in rc.inet1.
I want to know why the number is 6? Is it about the performance or any other reason?
Thx.

guanx 11-25-2013 08:14 AM

Pre-vacuum-tube computers take a lot of time to loop through large number of empty setups. This is the evidence of slackware being the oldest surviving Linux distribution.

slackcode 11-25-2013 08:22 AM

Quote:

Originally Posted by guanx (Post 5070322)
Pre-vacuum-tube computers take a lot of time to loop through large number of empty setups. This is the evidence of slackware being the oldest surviving Linux distribution.

Yes, I agree. Maybe I can cut some IPs : )

Didier Spaier 11-25-2013 08:29 AM

However high the limit, someone will find it too low.

GazL 11-25-2013 09:17 AM

... which is reason to avoid having a arbitrary limit. ;)

A long while ago I wrote myself an rc.inet1 replacement modeled on the OpenBSD approach.

It cycles through the interfaces listed on it's args, or if none, the interfaces it finds in /proc/net/dev and if it finds a corresponding /etc/hostname.<interface> file uses that to configure the interface. I find this much easier to work with than the stock rc.inet1 + rc.inet1.conf approach, which has always seemed a little unwieldy to me.

The config files looks like this:
Code:

root@ws1:~# cat /etc/hostname.eth0
inet 192.168.0.2
!route add default gw 192.168.0.1
root@ws1:~#

As you can see, it also allows static routes to be kept with the associated interface config, which keeps things nice and tidy. To use dhclient, the file simply needs contain the word 'dhcp'. I've not fleshed it out to support wifi yet, but a "!wpa_supplicant blah blah...." line before a "dhcp" line ought to do the job.

slackcode 11-25-2013 09:46 AM

Quote:

Originally Posted by GazL (Post 5070348)
... which is reason to avoid having a arbitrary limit. ;)

It cycles through the interfaces listed on it's args, or if none, the interfaces it finds in /proc/net/dev and if it finds a corresponding /etc/hostname.<interface> file uses that to configure the interface. I find this much easier to work with than the stock rc.inet1 + rc.inet1.conf approach, which has always seemed a little unwieldy to me.

As you can see, it also allows static routes to be kept with the associated interface config, which keeps things nice and tidy. To use dhclient, the file simply needs contain the word 'dhcp'. I've not fleshed it out to support wifi yet, but a "!wpa_supplicant blah blah...." line before a "dhcp" line ought to do the job.

Normally, I think it is simple if I configure all interfaces in one file. If move the interfaces to multiple files, I need to configure them in multiple place.
I think rc.inet1.conf can be scanned to summate amout of the interfaces, but it seems ugly and not KISS.

gnashley 11-25-2013 11:33 AM

GazL, can you post your replacement for rc.inet1?

GazL 11-25-2013 12:34 PM

I can remember we've talked about this sort of thing in the past, so I suspect you may have already seen it, but I'll attach it here anyway. It's not particularly sophisticated, but that's why I like it ;)


BTW, if anyone tries it out, don't forget to create a /etc/hostname.lo containing "inet 127.0.0.1" ;)

wildwizard 11-26-2013 03:10 PM

Quote:

Originally Posted by slackcode (Post 5070324)
Yes, I agree. Maybe I can cut some IPs : )

If the problem originates from having extra IP's and not actual interfaces then I think I can help.

I have below rc.inet1 and rc.inet1.conf that I use, the IP addresses used are in CIDR notation and the setup no longer uses net masks (ignore the ones in the conf they are not used.)

To add extra IP's on an interface you simply separate them with spaces so you could have the following :-

Code:

IPADDR[0]="192.168.10.10/24 192.168.10.11/24 192.168.10.12/24 192.168.10.13/24 10.0.0.1/24"
and the first interface would have 5 IP's.

http://wildwizard.abnormalpenguin.co...lackware/rc.d/

WiseDraco 11-29-2013 07:52 AM

Quote:

Originally Posted by guanx (Post 5070322)
Pre-vacuum-tube computers take a lot of time to loop through large number of empty setups. This is the evidence of slackware being the oldest surviving Linux distribution.

if i remember correctly, about a years 2003 - 2005 i have linux slackware ( 10.0 or so on version) based firewall \ router with 7 NIC. i do not change anything in rc.inetd1 - maybe then there are not that string?


All times are GMT -5. The time now is 09:51 PM.