Wednesday, February 16, 2011

Add permanent route

If you know there is always going to be a permanent route for a destination then a static route can be a viable option.To add a persistent static route in Redhat Enterprise Linux create a file called route-X in the /etc/sysconfig/network-scripts/ directory


where is the interface number and X is the interface number. As you would expect, these are specified in seperate file for each of the available interface.

Example:

/etc/sysconfig/network-scripts/route-eth0

/etc/sysconfig/network-scripts/route-eth1

Every entry or a route has three entities as follows:

GATEWAY=xxx.xxx.xxx.xxx

NETMASK=yyy.yyy.yyy.yyy

ADDRESS=zzz.zzz.zzz.zzz

As the names implies, they are the gateway IP, Netmask and the IP/Network Address

Note the next to each of the three entities. This number defines the route entry number and should be the same on all the entities.

Example:

GATEWAY0=192.168.1.1

NETMASK0=255.255.255.0

ADDRESS0=10.10.10.0


GATEWAY1=192.168.1.1

NETMASK1=255.255.255.0

ADDRESS1=20.20.20.2

A sample file /etc/sysconfig/static-routes is available for your reference.

Once the file is created, restart the network service as follows:

# service network restart

To view the routes type

# route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

192.168.2.0 * 255.255.255.0 U 0 0 0 eth1

10.10.10.0 * 255.255.255.0 U 0 0 0 eth0

20.20.20.2 * 255.255.255.0 U 0 0 0 eth0

169.254.0.0 * 255.255.0.0 U 0 0 0 eth1

default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

or

# ip route show

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1

192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.1

10.10.10.0/24 via 192.168.1.1 dev eth0

20.20.20.2/24 via 192.168.1.1 dev eth0

default via 192.168.1.1 dev eth0

To dynamically add a route, try the folowing:

Syntax:

# ip route add / via dev X

Example:

# ip route add 10.10.10.0/24 via 192.168.1.1 dev eth0

or

Syntax:

# route add [-net
-host] netmask gw dev X

Example:

# route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0