🔌 第三章 从网线到网络设备
📄 一句话概括

用【目的 IP AND 掩码】逐条比对路由表,命中多条时选最长匹配——掩码越长越具体,优先级越高。

📝 本节和前面几节的关系

3.3.3 收下了包;本篇是路由器最核心的一步——查表。

一、比对算法

对每条记录:目的 IP AND 掩码 → 得网段 → 相等即命中; 多条命中时选最长匹配(掩码位数多者胜)。

二、为什么要最长匹配

越具体的规则越懂这包该去哪—— 例如 /32 主机路由优先于 /24 网段路由,/24 又优先于默认。

三、动手 Demo:查表定出口

一次查表过程:

dst = '192.168.2.7'
print(dst, 'AND 255.255.255.0 = 192.168.2.0')
print('命中 192.168.2.0/24 -> 出口 192.168.1.254')

实跑输出:

--------------------------------------------------------------------
查表定出口
--------------------------------------------------------------------
  用【目的 IP AND 掩码】去比对每条记录:

    目的 IP 192.168.2.7
      AND 255.255.255.0 = 192.168.2.0
      -> 命中 192.168.2.0/24 条目
      -> 出口 192.168.1.254

  多条命中时选**最长匹配**(掩码最长者胜)——
  越具体的规则优先,30 位的比 24 位的更优先。

主机上也有一张同样的表(默认网关就是默认路由)—— 12 课 6.18 讲的就是这件事。

30 秒实验

  1. route print 里找出最长匹配的例子(/32 主机路由)。
  2. 手算 10.1.2.3 对 /8、/16、/24 三条记录哪条命中。
  3. 想想【多条命中取最长】若改成【取最短】会出什么乱子。

常见误区

  1. 以为逐条试到第一条命中就算——要选最长匹配。
  2. 以为主机不需要路由表——本机也有。
自测三问(点开对答案) 1. 路由表比对怎么做? —— 目的 IP AND 掩码,比对网段。 2. 多条命中怎么选? —— 最长匹配(掩码位数最多)。 3. 主机上有路由表吗? —— 有,默认网关即默认路由。

相关笔记