Re: I ment multiple IP addresses assigne to one interface when I said alias Hi,
the following rc.inet1 is able to handle ip aliases.
It's modified one from a slackware 9.1
rc.inet1.conf has to look like (e.g.):
-----------
DEV[0]="eth0"
IPADDR[0]="192.168.0.1"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""
DEV[1]="eth0:0"
IPADDR[1]="192.168.0.2"
NETMASK[1]="255.255.255.0"
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""
-----------------------
Comments are welcome.
Regards,
Nikolas
# /etc/rc.d/rc.inet1
# This script is used to bring up the various network interfaces.
#
# @(#)/etc/rc.d/rc.inet1 9.1 Tue Aug 26 13:34:58 PDT 2003 (pjv)
############################
# READ NETWORK CONFIG FILE #
############################
# Get the configuration information from /etc/rc.d/rc.inet1.conf:
.. /etc/rc.d/rc.inet1.conf
######################
# LOOPBACK FUNCTIONS #
######################
# Function to bring up the loopback interface. If loopback is
# already up, do nothing.
lo_up() {
if grep lo: /proc/net/dev 1> /dev/null ; then
if ! /sbin/ifconfig | grep "^lo" 1> /dev/null ; then
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
fi
fi
}
# Function to take down the loopback interface:
lo_down() {
if grep lo: /proc/net/dev 1> /dev/null ; then
/sbin/ifconfig lo down
fi
}
######################
# ETHERNET FUNCTIONS #
######################
# Function to bring up an Ethernet interface. If the interface is
# already up or does not yet exist (perhaps because the kernel driver
# is not loaded yet), do nothing.
eth_up() {
# If the interface isn't in the kernel yet (but there's an alias for
it in
# modules.conf), then it should be loaded first:
if ! grep $(echo ${DEV[$1]} | sed -e "s/\:.*//"): /proc/net/dev 1>
/dev/null ; then # no interface yet
if /sbin/modprobe -c | grep -w "alias ${DEV[$1]}" | grep -vw
"alias ${DEV[$1]} off" > /dev/null ; then
/sbin/modprobe eth${1}
fi
fi
if grep $(echo ${DEV[$1]} | sed -e "s/\:.*//"): /proc/net/dev 1>
/dev/null ; then # interface exists
if ! /sbin/ifconfig | grep "${DEV[$1]} " 1> /dev/null ; then #
interface not up
if [ "${USE_DHCP[$1]}" = "yes" ]; then # use DHCP to bring
interface up
if [ ! "${DHCP_HOSTNAME[$1]}" = "" ]; then
/sbin/dhcpcd -t 10 -h ${DHCP_HOSTNAME[$1]} -d ${DEV[$1]}
else
/sbin/dhcpcd -t 10 -d ${DEV[$1]}
fi
else # bring up interface using a static IP address
if [ ! "${IPADDR[$1]}" = "" ]; then # skip unconfigured
interfaces
# Determine broadcast address from the IP address and
netmask:
BROADCAST=`/bin/ipmask ${NETMASK[$1]} ${IPADDR[$1]} | cut -f
1 -d ' '`
# Set up the ethernet card:
echo "Configuring ${DEV[$1]}:"
echo "/sbin/ifconfig ${DEV[$1]} ${IPADDR[$1]} broadcast
${BROADCAST} netmask ${NETMASK[$1]}"
/sbin/ifconfig ${DEV[$1]} ${IPADDR[$1]} broadcast
${BROADCAST} netmask ${NETMASK[$1]}
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "${DEV[$1]} interface is not configured in
/etc/rc.d/rc.inet1.conf"
fi
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "${DEV[$1]} is already up, skipping"
fi
fi
else
if [ "$DEBUG_ETH_UP" = "yes" ]; then
echo "${DEV[$1]} interface does not exist (yet)"
fi
fi
}
# Function to take down an Ethernet interface:
eth_down() {
if grep ${DEV[$1]}: /proc/net/dev 1> /dev/null ; then
if [ "${USE_DHCP[$1]}" = "yes" ]; then
/sbin/dhcpcd -k -d ${DEV[$1]}
sleep 1
else
/sbin/ifconfig ${DEV[$1]} down
fi
fi
}
#####################
# GATEWAY FUNCTIONS #
#####################
# Function to bring up the gateway if there is not yet a default
route:
gateway_up() {
if ! /sbin/route | grep "^default" 1> /dev/null ; then
if [ ! "$GATEWAY" = "" ]; then
/sbin/route add default gw ${GATEWAY} metric 1
fi
fi
}
# Function to take down an existing default gateway:
gateway_down() {
if /sbin/route | grep "^default" 1> /dev/null ; then
/sbin/route del default
fi
}
############
### MAIN ###
############
case "$1" in
'start') # "start" brings up all available interfaces:
lo_up
eth_up 0
eth_up 1
eth_up 2
eth_up 3
gateway_up
;;
'stop') # "stop" takes down all existing interfaces:
gateway_down
eth_down 3
eth_down 2
eth_down 1
eth_down 0
lo_down
;;
*) # The default is to bring up all interfaces:
lo_up
eth_up 0
eth_up 1
eth_up 2
eth_up 3
gateway_up
esac
# End of /etc/rc.d/rc.inet1 |