User Rating: 5 / 5

Star ActiveStar ActiveStar ActiveStar ActiveStar Active
 

Article Index

 

The Future

Since Linux is extremely well documented, and supports a wide variety of protocols and networking technologies (including Novell’s IPX/SPX), it’s hard to see any reason to stop using it. During the project, we were consistently amazed at how many well-written and detailed "howto" guides there were. Some of them are truly better than their commercial counterparts.

One day we may have to replace the Linux routers with dedicated hardware routers -- but it’s hard to say when and if this will happen. If the system doesn’t break, we won’t fix it.

A measurement tool to tell us what kind of routing volume we’re getting and with what kind of latency would be nice. Right now, our only way of measuring traffic is to check ifconfig output and do an average per sample period. We could just wait until the users complain that the network’s too slow, but this is probably a method to be avoided if at all possible. We’re looking into coding a program to automate the router monitoring process.

We’ve managed to save ourselves the startup costs associated with hardware routers. And, due to the nonproprietary nature of Linux, we’ve left ourselves "open" to a very flexible future.

 

About the Author

Jonathan Feldman works with UNIX and NetWare at the Chatham County Government in Savannah, Georgia. He likes to keep things simple so that even he can understand them. When he is not chasing around with his 18-month-old son, he likes to write, grow roses with his lovely wife, and play guitar with his bare feet. He is reachable via email at

This email address is being protected from spambots. You need JavaScript enabled to view it..

Figure 1: Linux Router Network DiagramFigure 1: Linux Router Network Diagram
Figure 2: RIP Gated configuration

/etc/gated.conf:
#
tracefile "/var/tmp/gated.log" replace size 100k files 2;
traceoptions general route kernel update icmp ;
rip yes ;

 

Figure 3: Token-Ring proxy arp pppd kludge

/etc/ppp/ip-up:
#!/bin/sh
# pppd calls this file when TCP/IP comes up. It supplies parameters:
# interface-name tty-device speed local-ip-address remote-ip-address
/etc/ppp/arp -d 167.195.160.115
# remove ppp’s Ethernet hardware type
/etc/ppp/arp -t tr -s 167.195.160.115 00:60:8C:24:A2:BD pub
# add "by hand"
# Use your own IP addresses and hardware addresses, please!
# you can get your own hardware address ##:##:## from ifconfig’s output
exit
/etc/ppp/ip-down:
# called by pppd when ip goes down. Same parameters supplied as ip-up.
# For some reason, with ip-up kludge, gateway daemon needs to be restarted
# when the link goes down...
/sbin/gdc restart
Figure 4: Startup files for Linux routers
/etc/rc.local startup script, both machines:
#! /bin/sh
### "router" stuff 6/95 jf
setserial /dev/ttyS0 spd_hi
sh /etc/ppp/ppplogin
/etc/rc.inet2 modifications, both machines:
#! /bin/sh
...if [ -f ${NET}/gated ]
then
echo -n " gated"
${NET}/gated
fi
...
/etc/ppp/ppplogin script, local machine:
#!/bin/sh
## Token-ring with proxyarp
/usr/lib/ppp/pppd crtscts netmask 255.255.255.0 proxyarp passive
:167.195.160.115 /dev/ttyS0 38400
echo "Point-to-point network started."
sleep 3
exit
/etc/ppp/ppplogin script, remote machine:
#!/bin/sh
/usr/lib/ppp/pppd /dev/ttyS0 38400 netmask 255.255.255.0 passive defaultroute
echo "Point-to-point network started."
sleep 3
exit
/etc/ppp/rc.inet1 modifications, local machine:
...
# Edit for your setup. Please use your own IP addresses and networks!
IPADDR="167.195.160.6"
NETMASK="255.255.255.0"
NETWORK="167.195.160.0"
BROADCAST="167.195.160.255"
GATEWAY="167.195.160.1" # Internet router
...
/sbin/route add default gw ${GATEWAY} metric 1
...
/etc/ppp/rc.inet1 modifications, remote machine:
...
#### JF: CHANGED eth0 to tr0, for obvious reasons ;-) , got rid of GATEWAY
#### stuff because ppp does its own default route.
# Edit for your setup.
IPADDR="167.195.166.1"
NETMASK="255.255.255.0"
NETWORK="167.195.166.0"
BROADCAST="167.195.166.255"
# GATEWAY="167.195.160.6"
# ppp will handle gateway
...
# /sbin/route add default gw ${GATEWAY} metric 1
...