How to Use the Command 'route' (with Examples)
The route
command is a powerful networking utility that is used to view and manipulate the IP routing table within your operating system. This command allows network administrators to add, delete, and display routes, ultimately helping in the management of routing paths for data packets within a network. Proper configuration of the routing table can lead to more efficient network traffic flow, improved network performance, and enhanced security.
Use Case 1: Display the Information of Route Table
Code:
route -n
Motivation:
Understanding the current state of your routing table is crucial for diagnosing network issues and ensuring that routing paths are configured as expected. By displaying the routing table, network administrators can verify existing routes, identify incorrect entries, and plan necessary adjustments. This insight into the network’s routing behavior is essential for efficient network management, particularly in complex environments where multiple network paths and subnets exist.
Explanation:
route
: This invokes the route command itself, which is used to interact with the network’s routing table.-n
: This option displays the routing table with numeric addresses instead of resolving host and network names. Numeric addresses provide a clearer and faster display, omitting potential delays or errors from DNS lookups.
Example Output:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
In this output, the table lists destination networks, the gateways used to route traffic, the subnet mask, and the interface through which the traffic exits. Flags give additional info, such as ‘U’ for up and ‘G’ for gateway.
Use Case 2: Add Route Rule
Code:
sudo route add -net ip_address netmask netmask_address gw gw_address
Motivation:
Adding a new route to the routing table is necessary when you want to direct traffic to a specific network or subnet through a particular gateway. This action allows you to define explicit paths for traffic, which can enhance network efficiency and security by ensuring data packets follow optimal paths to their destinations. For instance, in a scenario where new servers or subnets are added to a network, setting up a specific route makes sure that data packets reach these new destinations correctly.
Explanation:
sudo
: Utilizing superuser privileges is necessary because modifications to the routing table require administrative rights.route add
: Theadd
keyword signifies the intent to add a new route entry.-net
: Specifies that the route is to a network.ip_address
: Placeholder for the address of the network you intend to reach.netmask
: Indicates the subnet mask for the destination network.netmask_address
: Placeholder for the actual subnet mask value.gw
: Stands for “gateway,” specifies the router through which traffic should be directed.gw_address
: Placeholder for the actual gateway IP address that handles packets for the defined network.
Example Output:
After executing the command, you won’t see a direct output, but the routing table would reflect the new entry, which can be verified with route -n
.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 192.168.1.254 255.255.255.0 UG 0 0 0 eth0
This new entry routes traffic for the 192.168.2.0 network through the 192.168.1.254 gateway.
Use Case 3: Delete Route Rule
Code:
sudo route del -net ip_address netmask netmask_address dev gw_address
Motivation:
Deleting a route is necessary when the network topology changes or redundant/unnecessary routes need to be removed to maintain an efficient routing table. This step helps to prevent confusion and inefficiencies in traffic distribution. For example, if a network segment is decommissioned or its routing requirements change, removing the old route ensures that no packets are sent to outdated or irrelevant paths.
Explanation:
sudo
: Superuser privileges are required to modify the routing table.route del
: Thedel
keyword indicates the removal of an existing route entry from the routing table.-net
: Specifies that the route being removed is a network route.ip_address
: Placeholder for the network address of the route to remove.netmask
: Specifies the subnet mask associated with the route.netmask_address
: Placeholder for the actual subnet mask value.dev
: Specifies the outgoing network interface for the route.gw_address
: Although typically this refers to the gateway, in this context, you would likely specify the interface through which the route is to be removed.
Example Output:
Like with adding a route, there is no direct output from deleting a route. Verification is done by inspecting the updated routing table with route -n
to ensure the entry is gone.
Kernel IP routing table
(no entry for the deleted route)
This ensures traffic no longer attempts to use a path that no longer exists or is not optimal.
Conclusion:
Using the route
command efficiently demands an understanding of network structures and administrative privileges. By mastering the addition, deletion, and display of routing tables, network administrators can greatly enhance the performance and reliability of their networks, ensuring smooth data transmission amid complex routing requirements.