Static routes are for traffic that must not, or should not, go through the default gateway. Routing is often handled by devices on the network dedicated to routing (although any device can be configured to perform routing). Therefore, it is often not necessary to configure static routes on Red Hat Enterprise Linux servers or clients. Exceptions include traffic that must pass through an encrypted VPN tunnel or traffic that should take a specific route for reasons of cost or security. The default gateway is for any and all traffic which is not destined for the local network and for which no preferred route is specified in the routing table. The default gateway is traditionally a dedicated network router.
Configuring Static Routes Using the Command Line
If static routes are required, they can be added to the routing table by means of the
ip route add
command and removed using the
ip route del
command. The more frequently used
commands take the following form:
ip route [ add | del | change | append | replace ] destination-address
man page for more details on the options and formats.
command without options to display the
routing table. For example:
~]$ ip route
default via 192.168.122.1 dev eth0 proto static metric 1024
192.168.122.0/24 dev ens9 proto kernel scope link src 192.168.122.107
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.126
To add a static route to a host address, in other words to a single
address, issue a command as
~]# ip route add 192.0.2.1 via 10.0.0.1 [
address of the host in dotted decimal notation, 10.0.0.1
is the next hop address and ifname
is the exit interface leading to the next hop.
To add a static route to a network, in other words to an
address representing a range of
addresses, issue the following command as
~]# ip route add 192.0.2.0/24 via 10.0.0.1 [
address of the destination network in dotted decimal notation and /24
is the network prefix. The network prefix is the number of enabled bits in the subnet mask. This format of network address slash network prefix length is sometimes referred to as classless inter-domain routing
Static route configuration can be stored per-interface in a
/etc/sysconfig/network-scripts/route-interface file. For example, static routes for the eth0 interface would be stored in the
/etc/sysconfig/network-scripts/route-eth0 file. The
route-interface file has two formats: ip command arguments and network/netmask directives. These are described below.
ip-route(8) man page for more information on the
ip route command.
Configuring The Default Gateway
The default gateway is determined by the network scripts which parse the
/etc/sysconfig/network file first and then the network interface
ifcfg files for interfaces that are “up”. The
ifcfg files are parsed in numerically ascending order, and the last GATEWAY directive to be read is used to compose a default route in the routing table.
The default route can thus be indicated by means of the GATEWAY directive and can be specified either globally or in interface-specific configuration files. Specifying the gateway globally has certain advantages in static networking environments, especially if more than one network interface is present. It can make fault finding simpler if applied consistently. There is also the GATEWAYDEV directive, which is a global option. If multiple devices specify GATEWAY, and one interface uses the GATEWAYDEV directive, that directive will take precedence. This option is not recommend as it can have unexpected consequences if an interface goes down and it can complicate fault finding.
In dynamic network environments, where mobile hosts are managed by NetworkManager, gateway information is likely to be interface specific and is best left to be assigned by
DHCP. In special cases where it is necessary to influence NetworkManager's selection of the exit interface to be used to reach a gateway, make use of the
DEFROUTE=no command in the
ifcfg files for those interfaces which do not lead to the default gateway.
Global default gateway configuration is stored in the
file. This file specifies gateway and host information for all network interfaces. For more information about this file and the directives it accepts, see Section D.1.14, “/etc/sysconfig/network”