网络宝典
第二套高阶模板 · 更大气的阅读体验

路由器转发靠什么?一张路由表就搞定

发布时间:2026-04-18 18:30:24 阅读:4 次

你家的Wi-Fi能连上,手机能刷短视频,电脑能开视频会议——背后其实有个默默干活的‘交通警察’:路由器。它不看人、不认设备,只盯着一张表干活,这张表就是路由表

转发不是猜,是查表

路由器收到一个数据包,第一反应不是‘这该发给谁’,而是‘我手头这张表里有没有匹配的条目?’它会逐条比对目的IP地址和路由表里的网络前缀(比如 192.168.1.0/24、10.0.0.0/8),找最长前缀匹配的那一项。匹配上了,就按表里写的‘下一跳’或‘出接口’把包甩出去。

路由表长啥样?举个真实例子

在一台Linux路由器上执行 ip route show,可能看到这样的内容:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
10.0.0.0/8 via 192.168.2.254 dev eth1
172.16.0.0/16 dev br-lan proto kernel scope link src 172.16.1.1

这里每一行都是一个路由表项。比如第三行:10.0.0.0/8 via 192.168.2.254 dev eth1,意思是:所有目的IP落在 10.0.0.0~10.255.255.255 范围内的包,都交给 192.168.2.254 这个下一跳,从 eth1 接口发出去。

没有匹配项?那就丢包

如果查完所有表项都没找到匹配项,路由器不会瞎猜,也不会广播问‘这是谁的?’——它直接把包扔掉,并可能回一个 ICMP ‘网络不可达’消息。所以,家里突然打不开某个公司内网系统,先看看路由器里有没有对应网段的路由项,比重启还管用。

表从哪来?三种来源很常见

路由表不是凭空写出来的:
直连路由:路由器自己接口配了IP(比如 eth0 是 192.168.1.100/24),自动加一条 192.168.1.0/24 的路由;
静态路由:管理员手动敲命令加的,比如 ip route add 172.20.0.0/16 via 192.168.5.1
动态学习:跑 OSPF、BGP 这类协议,和其他路由器‘聊天’交换来的路由信息。

不管哪种来源,最终都汇进同一张表,转发时一视同仁——只看目的IP,只比前缀长度,只走匹配最准的那条路。