dhcpc & R.H. 5

Robert Heryan rheryan na cominfo.cz
Pondělí Březen 16 08:39:40 CET 1998


Zdravim,
potreboval bych trochu pomoci. Mam R.H. 5, jede mi sit, ip adresu
ziskavam z
DHCP serveru (W NT). Muzu pingovat jakykoliv pocitac v siti (nejen
ping), ale nejak
nemuzu pingovat sam sebe. Pise to Unknow host. Na DHCP servru jsem
zjistil,
ze adresa, kterou mi pridelil, nema prirazene jmeno. V W95 se o to
udajne stara nejakej
WINS (asi Black :-)). Posledni dobou jsem do toho hodne stoural, a tak
se stalo,
ze DHCPC hlasi "failed", ale vse je pri starem. Mam pocit, ze jsem neco
zmenil v ifup
je tam komentar zacinajici RRR. Nemohl byste se nato vsechno nekdo
mrknout?
Mozna by stacilo, kdyby jste mi nekdo poslal zmineny ifup
(/etc/sysconfig/network-scripts/ifup).
Za kazdou trosku budu vdecny.
R.Heryan (Hujer)
------------- další část ---------------
NETWORKING=yes
FORWARD_IPV4=no
HOSTNAME=robhert.cominfo.cz
DOMAINNAME=cominfo.cz
GATEWAY=193.84.251.112
GATEWAYDEV=eth0
------------- další část ---------------
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin

cd /etc/sysconfig/network-scripts

. network-functions

CONFIG=$1

[ -z "$CONFIG" ] && {
    echo "usage: ifup <device name>" >&2
    exit 1
}

[ -f "$CONFIG" ] || CONFIG=ifcfg-$CONFIG
[ -f "$CONFIG" ] || {
    echo "usage: ifup <device name>" >&2
    exit 1
}

if [ $UID != 0 ]; then
    if [ -x /usr/sbin/usernetctl ]; then
	exec /usr/sbin/usernetctl $CONFIG up
    fi
    echo "Users cannot control this device." >&2
    exit 1
fi

source_config

if [ "foo$2" = "fooboot" -a "${ONBOOT}" = "no" ]
then
    exit
fi

IPSETUP=no

DEVICETYPE=`echo $DEVICE | sed "s/[0-9]*$//"`
REALDEVICE=`echo $DEVICE | sed 's/:.*//g'`
if echo $DEVICE | grep -q ':' ; then
    ISALIAS=yes
else
    ISALIAS=no
fi

# Old BOOTP variable
if [ "$BOOTP" = "yes" ]; then
    BOOTPROTO=bootp
fi

OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"

if [ -x $OTHERSCRIPT ]; then
    exec $OTHERSCRIPT $CONFIG $2
fi

# is this device available? (this catches PCMCIA devices for us)
/sbin/ifconfig ${REALDEVICE} 2>&1 | grep -s "unknown interface" > /dev/null
if [ "$?" = "0" ]; then
    echo "Delaying ${DEVICE} initialization."
    exit 0
fi

if [ "$SLAVE" = yes -a "$ISALIAS" = no -a "$MASTER" != "" -a \
     -x /sbin/ifenslave ]; then
    RFLAG="" ; [ "$RECIEVE-ONLY" = yes ] && RFLAG="-r"

    ifconfig ${DEVICE} down
    echo "Enslaving $DEVICE to $MASTER"
    ifenslave $RFLAG "$DEVICE" "$MASTER"

    exit 0
fi

if [ "$BOOTPROTO" = bootp -a "$ISALIAS" = no ]; then
    ifconfig ${DEVICE} down
    ifconfig ${DEVICE} 0.0.0.0 broadcast 255.255.255.255 netmask 0.0.0.0
    route add default ${DEVICE}
    echo "Sending bootp request"
    TMPFILE=`/bin/mktemp /tmp/bootp-${DEVICE}.XXXXXX`
    bootpc --returniffail --timeoutwait 6 --dev ${DEVICE} 2>/dev/null > ${TMPFILE}
    if [ "$?" = "0" ]; then
	. ${TMPFILE}
	BOOTPHOSTNAME="$HOSTNAME"
	echo "bootp response received -- using IP ${IPADDR}"
    elif [ -z "$IPADDR" ]; then
	echo "No bootp response recieved -- not configuring device ${DEVICE}."
	rm -f ${TMPFILE}
	exit 1
    else 
	echo "No bootp response recieved -- using default configuration for device ${DEVICE}."
    fi

    rm -f ${TMPFILE}
elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
    echo -n "Using DHCP for ${DEVICE}... "

# RRR    IFNAME=${DEVICE} tady byl back slash a asi neco zanim
    IFNAME=${DEVICE} 
	/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE} 
    echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh

    if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
	echo "failed."
	exit 1
    else
	rm -f /var/run/dhcp-wait-${DEVICE}.pid
	echo "done."
	IPSETUP=yes
    fi
fi

if [ "$IPSETUP" != yes ]; then
    ifconfig ${DEVICE} ${MACADDR:+hw ether $MACADDR} ${IPADDR} \
      netmask ${NETMASK} broadcast ${BROADCAST}
    if [ "$ISALIAS" = no ] ; then
	route add -net ${NETWORK} netmask ${NETMASK} ${DEVICE}
    else
	route add -host ${IPADDR} ${DEVICE}
    fi

    # this is broken! it's only here for compatibility with old RH systems
    if [ "${GATEWAY}" != "" -a "${GATEWAY}" != "none" ]; then
	route add default gw ${GATEWAY} metric 1 ${DEVICE}
    fi

    . /etc/sysconfig/network

    if [ "${GATEWAY}" != "" ]; then
	if [ "${GATEWAYDEV}" = "" -o "${GATEWAYDEV}" = "${DEVICE}" ]; then
	    # set up default gateway
	    route add default gw ${GATEWAY} ${DEVICE}
	    DEFGW=${GATEWAY}
	fi
    fi

    if [ "$BOOTPROTO" = bootp -a "$ISALIAS" = no ]; then
	if [ -n "$GATEWAYS" ]; then
	    for gw in $GATEWAYS; do
		if [ $gw != "${DEFGW}" ]; then
		    route add default gw $gw ${DEVICE}
		fi
	    done
	fi

	if [ -n "$DNSSRVS" -a -n "$SEARCH" ]; then
	    echo "search $SEARCH" > /etc/resolv.conf
	    for dns in $DNSSRVS; do
		    echo "nameserver $dns" >> /etc/resolv.conf
	    done
	fi

	if [ -n "$BOOTPHOSTNAME" -a "`hostname`" = "(none)" ]; then
	    hostname $BOOTPHOSTNAME
	fi
    fi
fi

exec /etc/sysconfig/network-scripts/ifup-post $CONFIG
------------- další část ---------------
DEVICE=eth0
USERCTL=no
ONBOOT=yes
BOOTPROTO=dhcp
BROADCAST=193.84.251.255
NETWORK=193.84.251
NETMASK=193.84.251.0
IPADDR=


Další informace o konferenci Linux