Routing Tables & Gateways
Learn how to inspect and manipulate Linux routing tables to control how network traffic is forwarded to its destination.
Routing Tables & Gateways is a free Linux Networking & TCP/IP for Developers lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Linux Networking & TCP/IP for Developers learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
What are Routing Tables?
Imagine your computer needs to send data to another device on a different network. How does it know which path to take?
That's where the routing table comes in! It's like a map for your operating system, containing rules that tell it where to forward network traffic.
- Each rule specifies a destination network or host.
- It also points to the 'next hop' or interface to use.
Inspecting Your Routing Table
In Linux, the primary command to view the routing table is ip route show (or just ip route). Let's see what it looks like:
ip route showUnderstanding Route Output
When you run ip route show, you'll see entries that typically include:
- Destination: The network or host traffic is headed to.
- via: The gateway (next hop router) to send traffic through.
- dev: The local network interface to use (e.g., eth0, wlan0).
- src: The source IP address your system will use for outgoing packets.
- metric: A preference value; lower is generally preferred.
The Default Gateway
One crucial entry in the routing table is the default route. It's often shown as default via <IP> dev <interface>.
This is your network's 'gateway of last resort'. If no other specific route matches the destination IP, traffic is sent to this default gateway. This is usually your router that connects you to the internet.
ip route show defaultAdding a Static Route
You can manually add routes to the routing table. This is useful for directing traffic to specific networks that aren't reachable via the default route, or for creating isolated network segments.
Use ip route add to add a temporary static route. Remember, sudo is often required.
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
# This adds a route for 192.168.2.0/24
# via gateway 192.168.1.1 on eth0Verifying the New Route
After adding a route, it's good practice to verify that it's present in the routing table. Just run ip route show again and look for your newly added entry.
ip route showDeleting a Static Route
Just as you can add routes, you can also remove them. This is useful for correcting mistakes or cleaning up temporary configurations.
Use ip route del with the exact same parameters you used to add the route.
sudo ip route del 192.168.2.0/24 via 192.168.1.1 dev eth0
# Removes the route we just addedGateways: The Next Hop
A gateway is a network node that serves as an access point to another network. It's essentially a router that forwards packets between different networks.
When your computer sends data to a destination outside its immediate local network, it sends the data to its configured gateway, which then handles the forwarding.
Temporary vs. Permanent Routes
Routes added with the ip route command are temporary. This means they will be lost if your network service restarts or if the system reboots.
For permanent routes, you need to configure them in system-specific network configuration files. The exact location depends on your Linux distribution (e.g., files under /etc/netplan/, /etc/network/interfaces, or in network scripts).
Routing Table Challenge
You just learned how to inspect and manipulate routing tables. Let's test your understanding!
Recap: Routing Essentials
Great job! You've learned the basics of Linux routing tables and gateways.
- Routing tables guide network traffic.
- Use
ip route showto inspect them. - The default route is for unknown destinations.
- You can temporarily add and delete routes with
ip route addandip route del. - Gateways are next-hop devices for reaching other networks.
Understanding routing is key to troubleshooting network connectivity!
Frequently asked questions
Is the “Routing Tables & Gateways” lesson free?
Yes — the full text of “Routing Tables & Gateways” is free to read here on the web, and the Linux Networking & TCP/IP for Developers course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Linux Networking & TCP/IP for Developers course, upgrade to CoddyKit PRO.
What will I learn in “Routing Tables & Gateways”?
Learn how to inspect and manipulate Linux routing tables to control how network traffic is forwarded to its destination. You practise Linux Networking & TCP/IP for Developers with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Linux Networking & TCP/IP for Developers?
No prior experience is required. Linux Networking & TCP/IP for Developers on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Routing Tables & Gateways” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Linux Networking & TCP/IP for Developers lesson?
Yes. Every Linux Networking & TCP/IP for Developers lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.