RCP's RedHat 5.2 Linux Austin Road Runner FAQ

Version 0.14b Thu Dec 21 10:05 2000

The most recent version of this FAQ will be found on:
http://home.austin.rr.com/rcp/RRRHFAQ.html. This version is no longer maintained so expect links to be broken. It is left here for those still running RH 5.2. The see the current version of the page for later versions.

When I hooked up to Road Runner with my Linux box, I found the information I needed scattered all over the net. My goal was to connect to Road Runner using RedHat Linux version 5.2 using the stock kernel with minimum changes to the standard RedHat configuration.

I use a Dell Pentium running Redhat 5.2 as a masquerading gateway for my household LAN. I use two separate ethernet interfaces: one for my LAN and one for the net connection to the cable modem. You need two ethernet cards so that you can firewall your internal LAN from the Internet. In my opinion this is essential if you have a LAN with local servers on it.

  1. What software do I need to connect to the network via Road Runner?

    Road Runner requires two steps to gain full Internet access:

  2. Will the dhcpcd (DHCP client daemon) that comes with RedHat 5.2 work with Road Runner in Austin?

    NO! However, there are two versions that will work with the 2.0 Linux Kernel used by RedHat 5.2 and with the NT based DHCP service used by Road Runner in Austin.

  3. Is the Road Runner manager software available for Linux?

    Yes, but there are several versions. Only some work here in Austin. Road Runner uses two different protocols for its login. Cable systems using Unix servers (e.g. San Diego) use one and systems using WinNT servers (e.g. Austin and Hawaii) use a different proprietary protocol.

    There are two versions of the login software that will work in Austin: One is written in Perl, the other in C.

  4. Ok I have the software. What do I need to do?
    1. Install the new dhcpcd. Version 1.02 installs as /usr/sbin/rrdhcpcd so it will not interfere with your RedHat /sbin/dhcpcd.
    2. Modify /sbin/ifup to use rrdhcpcd. I do this by defining a new boot protocol type rrdhcp. I did this by inserting the following code in ifup:
      cd /sbin/
      diff -c /sbin/ifup.dist /sbin/ifup
      *** /sbin/ifup.dist	Thu Dec 31 01:14:48 1998
      --- /sbin/ifup	Tue Jan 12 11:48:38 1999
      ***************
      *** 112,117 ****
      --- 112,137 ----
        	echo "done."
        	IPSETUP=yes
            fi
      + elif [ "$BOOTPROTO" = rrdhcp -a "$ISALIAS" = no ]; then
      +     echo -n "Using RRDHCP for ${DEVICE}... "
      +     /sbin/ifconfig ${DEVICE} down
      +     /sbin/ifconfig ${DEVICE} -promisc arp -allmulti trailers \
      +                              -pointopoint multicast
      +     /sbin/ifconfig ${DEVICE} up
      +     /sbin/route add -host 255.255.255.255 dev ${DEVICE}
      +     IFNAME=${DEVICE} \
      + 	/usr/sbin/rrdhcpcd  -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."
      + 	. /etc/dhcpc/hostinfo-${DEVICE}
      + 	IPSETUP=no
      +     fi
        fi
        
        if [ "$IPSETUP" != yes ]; then
      ***************
      *** 136,144 ****
            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
        
      --- 156,164 ----
            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
        
      
      Diff finished at Tue Jan 12 11:48:46
      
    3. Next you create the required configuration scripts in /etc/sysconfig/network-scripts. The RedHat visual config tools won't let you define the interface with th new "rrdhcp" type that you just defined. Here are the contents of the ifcfg-eth1 file there:
      DEVICE=eth1
      USERCTL=yes
      ONBOOT=yes
      DEFROUTE=yes
      BOOTPROTO=rrdhcp
      BROADCAST=24.93.255.255
      NETWORK=24.93.0.0
      NETMASK=255.255.0.0
      IPADDR=0.0.0.0
      
      If your external network ethernet card is configured as a device other than eth1, you will need to change the interface name above.

      I also customized ifup-post to start my rrlogind when the interface comes up:

      cd /etc/sysconfig/network-scripts/
      diff -c /etc/sysconfig/network-scripts/ifup-post\~
      /etc/sysconfig/network-scripts/ifup-post
      *** /etc/sysconfig/network-scripts/ifup-post~	Thu Oct 15 11:07:52 1998
      --- /etc/sysconfig/network-scripts/ifup-post	Sun Jan  3 14:16:09 1999
      ***************
      *** 30,33 ****
      --- 30,41 ----
        # Notify programs that have requested notification
        do_netreport
        
      + #local additions
      + if [ "$DEVICE" = eth1 ] ; then
      +     /etc/rrlogind/rrrestart
      + fi
      + 
        exit 0
      
    4. I placed rrlogind, rrrestart, and the file with my password in /etc/rrlogind/

      rrrestart is a script which kills any running rrlogind and restarts it. I customized one I found (sorry, I forgot where):

      #!/bin/sh
      # rrrestart: logs the system out and back into Road Runner
      
      # First, kill the running rrclientd and wait for it to exit
      /usr/bin/killall -w -q rrlogind  
      
      # Restart the rrclientd daemon
      /etc/rrlogind/rrlogind -u youruserid /etc/rrlogind/.password logon-server &
      # logon-server.austin.rr.com is the logon host in Austin
      
    5. Optional - if you have a LAN. Configure your kernel to support IP masquerading. See the HOWTO for details. You should also add firewall packet filters to your external interface and shut down any servers on the external interface. You are on the open Internet and your machine WILL be scanned for security holes by crackers. This is all covered elsewhere so I won't confuse you here - see the HOWTOs listed at the end of this FAQ.
  5. Now you get to find out what I forgot!

    The basic operation should be to use /sbin/ifup eth1 to start the connection and /sbin/ifdown eth1 to shut it down. It seems that the Road Runner "login" does time out and some people run scripts that re-login every few hours. This seems excessive to me although a crontab entry that runs rrrestart to log you in just prior to times that your routinely use the connection might be useful.

  6. Will this setup work with other Linux distributions?

    More or less... The Vortech software (http://www.vortech.net/rrlinux/) includes versions for the 2.2 kernels and instructions for other Linux distributions. In general you should expect the scripting that incorporates dhcpcd and rrlogind to be distribution specific.

  7. Helpful references:

    Road Runner dhcp and login information:

    Dave Mitchell's Austin Road Runner Info
    http://www.dmitchell.com/AustinRRInfo/index.html
    eGroups Austin Cable Group
    http://www.egroups.com/list/cable/
    Linux Road Runner Hawaii HOWTO by Ed Orcutt
    http://hoku.net/projects/rrhowto/RoadRunner-Hawaii-HOWTO.html
    Phil Karn's Configuring LINUX for San Diego Road Runner
    The RR logon software for San Diego does not work in Austin. However, Phil's writeup has a lot of useful information about Road Runner and Linux.
    http://people.qualcomm.com/karn/rr/linux.html
    RR Linux Help
    http://www.vortech.net/rrlinux/
    especially the RedHat info http://www.vortech.net/rrlinux/redhat.htm

    Firewalls and Masquerading:

    Linux IP Masquerade Resource
    http://ipmasq.cjb.net/
    Linux LAN & Firewall FAQ
    This includes the excellent Linux IPFW Firewall Design Tool
    http://www.linux-firewall-tools.com/linux/
    Masq Apps web page
    (link bad now - http://dijon.nais.com/~nevo/masq/ )
    Linux Magazine - Setting Up IP Masquarade
    http://www.linux-mag.com/1999-08/guru_01.html

    HOWTOs:

    Installing multiple ethernet cards
    See your RedHat Linux 5.2 - The Official Red Hat Linux Installation Guide Appendix D.3 - Ethernet parameters (p. 303 or /usr/doc/rhl-install-guide-en-5.2/manual/doc110.html) and Section 8.2.2 - Kernel Daemon Configuration (p. 156 or /usr/doc/rhl-install-guide-en-5.2/manual/doc063.html).
    Linux Documentation Project (LDP) HOWTOs
    are at http://www.linuxdoc.org/ or in your RedHat distribution:
  8. Please send any corrections or updates to this material to me, Rob Pettengill at
    rpettengill@austin.rr.com

©1999 Robert Pettengill - permission is given for any non-commercial use provided the content is unaltered and attribution is given.