4.4. Configuring Static Routes
Routing will be configured on routing devices, therefore it should not be necessary to configure static routes on Red Hat Enterprise Linux servers or clients. However, if static routes are required they can be configured for each interface. This can be useful if you have multiple interfaces in different subnets. Use the
route command to display the IP routing table.
Static route configuration is stored in a
/etc/sysconfig/network-scripts/route- file. For example, static routes for the eth0 interface would be stored in the
/etc/sysconfig/network-scripts/route-eth0 file. The
route- file has two formats: IP command arguments and network/netmask directives.
IP Command Arguments Format
Define a default gateway on the first line. This is only required if the default gateway is not set via DHCP:
X.X.X.X is the IP address of the default gateway. The
interface is the interface that is connected to, or can reach, the default gateway.
Define a static route. Each line is parsed as an individual route:
X.X.X.X/X is the network number and netmask for the static route.
interface are the IP address and interface for the default gateway respectively. The
X.X.X.X address does not have to be the default gateway IP address. In most cases,
X.X.X.X will be an IP address in a different subnet, and
interface will be the interface that is connected to, or can reach, that subnet. Add as many static routes as required.
The following is a sample
route-eth0 file using the IP command arguments format. The default gateway is 192.168.0.1, interface eth0. The two static routes are for the 10.10.10.0/24 and 172.16.1.0/24 networks:
default 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 dev eth0
172.16.1.0/24 via 192.168.0.1 dev eth0
Static routes should only be configured for other subnets. The above example is not necessary, since packets going to the 10.10.10.0/24 and 172.16.1.0/24 networks will use the default gateway anyway. Below is an example of setting static routes to a different subnet, on a machine in a 192.168.0.0/24 subnet. The example machine has an eth0 interface in the 192.168.0.0/24 subnet, and an eth1 interface (10.10.10.1) in the 10.10.10.0/24 subnet:
10.10.10.0/24 via 10.10.10.1 dev eth1
If the default gateway is already assigned from DHCP, the IP command arguments format can cause one of two errors during start-up, or when bringing up an interface from the down state using the
ifup command: "RTNETLINK answers: File exists" or 'Error: either "to" is a duplicate, or "
X.X.X.X" is a garbage.', where
X.X.X.X is the gateway, or a different IP address. These errors can also occur if you have another route to another network using the default gateway. Both of these errors are safe to ignore.
Network/Netmask Directives Format
You can also use the network/netmask directives format for
route- files. The following is a template for the network/netmask format, with instructions following afterwards:
ADDRESS0= is the network number for the static route.
NETMASK0= is the netmask for the network number defined with
GATEWAY0= is the default gateway, or an IP address that can be used to reach
The following is a sample
route-eth0 file using the network/netmask directives format. The default gateway is 192.168.0.1, interface eth0. The two static routes are for the 10.10.10.0/24 and 172.16.1.0/24 networks. However, as mentioned before, this example is not necessary as the 10.10.10.0/24 and 172.16.1.0/24 networks would use the default gateway anyway:
Subsequent static routes must be numbered sequentially, and must not skip any values. For example,
ADDRESS2, and so on.
Below is an example of setting static routes to a different subnet, on a machine in the 192.168.0.0/24 subnet. The example machine has an eth0 interface in the 192.168.0.0/24 subnet, and an eth1 interface (10.10.10.1) in the 10.10.10.0/24 subnet:
DHCP should assign these settings automatically, therefore it should not be necessary to configure static routes on Red Hat Enterprise Linux servers or clients.