RedHat Linux Enterprise WS network lan dhcp script problem.

Discussion in 'Linux Networking' started by CaptWiggum, Apr 21, 2005.

  1. CaptWiggum

    CaptWiggum Guest

    SUMMARY:

    RedHat Linux Enterprise WS network lan dhcp startup
    scripts problem. The bootup rc script reports:
    "failed; no link present. Check cable?"

    But if I plug the same cable into a mac or windows pc,
    then it works fine. I know the cable and network are good.
    What's more, this behavior is the same on two brand new
    dell / redhat systems. So I don't think its a bad card.

    Solution:

    First, many people told me that dhclient did not work for
    them, so I downloaded the 'pump' RPM to replace dhclient,
    and edited the the ifup script to try pump first, before
    dhclient. Then "ifup eth0" would work from the command
    line after boot, but still would not work during boot.

    I think there is a bug in one of the rc scripts.
    Detail below, but the fix was simply to edit the file:
    /etc/sysconfig/network-scripts/ifup
    and comment out these lines, beginning around line 240:

    # echo
    # echo -n $"Determining IP information for ${DEVICE}..."
    # if check_link_down ${DEVICE}; then
    # echo $" failed; no link present. Check cable?"
    # ip link set dev ${DEVICE} down >/dev/null 2>&1
    # exit 1
    # fi

    After commenting out, I reboot, and all works fine.

    DETAIL:

    When booting, the network rc script calls the ifup script.
    It fails with the message above. But, after it boots, if
    I go to a terminal, su to root, and do a "ifup eth0", then
    it works fine. But I did not want to have to do this every
    time I booted. I wanted to fix the rc scripts.
    So I investigated this...

    On boot, /etc/rc.d/* will call the script with param:
    "init.d/network start"
    This will call the script
    "/etc/sysconfig/network-scripts/ifup eth0"
    That sources the support file
    "/etc/sysconfig/network-scripts/network-functions"
    which has a function in it called check_link_down

    Now, ifup calls check_link_down, which loops for 5
    seconds, and checks every 1/2 second for good values.
    Good values are a "Link detected: yes" from ethtool,
    and "link ok" from mii-tool. Both of these tools just
    check the very low level status of the interface.

    I looks like check_link_down fails if the link is UP
    instead of down. That seems backwards to me. Maybe
    it previously set it down, and it is waiting for it to go
    down. I don't know. I just know this Dell / RedHat combo
    did not work with it. The above simple edit fixes it.

    Hope this helps someone!
     
    CaptWiggum, Apr 21, 2005
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.