📡 第三章 路由器和它庞大的功能
📄 一句话概括

路由器的第一件工作对象不是包,是网段。 地址管理就是「哪个前缀在哪一边」——这一层错一位,后面全错。

📝 本节和前面几节的关系

03.04 讲完产品目录,从这一节进「路由器内部到底在管什么」。 这一节算子网,是后面所有路由选择的地基。

一、前缀每加一位,主机数减半

一个 /24 是 256 个地址,能用的只有 254 个:首地址是网络号、末地址是广播地址, 两个都不能分给主机。

前缀 地址数 可用主机 典型用途


/24 256 254 办公网段 /25 128 126 半个办公网段 /26 64 62 /27 32 30 /28 16 14 小部门 /29 8 6 /30 4 2 点对点互联 /31 2 0(RFC 3021 后可 2) 点对点链路 /32 1 0 环回/主机路由

表里 /31 那一行是最容易被老资料带偏的地方:按老规矩它「可用 0」, 因为两个地址被网络号与广播占了。但 RFC 3021 之后,/31 可以专用于点对点链路,两个地址都能用。

二、点对点链路为什么偏爱 /30 和 /31

两台路由器直连,只需要两个地址。用 /24 就浪费了 252 个。

/30 是「保守做法」:两个可用地址,加网络号与广播,正好 4 个,不违反老规矩,任何设备都认。 /31 是「省地址做法」:2 个地址全用,省一半, 代价是要求两端都支持 RFC 3021——老设备可能直接拒绝配。

所以现场的做法是:运营商互联优先 /30(兼容性第一),地址紧张时再上 /31。 这也是为什么「互联段要用 /30」这句话在教材里反复出现。

三、地址规划要留白

网络里最贵的操作不是加设备,是重排地址。加一台设备改一行配置; 重排地址要改主机、改防火墙、改 NAT、改监控、改文档。

所以规划按两维切:一维是「区域」(楼层、机房、分支),一维是「功能」(办公、服务器、管理、 语音、监控)。每一维都预留一段空着。

留白的比例经验值是 30% 到 50%:一个部门现在 40 人,就给 /26(62 个可用),不是给 /27。 多给的那 30 个地址是「以后不用重排」的保险费。

四、动手 Demo:子网划分,一个 /24 能切出几个 /30

这段列出 /24 到 /32 的地址数与可用主机数,再按「一个 /24 切 /30」算最多能切几段, 并把浪费率算出来。

for p in range(24, 33):
    n = 2 ** (32 - p)
    T([u"/%d" % p, u"%d" % n, u"%d" % max(n - 2, 0)], [0, 0, 0])
P(u"  一个 /24 最多切 %d 个 /30。" % (256 // 4))

实跑输出:

--------------------------------------------------------------------
子网划分,一个 /24 能切出几个 /30
--------------------------------------------------------------------
**路由器的第一件工作对象是「网段」。**这一节把子网划分算清。

**前缀长度与可用主机数**:

  前缀     地址数     可用主机     典型用途
  -------------------------------------------------------
  /24      256        254          办公网段
  /25      128        126
  /26      64         62
  /27      32         30
  /28      16         14           小部门
  /29      8          6
  /30      4          2            点对点互联
  /31      2          0            点对点(RFC 3021)
  /32      1          0            环回/主机路由

**注意 /31 与 /32 那两行「可用 0」是旧规矩**:RFC 3021 之后 /31 可以用于点对点链路,
**两个地址都能用,省一半地址。**
**所以「每个网段必须浪费两个地址」这句话在今天不成立。**

**算一个实际问题:一个 /24 要切成多少个 /30 的互联段?**

  /24 有 256 个地址,一个 /30 占 4 个,所以最多 64 个 /30。

**但实际上切不出这么多**:路由器互联通常只需要几个 /30,剩下的地址要留给主机。
**所以真实做法是「先规划拓扑,再倒推子网」**,不是「先切满再说」。

**最后一条实践**:地址规划要「留白」。
**每个区域预留一段、每个功能预留一段**,**这样以后加设备不用重排——重排是网络里最贵的操作。**

256 除以 4 是 64 段,但真没人这么用:切满之后一个主机地址都不剩, 这个 /24 就只剩互联功能了。

/30 的浪费率是 50%(4 个地址只用 2 个)。 所以点对点链路一多,地址就紧张——这就是 /31 被提出来的直接原因。

「留白」在表里看不出来,但它是这张表最重要的用法:表告诉你「每种前缀能装多少人」, 规划时要拿它去反推「该给多大」,而不是「能切多细就切多细」。

30 秒实验

  1. 看你电脑的 IP 与掩码,算出它所在网段的首地址与末地址。
  2. 数一下这个网段里现在有几台设备在用,算一下占用率。
  3. 想一想:如果要把这个网段从 /24 扩成 /23,要改哪些东西?

常见误区

  1. 以为 /24 就是 255 个地址。是 256 个,可用 254 个。
  2. 以为点对点互联也要给 /24。两个地址就够,浪费 252 个。
  3. 以为地址随便先用,以后再整理。重排是全网级动作,最贵。
自测三问(点开对答案) 1. /24 为什么只能分给主机 254 个地址? —— 首地址是网络号、末地址是广播地址,两个都不能分配给主机。 2. /31 为什么能省一半地址? —— RFC 3021 允许点对点链路把两个地址都当主机地址用。 3. 为什么地址规划要留 30% 到 50% 空白? —— 以后加设备不用重排,重排地址是网络里最贵的操作。

下一节:地址分好了,看一个包怎么按这些地址走完全程。

相关笔记