Overview
With the introduction of Redhat version 8 and continued into version 9,
the /etc/sysconfig/static-routes file no longer
seems to function correctly.
Linux static routes changed in 8.0 to a new format. Now you are to
create a file in /etc/sysconfig/network-scripts for each
Ethernet interface you wish to create static routes on.
Example:
touch /etc/sysconfig/network-scripts/route-eth0
The syntax for this file is different from the traditional route format
used in /etc/sysconfig/static-routes . Redhat has yet to
document the change on their web site as of June 2003.
Syntax based on a usenet post go to
/etc/sysconfig/network-scripts, make a file called
route-devicename (ex: route-eth0) and populate it with your static routes for that device
so if you wanted to make a static route to the 192.168.0.0/24 network through 152.3.182.5
type:
192.168.0.0/24 via 152.3.182.5
Persistent static routes for ANY linux
distribution
You may use this method to add static routes and it will work under any
Linux distribution. However, it is considered by some a 'hack' or the 'ugly way'.
Edit your /etc/rc.local file and add your static routes using the route
statement.
Example:
route add -net 10.10.98.0 netmask 255.255.255.0 gw 10.164.234.132
dev eth1
route add -net 10.164.234.96 netmask 255.255.255.252 gw 10.164.234.132 dev eth1
route add -net 10.164.234.112 netmask 255.255.255.240 gw 10.164.234.132 dev eth1
Force the old static-routes file to work under Redhat 9
Clear out the new /etc/sysconfig/network-scripts/ifup-routes script so that you can
populate it with the original shell script from Redhat 7.x.
cat /dev/null > /etc/sysconfig/network-scripts/ifup-routes
vi /etc/sysconfig/network-scripts/ifup-routes
type in the following (or copy and paste) not including the tilde
lines:
#!/bin/sh
# adds static routes which go through device $1
if [ "$1" = "" ]; then
echo "usage: $0 <net-device>"
exit 1
fi
if [ ! -f /etc/sysconfig/static-routes ]; then
exit 0
fi
# note the trailing space in the grep gets rid of
aliases
grep "^$1 " /etc/sysconfig/static-routes | while read device args; do
/sbin/route add -$args $device
done
grep "^any " /etc/sysconfig/static-routes | while read ignore type net netmask mask bogus
dev ; do
if [ "$dev" = "$1" ]; then
/sbin/route add -$type $net $netmask $mask $dev
fi
done
Remember to use /etc/sysconfig/network for your default gateway
If you only intend to add one route, your default gateway, then you
need not worry about the static routes file or using the route command. Simply add your
default gateway in /etc/sysconfig/network.
Example
NETWORKING=yes
HOSTNAME="hostname.linux.org"
GATEWAY="10.164.234.1"
GATEWAYDEV="eth0"
FORWARD_IPV4="yes"
|