路由表基础知识完全整理

按顺序了解数据包是如何找到目的地的。

什么是路由表

路由器或计算机在发送数据包时用来查询路径信息的清单。它按目的网络整理了"应该往这个方向发送"的规则,每当数据包到达时,设备都会查阅这张表来决定下一步该送往哪里。

目的网络与下一跳(Next Hop)

路由表中的每一条记录本质上都是一条规则:"要到达这个目的网络,就把数据包发送给这个下一台设备(下一跳)"。如果目的地不在直接相连的网络中,数据包就会被交给下一台路由器,并在那里重复同样的查找过程。

默认路由

当路由表中没有与数据包目的地精确匹配的记录时使用的"其余所有情况"的路径。在家庭网络中,通常由路由器通往互联网方向的默认网关承担这一角色。

Metric(优先级)

当存在多条通往同一目的地的路径时,用来决定优先使用哪一条的数值。一般来说,数值越小,该路径的优先级越高。

静态路由

由管理员手动输入并固定下来的路由方式。在小型网络中配置简单、行为容易预测,但每当网络结构发生变化,都需要人工修改相应记录。

动态路由

路由器之间通过路由协议互相交换信息,自动计算并更新最优路径的方式。主要用于结构经常变化的大型网络,或互联网骨干网络这类场景。

在自己电脑上查看路由表的方法

在Windows上,可以在命令提示符中输入route print;在Mac或Linux上,可以在终端中执行netstat -rn或ip route命令,直接查看当前系统的路由表。

互联网规模的动态路由是如何运作的

这里介绍的路由表概念,是在单个网络或小范围互联网络内运作的。而在互联网规模上,路由器之间会运行诸如BGP之类的协议,在成千上万个各自独立运营的网络之间交换可达性信息,这是一个比家庭或办公室内静态、动态路由复杂得多、也涉及更多协调的过程。

排查网络问题时还能用到的其他命令

除了查看路由表之外,系统内置的一些命令行工具——比如逐跳追踪到目的地路径的命令,或用来做基本连通性测试的命令——在自己排查电脑连接问题时也十分实用,值得一并了解。

常见问题

家用路由器也有路由表吗?

有的,不过通常非常简单,大多只包含内部网络和通往互联网的默认路由,普通用户几乎不需要特意去关注它。

route print或ip route的结果看起来太复杂了。

刚开始可以只关注目的地、子网掩码、网关和接口这几项。大多数记录其实可以归纳为两类:默认路由(0.0.0.0)和通往自己所在本地网络的路由。