Host can't reach another subnet
When the routers can ping across the link but the hosts behind them can't reach each other, the link is fine. The routing isn't. A router only knows the networks it's directly connected to or explicitly told about, and connectivity needs a working path in both directions.
What it means
Inter-subnet traffic needs each router to have a route to the destination network. A missing static or dynamic route on either router (or an asymmetric path where the return route is missing) breaks end-to-end reachability even when the routers themselves are reachable.
Most common causes
- Missing route to the far subnet. The router has no entry for the destination network, so it drops the packet (or sends it to a default that goes nowhere useful).
- Missing return route. Forward traffic reaches the far host, but its replies have no route back. Connectivity needs both directions.
- Wrong host default gateway. If the host points at the wrong gateway, traffic never reaches the router that can route it.
How to fix it
- On each router, check `show ip route` for the other host's subnet.
- Add the missing route (static or via your IGP) on whichever router lacks it.
- Confirm the return route exists on the far router too.
- Verify each host's IP, mask, and default gateway.