Okojyo Soft子网计算器

IPv4·IPv6 子网计算器

CIDR、子网掩码、通配符掩码、地址范围,用哪种写法输入都可以,边输入边出结果。每个值都能一键复制。

  • 全部在浏览器中计算
  • 无广告、无 Cookie、无需注册
  • 特殊用途地址依据 IANA 注册表
  • IPv4·IPv6
也可输入 192.168.1.10 255.255.255.0 或 10.0.0.5 - 10.0.0.90
示例
可用主机数
地址总数
可用范围
网络位主机位边界点击任意一位,即可把边界移到那里。

地址

类别

表示法

名称解析

划分

把地址块切开,直观地看。

以上方的结果为起点。可以把任意地址块对半切开,也可以把两半重新合并,一眼看清地址空间的分配。网页版最多 64 个地址块。

起始地址块
#地址块可用范围主机数名称操作

在这里填写的名称,关闭标签页后就会消失。在 SubnetDeck 中,每个站点的规划(网段名称、大小和 VLSM 分配)都按客户或项目保存在文件夹里。

了解 SubnetDeck

对照表

子网掩码对照表

列出所有 IPv4 前缀的掩码、通配符掩码和主机数,以及实际工作中常见的 IPv6 大小。点击任意一行即可用该值计算。

IPv4 的 /8 至 /32。可用主机数为减去网络地址和广播地址后的数量(/31、/32 除外)。
前缀子网掩码通配符掩码地址数可用主机数与 /24 的关系典型用途
/00.0.0.0255.255.255.2554,294,967,2964,294,967,294/24 × 16,777,216
/1128.0.0.0127.255.255.2552,147,483,6482,147,483,646/24 × 8,388,608
/2192.0.0.063.255.255.2551,073,741,8241,073,741,822/24 × 4,194,304
/3224.0.0.031.255.255.255536,870,912536,870,910/24 × 2,097,152
/4240.0.0.015.255.255.255268,435,456268,435,454/24 × 1,048,576
/5248.0.0.07.255.255.255134,217,728134,217,726/24 × 524,288
/6252.0.0.03.255.255.25567,108,86467,108,862/24 × 262,144
/7254.0.0.01.255.255.25533,554,43233,554,430/24 × 131,072
/8255.0.0.00.255.255.25516,777,21616,777,214/24 × 65,53610.0.0.0/8 私有地址空间
/9255.128.0.00.127.255.2558,388,6088,388,606/24 × 32,768
/10255.192.0.00.63.255.2554,194,3044,194,302/24 × 16,384
/11255.224.0.00.31.255.2552,097,1522,097,150/24 × 8,192
/12255.240.0.00.15.255.2551,048,5761,048,574/24 × 4,096172.16.0.0/12 私有地址空间
/13255.248.0.00.7.255.255524,288524,286/24 × 2,048
/14255.252.0.00.3.255.255262,144262,142/24 × 1,024
/15255.254.0.00.1.255.255131,072131,070/24 × 512
/16255.255.0.00.0.255.25565,53665,534/24 × 256园区或大型站点;192.168.0.0/16
/17255.255.128.00.0.127.25532,76832,766/24 × 128
/18255.255.192.00.0.63.25516,38416,382/24 × 64
/19255.255.224.00.0.31.2558,1928,190/24 × 32大型站点或云上网络
/20255.255.240.00.0.15.2554,0964,094/24 × 16大型站点或云上网络
/21255.255.248.00.0.7.2552,0482,046/24 × 8
/22255.255.252.00.0.3.2551,0241,022/24 × 4中型办公室(有线+无线)
/23255.255.254.00.0.1.255512510/24 × 2终端较多的无线网络
/24255.255.255.00.0.0.255256254/24 中可容纳 1 个标准 LAN 网段
/25255.255.255.1280.0.0.127128126/24 中可容纳 2 个/24 的一半
/26255.255.255.1920.0.0.636462/24 中可容纳 4 个服务器或设备管理(最多 62 台)
/27255.255.255.2240.0.0.313230/24 中可容纳 8 个打印机等小型网段
/28255.255.255.2400.0.0.151614/24 中可容纳 16 个小型 DMZ
/29255.255.255.2480.0.0.786/24 中可容纳 32 个路由器或防火墙之间
/30255.255.255.2520.0.0.342/24 中可容纳 64 个点对点链路(传统做法)
/31255.255.255.2540.0.0.122/24 中可容纳 128 个点对点链路(RFC 3021)
/32255.255.255.2550.0.0.011/24 中可容纳 256 个单台主机、环回地址

IPv4 的 /8 至 /32。可用主机数为减去网络地址和广播地址后的数量(/31、/32 除外)。

讲解

为什么会得出这个数。

SubnetDeck「讲解」页 11 篇中的 10 篇,全文呈现。讲的不是要背的规则,而是背后的原理。

01

掩码与前缀长度同一边界的两种写法

子网掩码和前缀长度是同一边界的两种写法。255.255.255.0 与 /24 指的是同一回事。这个边界划分的是什么,又为什么只能用整数表示,回到32位的排列就能明白。

子网掩码和前缀长度是同一边界的两种写法。255.255.255.0 与 /24 指的是同一回事。这个边界划分的是什么,又为什么只能用整数表示,回到32位的排列就能明白。

IPv4地址是一个32位的数值。这32位中,哪些表示网络、哪些表示其中的设备,地址本身并没有写明。另行指明边界位置的,就是子网掩码。

子网掩码与地址一样是32位的排列,网络部分的位为1,主机部分的位为0。把 255.255.255.0 写成二进制,就是24个1后面接8个0。用一个数值表示这“24个1”的,就是前缀长度,写作 /24。两者是同一边界的不同记法,所指的位置并无不同。

掩码中的1必须从左起连续排列。RFC 1812(1995年6月)将此定为要求,中间夹有0的排列在当今的路由中无法处理。原因在于匹配的方式。判断某个目的地址是否属于该网络,只需进行一次比较:高n位是否一致。只要1是连续的,边界就能用n这一个数值表示,比较也只是前缀匹配。若1不连续,就必须另外传递要比较哪些位;多条路由同时匹配时无法决定采用哪一条,也无法把多个范围合并为一个。

因此,前缀长度是0到32之间的整数,边界不能落在某一位的中间。主机部分剩余的位数,由32减去前缀长度决定。

要点

  • 255.255.255.0 与 /24 是同一边界的不同写法。无论以哪种形式输入,得到的网络都相同。
  • 通配符掩码是0和1的作用与子网掩码相反的排列。为0的位表示必须一致的位置,为1的位表示取值不限的位置。它与子网掩码不是一回事。
  • IPv6没有点分形式的掩码写法,边界只用前缀长度表示。
  • 仅凭前缀长度无法确定网络。/24 这一写法只表示边界的位置,具体是哪个网络要与地址一起才能确定。
02

网络地址与广播地址为什么要扣除这两个

每个子网中都有两个不能分配给设备的地址:网络地址和广播地址。由于这两个被排除在外,可用主机数比地址总数少2。为什么偏偏是这两个,看一看主机部分的位排列就能明白。

每个子网中都有两个不能分配给设备的地址:网络地址和广播地址。由于这两个被排除在外,可用主机数比地址总数少2。为什么偏偏是这两个,看一看主机部分的位排列就能明白。

子网中有两个地址不分配给设备:主机部分的位全为0的地址和全为1的地址。

主机部分全为0的地址称为网络地址,用作指代该子网本身的标识。路由表中写的 192.168.10.0/24 这样的记法,就是这种形式。假如把这个地址分配给一台设备,指代整个网络的排列与指代其中一台设备的排列就会完全相同。由于无法区分二者,它被排除在分配对象之外。

主机部分全为1的地址称为广播地址,用于把该子网上的所有设备指定为目的地。RFC 919 和 RFC 922(均为1984年10月)规定了这一格式。这种排列是为了同时送达多个对象,因此不能分配给某一台特定的设备。

排除这两个之后,可用主机数就是地址总数减去2。/24 为 256 − 2,即254;/26 为 64 − 2,即62。

另外,“最小地址和最大地址”这种记忆方式,只是把结果换了个说法。定义在于主机部分的位排列,数值上的大小是由此推出的。

要点

  • 网络地址和广播地址由主机部分的位是全0还是全1决定。数值上的最小、最大,是由此产生的结果。
  • 同一个地址,前缀长度一变,作用也随之改变。192.168.10.64 在 /26 中是网络地址,在 /24 中则是可以分配给设备的地址。
  • IPv6中不存在广播。发往所有节点的通信通过组播进行,因此不需要扣除末尾的地址。
  • 对于 /31 和 /32,这个减法不能照搬。照搬相减的话,/31 得0,/32 得负数,与实际的处理不符。
03

/31 与 /32减法不成立的原因

子网的可用主机数,是从全部地址中减去网络地址和广播地址这两个求得的。把这一计算直接套用到 /31,结果为0;套用到 /32,则为负数。但实际上 /31 按2处理,/32 按1处理。这是因为在 /31 和 /32 上,减法的前提并不成立。

子网的可用主机数,是从全部地址中减去网络地址和广播地址这两个求得的。把这一计算直接套用到 /31,结果为0;套用到 /32,则为负数。但实际上 /31 按2处理,/32 按1处理。这是因为在 /31 和 /32 上,减法的前提并不成立。

主机数之所以能用“全部地址 − 2”求得,是因为主机部分全为0的地址指代网络地址,全为1的地址被保留为广播地址。这两个地址不分配给特定的设备。

在 /30 中,4个地址中有2个用于上述用途,其余2个分配给主机。用 /30 表示点对点链路(只有两台设备彼此相对的区段)时,该区段占用4个地址,其中分配给设备的是2个。

RFC 3021(2000年12月)规定,仅在用 /31 表示这种区段时,不适用这一减法。在点对点链路上,一端发出的数据包总是由另一端接收。既然不需要把目的地指定为“该子网内的所有成员”,也就没有设置广播地址的理由。主机部分全为0的地址,过去也曾作为旧式的广播目的地使用,如今已没有这一作用。RFC 3021 规定把这两个地址都解释为主机地址。结果,/31 的2个地址都分配给主机,可用主机数为2。其目的在于减少地址空间的消耗。

另外,能否解释 /31 因实现而异。RFC 中有规定,与所有设备都支持,是两回事。

/32 的原因则不同。它只有1个地址宽,要分成网络地址和广播地址,被划分的对象本身就不存在。这1个地址用于表示只指向单一地址的路由(主机路由),或没有物理端口的环回接口。可用主机数为1。

要点

  • /31 的可用主机数为2,是因为点对点链路上没有需要广播地址的场合。并不是因为有2个地址就算作2。
  • /32 的1不是减法的结果。由于没有可划分的对象,规则根本没有用上,于是剩下1个。
  • 有些子网计算工具会把 /31 和 /32 都显示为0。这是因为它们把从全部地址中减去2的规则一律套用到所有长度上。
  • RFC 3021 针对的是点对点链路。连接三台以上设备的区段不在其范围之内。
04

私有地址与保留范围已确定用途的范围

在32位的地址空间中,有若干范围的用途是预先确定的。可在组织内部自由使用的私有地址就是其中之一,其路由不会在互联网上通告。规定这些范围的文件不止一份,范围之间还可能相互嵌套。

在32位的地址空间中,有若干范围的用途是预先确定的。可在组织内部自由使用的私有地址就是其中之一,其路由不会在互联网上通告。规定这些范围的文件不止一份,范围之间还可能相互嵌套。

IPv4地址空间中,有一些范围不参与通常的分配,因为其用途已预先确定。其中具有代表性的就是私有地址。

RFC 1918(1996年2月)把 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 这3个范围划给组织内部使用。这些范围不会在互联网上进行路由通告。因此,即使不同组织同时使用相同的地址,彼此也互不影响。反过来说,把不同组织的网络直接相连时,两侧可能出现相同的地址。

用途已确定的范围还有其他一些。127.0.0.0/8 是指向自身的环回,169.254.0.0/16 是用于地址自动配置的链路本地,192.0.2.0/24、198.51.100.0/24、203.0.113.0/24 专用于文档中的示例,100.64.0.0/10 则用于在运营商一侧共享地址。整理这些范围的框架,由 RFC 6890(2013年4月)规定。

范围可能相互嵌套。240.0.0.0/4 是为将来使用而保留的大范围,但位于其内部的 255.255.255.255/32 被另行规定为受限广播。判断某个地址属于哪个范围时,要在匹配的范围中选取前缀长度最长的那个。若一找到较短的范围就立即认定,结果就会不同。

要点

  • RFC 1918 的3个范围大小不同。10.0.0.0/8 含16,777,216个地址,172.16.0.0/12 含1,048,576个,192.168.0.0/16 含65,536个。
  • 172.16.0.0/12 所指的范围是从 172.16.0.0 到 172.31.255.255。172.32.0.0 不在此范围内。
  • 169.254.0.0/16 的地址,可能是自动获取失败的设备自己设置的。它不一定是通过配置给定的。
  • 规定用途的范围可能会增加。100.64.0.0/10 是2012年由 RFC 6598 加入的范围。
05

域外可达性与路由器转发特殊用途地址的两个属性

用途已确定的地址范围,除了名称和依据的文件之外,还登记有表示处理方式的属性。能否到达互联网?路由器能否转发?这两个属性的组合因范围而异,无法从名称推断。

用途已确定的地址范围,除了名称和依据的文件之外,还登记有表示处理方式的属性。能否到达互联网?路由器能否转发?这两个属性的组合因范围而异,无法从名称推断。

IANA 把用途已确定的地址范围汇集在“特殊用途地址登记簿”中。每个范围除了名称和依据的 RFC 之外,还附有能否用作源地址、能否用作目的地址等5个属性。属性的框架由 RFC 6890 制定,并由 RFC 8190(2017年6月)修订。其中直接用于设计和运维判断的,是路由器转发和域外可达性。

路由器转发表示路由器能否把以该范围为目的地的数据包从一个接口转交到另一个接口。169.254.0.0/16 的链路本地为“不转发”,不会离开同一网段。用这个范围的地址能够通信的对象,仅限于同一网段之内。

域外可达性表示数据包能否越过组织管理范围(管理域)的边界。RFC 1918 的3个范围,转发为“可以转发”,可达性为“不可达”。在组织内部可以纳入路由,但要发往外部就需要地址转换。100.64.0.0/10 也是同样的组合,即使不属于 RFC 1918,处理方式也一样。

组合无法由名称决定。有些范围虽属特殊用途,却可以到达域外。192.31.196.0/24(AS112)在互联网上使用,用来接收私有地址等的反向解析查询。若在边界一律丢弃特殊用途的范围,就连这类范围也会被拦下。也有像 2002::/16(6to4)这样,可达性登记簿未规定的范围。

要点

  • 这两个属性表示该范围用作目的地址时的处理方式。能否用作源地址,作为另一个属性登记。
  • “不可达”并不是说在组织内部不能使用。RFC 1918 的范围在组织内部可以转发。
  • 确定在边界丢弃哪些范围时,要看的不是范围的名称,而是域外可达性的值。这样就不会误拦可以到达外部的范围。
  • 属性会随着范围的增加或调整而更新。将其作为判断依据时,要确认登记簿的最后更新日期。
06

CIDR与汇总边界可以自由设置带来的结果

过去,IPv4地址的边界位置由开头的位决定,可用的划分只有3种。CIDR取消了这种固定方式,改为用前缀长度明确指出边界。其结果是,把多个范围合而为一的汇总得以成立。

过去,IPv4地址的边界位置由开头的位决定,可用的划分只有3种。CIDR取消了这种固定方式,改为用前缀长度明确指出边界。其结果是,把多个范围合而为一的汇总得以成立。

1993年以前,IPv4地址是在类别这一框架下处理的。看地址开头的位就能知道它属于哪个类别,类别一旦确定,边界的位置也就确定了。面向互联网分配的单位,仅限于网络部分为8位、16位、24位中的一种。

这种方式下,分配的粒度很粗。对于想容纳500台设备的组织,含256个地址的范围不够,下一个选项就是含65,536个地址的范围。此外,由于每个组织分到各自的范围,路由表的条目数会随分配数量成比例增加。

RFC 1518 和 RFC 1519(均为1993年9月)规定的CIDR,取消了由类别固定边界的做法,改为明确指出前缀长度的方式。边界可以设在0到32之间的任何位置。

边界变得自由之后,多个范围就能合并为一个记法。这就是汇总。192.168.0.0/24 和 192.168.1.0/24 合起来可以写成 192.168.0.0/23。不过有条件:要合并的范围必须连续,合并后的大小必须是2的幂,而且开头的地址必须是合并后大小的倍数。192.168.1.0/24 和 192.168.2.0/24 虽然相邻,但 192.168.1.0 不在 /23 的边界上,因此不能合并为一个。

要点

  • 能否汇总,不只取决于范围是否相邻。开头的地址必须落在合并后大小的边界上。
  • 路由表中有多个条目匹配同一目的地时,会选择前缀长度最长的那个。因此,汇总后的范围和指向其中一部分的条目可以共存。
  • 类别的说法还留在文档中,但已不用于确定边界。把 /24 称为C类,只是大小一致的对应关系而已。
  • 汇总是合并记法的操作,地址的数量不变。2个 /24 是512个,/23 也是512个。
07

重叠的5种分类为什么不会只重叠一半

两个CIDR地址块之间的关系,必定属于以下5种之一:相同、包含、被包含、相邻、分离。只重叠一半的状态不会出现。这是由地址块的构成方式决定的,并不是为了方便判断而省略。

两个CIDR地址块之间的关系,必定属于以下5种之一:相同、包含、被包含、相邻、分离。只重叠一半的状态不会出现。这是由地址块的构成方式决定的,并不是为了方便判断而省略。

CIDR地址块有两个约束:大小是2的幂,以及开头的地址是自身大小的倍数。不在这种边界上的范围,根本无法用前缀记法写出来。

这些约束限制了两个地址块之间的关系。大小相同时,范围要么完全一致,要么完全不相交。再看大小不同的情况。设较大的为A,较小的为B。A从自身大小的倍数开始,而且A的大小能被B的大小整除,因为两者都是2的幂,且B比A小。因此,A的内部可以整齐地分成与B同样大小的若干部分。B也落在边界上,所以B要么与A内部的某一部分完全一致,要么位于A之外。它不可能处在越出边界的位置。

结果,可能的关系就是以下5种。范围完全相同,就是相同。一方完全包含另一方,就是包含或被包含。不相交且一方的末尾与另一方的开头相接,就是相邻。连相接都没有,就是分离。

要形成只重叠一半的状态,就必须把其中一方的开头从边界上错开。错开后的范围无法用前缀记法表示,因此不作为CIDR地址块存在。

要点

  • 相邻是不相交的关系之一。与分离的区别仅在于:一方末尾地址的下一个地址,是否就是另一方的开头地址。
  • 即使相邻,也不一定能合并为一个。只有两者合起来的大小是2的幂,并且开头落在新的边界上时才可以。
  • 前缀长度相同的两个地址块,要么一致,要么不相交。两者之间不会出现包含关系。
  • 这5种分类在IPv6中同样适用。因为约束来自大小与边界的性质,与地址的长度无关。
08

VLSM与FLSM等长划分,还是按需划分

把一个范围分成多个时,有两种方法:全部切成相同大小,或根据所需的大小加以变化。前者称为FLSM,后者称为VLSM。两者的区别不在于工作量,而在于划分之后剩下什么。

把一个范围分成多个时,有两种方法:全部切成相同大小,或根据所需的大小加以变化。前者称为FLSM,后者称为VLSM。两者的区别不在于工作量,而在于划分之后剩下什么。

FLSM是把原范围分成相等大小的方法。前缀长度每增加1位,部分的数量就翻一倍,因此划分数仅限于2、4、8这样的2的幂。由于所有部分大小相同,大小由需要地址最多的那个部分决定。其他部分也分配同样的大小。

VLSM是每个部分使用不同前缀长度的方法。把各部分所需的设备数加上网络地址和广播地址这2个,再分别向上取整到2的幂。按从大到小的顺序沿边界排列,各部分的开头总是落在自身大小的倍数上,中间就不会产生无法使用的空隙。如果先放小的部分,为了让后放的较大部分落在边界上,其前面可能会空出一段。

VLSM要成立,路由信息中必须包含前缀长度。因为各部分的长度不同,只传递地址无法还原边界。不传递长度的路由方式,无法在一个范围内部混用不同的长度。

划分之后剩下的东西不同。FLSM中,需求较小的部分会有剩余。VLSM不容易出现剩余,但各部分边界的位置各不相同。

要点

  • FLSM的划分数仅限于2的幂。想分成3份时,就分成4份,其中1份不用。
  • VLSM中按从大到小的顺序放置,是为了不留空隙地落在边界上。如果需求的大小都一样,改变顺序结果也不变。
  • 分配的大小,要把所需设备数加2之后再向上取整到2的幂来决定。100台则102向上取整为含128个地址的部分,130台则132向上取整为含256个地址的部分。
  • 即使部分的大小已经确定,其中能容纳的设备数也比地址数少2。因为要扣除网络地址和广播地址。
09

云平台的保留地址机制

在虚拟网络中创建子网时,可用主机数可能比通常的计算结果少。这是因为平台为自身的功能预留了一部分地址。被扣除的数量与可创建的最小大小是联动的。

在虚拟网络中创建子网时,可用主机数可能比通常的计算结果少。这是因为平台为自身的功能预留了一部分地址。被扣除的数量与可创建的最小大小是联动的。

在物理网络中,被扣除的是网络地址和广播地址这两个。在虚拟网络中,除此之外还会预留平台自身使用的地址。

被预留的通常是子网开头连续的几个地址和末尾的1个地址。开头部分是平台所提供功能的地址,例如该子网的默认网关,以及接收名称解析查询的地址。也有一部分是为将来增加功能而空出来的。末尾的1个地址因处在相当于广播地址的位置而被预留。无论虚拟网络内部是否真的投递广播,它都不在分配对象之内。

由于预留的数量是固定的,子网的大小就有了下限。例如,若包括网络地址和末尾的1个在内共预留5个,那么含16个地址的子网还剩11个,而含8个地址的子网只剩3个。子网越小,预留部分所占的比例就越大。平台会在剩余数量不足以实际使用之前,规定可创建的最小大小。

上限也有规定。与下限不同,上限的规定与预留的数量无关。

预留的数量、最小大小和最大大小因平台而异。

要点

  • 即使扣除的数量相同,子网越小,影响越大。扣除5个时,在含256个地址的子网中不到2%,而在含16个地址的子网中超过30%。
  • 被预留的地址集中在开头和末尾。通常不会在子网中间出现空缺。
  • 可创建的最小大小不一定由预留数量机械地决定。有时会定在给剩余地址数留出余量的位置。
  • 从虚拟网络外部看到的地址空间,不会因是否预留而改变。减少的是可分配的地址,而不是范围本身。
10

IPv6的思路减法消失了

IPv6并不只是把地址长度扩展到128位。广播这一机制本身没有了,求可用主机数的减法也随之消失。计数方式和写法也随着数位的规模发生了变化。

IPv6并不只是把地址长度扩展到128位。广播这一机制本身没有了,求可用主机数的减法也随之消失。计数方式和写法也随着数位的规模发生了变化。

IPv6地址为128位,写成8个由4位十六进制数组成的组(每组16位),并用冒号分隔。各组开头的0可以省略,连续的全0组可以用双冒号合并省略。不过,双冒号只能使用1处。如果用在2处,就无法还原每处各代表几个组。

IPv6中不存在广播地址。想送达所有节点时,以该用途的组播地址为目的地。在组播中,只有决定接收该地址的节点才会处理,因此可以按用途缩小投递对象。由于这一变化,已不再有保留子网末尾地址的理由。

相当于网络地址的排列,也不需要为广播而空出来。在IPv4中理所当然的“减2”,在IPv6中不再进行。不过,接口ID全为0的地址,被 RFC 4291(2006年2月)保留,用于指代该子网的路由器。

地址数的数位也变了。一个 /64 子网就含有18,446,744,073,709,551,616个地址。与IPv4整体约43亿相比,就能看出数量级的差别。这个值比无符号64位整数能表示的最大值还多1,因此处理时必须选择不会溢出的表示方式。

各用途的范围也有规定。fe80::/10 是仅在同一链路内有效的链路本地,fc00::/7 用于组织内部,2001:db8::/32 专用于文档中的示例。实际分配给组织内部使用的,是 fc00::/7 中 fd00::/8 那一半。

要点

  • 双冒号只能使用1处。若有2处,就无法还原被省略的组数,与其他地址无法区分。
  • IPv6中不进行为广播而做的减法。不过,接口ID全为0的地址被保留,用于指代子网的路由器。
  • /64 含有的地址数为18,446,744,073,709,551,616。由于它比无符号64位整数能表示的最大值多1,需要不会溢出的表示方式。
  • 广播没有了,取而代之的是发往所有节点的组播地址。用途得到继承,变化的只是机制。

在应用中,包括按平台介绍云服务保留地址的那一篇在内,11 篇全部可以免费离线阅读。讲解中的示例值可以直接在计算页打开。 了解 SubnetDeck

方案库

IP 地址规划方案

按常见场景整理的地址分配方法,共 9 类 69 个方案。其中 13 个免费方案可在此阅读全文。

如何在 10/8、172.16/12、192.168/16 之间取舍,以及从何处切分

10/8 的最高层按什么划分
10.0.0.0/8
免费

场景

现在要从零开始规划公司内部的地址空间。共有 150 个站点和 16 座工厂,云上的虚拟网络也放在同一空间里。事业部每隔几年就会重组,站点所属的区域也会调整。目前正处于首先决定 10/8 中哪里放什么的阶段。

前提

可以在本公司内自由划分 10/8。目前不必考虑将来整合时与其他公司的地址空间混在一起的可能。以后可以增加新的用途。能够统计引用边界的过滤规则行数。

分配

网段主机数地址块
数据中心服务器3,000
全公司的管理与监控1,000
远程接入地址池1,000
边界与交接500
全公司共用备用250

理由

在 10/8 中首先要决定的,是第二个八位组代表什么含义。候选有三种:按用途划分、按组织划分、按地理划分。

结论是按用途划分。组织和地理会变,而用途不会变。事业部每隔几年就会重组,负责区域也会调换。相比之下,工厂不会变成办公站点,测试环境也不会变成生产环境。

如果按组织划分,每次重组都只能二选一:要么移动边界,要么让名称与实际不符的状态继续存在。几乎总是选择后者,几年后,销售的地址块里就会住着别的部门。到那时,设计文档中的划分与设备上的实际内容就对不上了。

最高层的边界无法移动。因为过滤规则是以 10.16.0.0/12 属于工厂为前提编写的,边界一旦移动,所有引用它的行都要重新检查。有 150 个站点、16 座工厂和云,就是几百行;而且如果不同时切换,就会出现只有单方向通信能通过的时间段。

所以一开始要决定的内容越少越好。把 10/8 按 /12 划分,可分配给用途的地址块有 16 个。先从四种用途开始,不够时再增加一个地址块。地址块只做增加,现有边界不会移动。16 个地址块只用 4 个看似浪费,但无需移动任何东西更有价值。

扩展余地

/12 的地址块共有 16 个。全公司共用、站点、工厂、云这四种用途占用 4 个,剩下 12 个空闲。增加用途时,分配一个像 10.64.0.0/12 这样的空闲地址块,不动现有边界。测试、IoT 等以后出现的用途,也不拆分现有地址块,而是取用新的地址块。下一个分配哪个地址块,到需要时再决定。

常见陷阱

  • 按组织划分第二个八位组。组织每隔几年就会重组,边界却无法移动,名称与实际就会一直对不上。应按用途划分。
  • 一开始就把用途分得很细。不仅闲置的地址块会增多,每来一个新需求都要判断它属于哪种用途。先从四种左右开始,需要时再增加。
  • 为不够用的用途借用相邻地址块的一部分。地址块中间会出现边界,此后只有这个地址块混着两种用途。不够时就分配一个完整的地址块。
  • 只留下划分结果,不留下理由。接任者能看出每个地址块的用途,却看不出为何按用途划分,于是按组织重新划分的提议会不断出现。
  • 最后才分配全公司共用的范围。好用的地址块先被分出去,全公司共用的部分就散落在相距很远的地址块里。全公司共用应放在第一个地址块。
192.168/16 不只属于本公司
192.168.0.0/16
免费

场景

一家约 100 人的公司,把现场设备和测试设备放在 192.168 网段。每当要与合作伙伴或外包方打通站点之间的连接,就会与对方场所的地址冲突,需要协调。远程办公的连接有时也会与员工自带的无线路由器冲突。

前提

不一定能事先问到对方场所使用的地址。能把与外部有路由互通的设备和没有互通的设备分开。事后更改设备地址需要现场到场和重新配置。10/8 也可以使用。

分配

网段主机数地址块
现场设备(不与外部路由互通)200
测试中及交付前的设备200
单独的试验台100
备用(使用中那一半的内部)250

理由

192.168.0.0/16 不只属于本公司。家用设备、员工自带的无线路由器、合作伙伴和外包方的场所,都在使用同一个空间。默认值集中在 192.168.0 和 192.168.1 是众所周知的,但问题不止于此。小型设备的默认值还分散在 192.168.10、192.168.100 等处,而对方用的是什么,通常无法事先问到。

如果采用逐个避开冲突地址块的方式,避开的记录会不断增加。运行十年,避开的地址块就会有几十个,每出现一个新合作方,都要与清单核对。核对靠人来做,就会有遗漏。

所以反过来做。用高位固定使用的范围,只把第三个八位组为 128 以上的那一半当作本公司的。这样会舍弃一半空间,但判断只需一次。约 100 人规模用到的地址块不到 10 个,128 个绰绰有余。

放进去的东西也要限定。这个空间里只能放与其他公司、其他站点没有路由互通的设备。既然知道这个空间的冲突无法避免,就只放发生冲突也无妨的东西。凡是能从站点间连接的另一端看到的、或会出现在互联中的,都从 10.0.0.0/8 中取地址。

扩展余地

本公司只使用第三个八位组为 128 以上的那一半,在这 128 个地址块中使用 4 个。另一半 192.168.0.0/17 保持空闲,即使合作方增加也不逐块核对。判断只需一次:第三个八位组是否为 128 以上。出现需要与外部路由互通的东西时,不放进这个空间,而是从 10.0.0.0/8 中取地址。即使设备增加,使用中的那一半也够用。

常见陷阱

  • 以整个 192.168 都归本公司为前提来划分。每次互联都会冲突,每次都靠避开地址块来应对,避开的记录四处分散。应当用高位固定使用的范围。
  • 列出冲突地址块的清单来避开。每增加一个合作方都要核对,而核对靠人来做,就会有遗漏。应当让判断只需检查一次高位。
  • 把从外部能看到的设备放进这个空间。与对方场所冲突时,能让步的只有自己这一边,结果要更改设备的地址。凡是要出到外部的,都从 10.0.0.0/8 中取地址。
  • 觉得舍弃一半可惜,就开始使用不用的那一半。开始使用的地址块收不回来,什么也得不到,只会失去判断的简单性。约 100 人规模,128 个地址块绰绰有余。

从 SOHO 到大型办公,单一站点的地址设计

约100人的单一站点办公室
10.20.0.0/22
免费

场景

员工约100人、占用一到两层楼的总部或分公司。同时使用有线和无线,并在公司内部放置文件服务器和NAS,是最典型的配置。

前提

有至少一台三层交换机或支持VLAN的路由器。DHCP由网络设备或服务器提供均可。预计未来3年内人员可能增至1.5倍。

分配

网段主机数地址块
客户端(有线)150
服务器20
网络设备管理30
打印机、多功能一体机15
无线客户端200
第二阶段用(为未来扩展保留)200

理由

在100人规模时,最先犹豫的是“一个 /24 够不够”。答案是:只算有线的话够用,但不能只用一个 /24 来划分。仅有线客户端,一个 /24 就放得下。可是把公司配发的智能手机和笔记本电脑的无线连接算进去,每人实际有2到3台终端,/24 的254个地址很快就会用完。

因此要预留一个 /22,内部按 /24 和 /26 划分。有线客户端和无线各自使用独立的 /24,是为了不让一个DHCP地址池的耗尽波及另一方。服务器和管理只用 /26,是因为在这个规模下它们几乎不会超过60台,分得太大反而会失去第三个八位组的可读性。

让第三个八位组带有含义也是有意为之。按0=有线、1=固定IP设备、2=无线、3=第二阶段用来对应,看到抓包数据或日志的那一刻就能知道是哪个网段。这种可读性直接关系到故障处理的速度。

扩展余地

由于整个 10.20.3.0/24 都空着,即使人员增至1.5倍,也可以把无线扩展到 /23,或增加一个按部门划分的网段。如果服务器的 /26 不够用,可把 10.20.1.128/27 的打印机移到 10.20.1.192/27,再把设备管理移到腾出的 10.20.1.128/26,服务器就能以 10.20.1.0/25 的形式扩大一倍。再增加站点时,依次使用 10.21.0.0/22、10.22.0.0/22,并汇总为 10.20.0.0/14。

常见陷阱

  • 在企业内网中使用 192.168.1.0/24 或 192.168.0.0/24。它们与家用路由器的默认值冲突,居家办公通过VPN连接时路由会出问题。从 10/8 中划分比较稳妥。
  • 把无线和有线客户端放在同一个网段。以后想增加访客SSID时,就得从地址规划开始重做。一开始就分开几乎没有成本。
  • 把网络设备的管理地址混入客户端网段。无法再用ACL单独限制管理访问,审计时必然会被指出。
  • 因为“空着”就把备用的 /24 挪作眼前的用途。备用的价值就在于不被使用,把名称定为“第二阶段用”而不是“备用”,更容易守住。
到岗人数难以预测的共享工位站点
10.16.8.0/21
免费

场景

不固定座位、约100个工位的站点。在职人数120人,到岗率每天在40%到80%之间波动。所有人都随身携带笔记本电脑,有线端口只留在会议室和部分固定座位。派遣人员、驻场外包人员等短期驻场人员经常有10人左右。

前提

无线覆盖整个站点,员工仅靠无线就能用终端完成工作。能按网段设置不同的DHCP租期。能事后从门禁进出记录等调出每天的实际到岗人数。前提是未采用座位预约制度。

分配

网段主机数地址块
员工终端的无线地址池300
并入地址池用的保留(扩展时并入无线地址池)400
有线(会议室、固定座位)50
短期驻场人员和访客的终端40
服务器、共享设备20
打印机、多功能一体机12
网络设备管理12
增加第二层楼时的保留200

理由

确定地址池大小时,最先出现的数字是100个工位和120名在职人数。首先排除工位数。接下来要考虑的是到岗高峰时的终端数:到岗率80%时是96人,每人带一台笔记本电脑和一部公司配发的智能手机,共192台。到这里为止,/24 的254个地址还放得下。

问题出在后面。在共享工位下,今天谁来是不确定的。如果租期设为24小时,昨天来、今天没来的人的终端地址仍然有效。到岗率在40%和80%之间波动,意味着有些日子里连续两天都来的人很少。如果40%(48人)的第二天是80%(96人),且两天的人几乎不重叠,那么两天内来过的人就接近120名在职人数,有效租约最多达到240台。这是 /24 的254个地址的94%,只剩14个。耗尽不是发生在人最多的那天,而是发生在人员轮换的那天。应该计算的不是到岗高峰,而是一个租期内可能到来的人数,也就是接近在职人数的数字。

那么缩短租期可以吗?租期有下限。午休和下午开会时合上笔记本电脑,会有3到4小时没有通信,如果租期设为2小时,就会有终端在回来时拿到另一个地址。租期的上限由地址池大小决定,下限由工作方式决定。要同时满足两者,只能为地址池分配 /23。有510个地址时,即使有240台也还剩53%。

一旦采用 /23,第三个八位组与网段的对应关系就会被打破,但在这个站点,避免耗尽优先于可读性。另外,如果要把一边持续移动一边通信的终端放进同一个地址池,需要另作判断。

扩展余地

相邻的 10.16.10.0/23 空着不是为了将来,而是为了让地址池作为一个子网扩大。地址池不能分块追加,所以要把 /23 扩成 /22,相邻的 /23 必须整个空着。判断点定在在职人数210人,是因为如果两天内几乎所有人都来,就是420台,达到 /23 的510个地址的82%。届时把相邻的地址块合并为 10.16.8.0/22,租期保持不变。由于这个限制,有线和服务器都被挤到了 10.16.12.0/24。如果不事先定好可以释放的条件,这块空闲一定会被挪作他用。

常见陷阱

  • 按工位数确定地址池。因为有100个工位就划一个 /25,一旦算上每人2台终端和短期驻场人员就不够用,开始运行的第一周就会耗尽。要数的是终端,不是工位。
  • 为避免耗尽而缩短租期、加快周转。午休或开会后回来的终端拿到另一个地址,通信因此中断,但由于只在回来的瞬间中断,无法复现,也没人报告。
  • 把短期驻场人员的终端和员工放进同一个地址池。根据在职人数估算的台数与实际持续偏离,每次增员时都说不清到底缺了多少个地址。能预测的和不能预测的要分开。
  • 保留给有线端口分配固定IP的做法。在共享工位下,同一个端口每天坐着不同的人,地址与使用者的对应关系很快就会乱掉,只剩下地址台账。有线也用DHCP分配。

站点编号与地址的对应,并以路由聚合为前提分配

让路由汇总生效的150个站点编号方式
10.0.0.0/8
免费

场景

总部1个、区域枢纽8个、营业网点和仓库141个,共150个站点。各站点经由区域枢纽连到总部,路由在区域枢纽汇总后向上游传递。站点编号已用于资产管理和报表单据,按开设顺序编排。每年有几个站点开设,也有几个关闭。

前提

区域枢纽能把下属站点汇总成1条路由通告。站点编号体系已经存在,不能因地址规划的需要而重新编号。每个站点的终端不超过1000台。站点属于哪个区域,几年之内不会改变。

分配

网段主机数地址块
代表站点(区域3、站点12)有线客户端200
代表站点 无线客户端250
代表站点 服务器、多功能一体机50
代表站点 网络设备管理60
代表站点 站点内备用250
站点间链路与环回(所有站点共用的地址块)250

理由

之所以汇总,是为了不让150个站点以150条路由的形式传到上游。但汇总需要的是地址块连续,而不是站点编号连续。弄错这一点,整个设计就白费了。

站点编号已经存在。它们用于资产管理和报表单据,按开设顺序编排,与区域没有对应关系。如果把编号直接映射到第二个八位组,区域3的枢纽下属的就会是站点3、17、42、88这样零散的集合。零散的地址块无法汇总成1条,传到上游的路由仍是150条。也不能为了汇总而重新编号,因为编号已写进报表单据和日常称呼里。

所以要把顺序倒过来。先把地址块分配给汇总单位,也就是区域枢纽,再在这个地址块内部把站点编号作为标识符发放。8个区域各占一个第二个八位组,每个站点各占一个 /22 地址块。1个区域最多容纳64个站点。150个站点中,最大的区域也只有24个,完全放得下,传到上游的路由为8条。即使站点翻倍到300个,仍是8条。

代价是从地址上读不出站点编号。要让它可读,就得放弃区域内的连续性。故障处理需要的不是编号规则,而是一张站点编号与地址块的对照表。

扩展余地

区域地址块使用第二个八位组的1到8,0用于全公司共用。9到15这7个地址块空着,用于增设区域,以及发给超过64个站点的区域作为第二个区域地址块。这些编号不连续,要查对照表。10.16.0.0/12 以上不动,留给收购和接纳其他业务。

常见陷阱

  • 把站点编号直接对应到地址。编号按开设顺序决定,与区域不对应,同一枢纽下属的站点就会零散分布,传到上游的路由仍与站点数一样多。编号要在区域地址块内部发放。
  • 从本站点的地址块中取站点间链路的地址。对端若是其他区域的站点,本区域地址块的地址就会落在其他区域,由此向上游传出更细的路由。链路要从站点地址块之外的公共地址块中取。
  • 在站点内跨越站点地址块的边界追加网段。超出的部分不在汇总范围内,只有该站点会向上游传出更细的路由。只在地址块内部追加,超出后发放第二个地址块。
  • 把能从地址读出站点编号作为要求。要让它可读就得放弃区域内的连续性,汇总便无法成立。需要的不是编号规则,而是对照表。
  • 因地理上的方便,把某1个站点接入其他区域枢纽。地址仍在原区域的地址块内,上游就会并列出现区域地址块和只属于该站点的路由。要改接入位置,就连地址一起迁移。

/30、/31 链路与 /32 环回地址的地址池设计

点对点链路用 /30 还是 /31
10.161.0.0/16
免费

场景

在拥有300条以上点对点链路的网络中,确定链路的前缀长度。设备分属不同代次,旧设备、专用设备和虚拟设备并存。有人以节省地址为由,提议统一改用 /31。

前提

能够列出每条链路两端设备的型号和代次。能够事先确认设备是否支持 /31。分配集中在一处进行。事后更改链路地址需要改写设备配置和监控。

分配

网段主机数地址块
按 /30 切分的链路范围(默认)2,000
按 /31 切分的链路范围(已确认支持的区段)250
环回250
链路备用2,000

理由

/30 的4个地址中只有2个可用,/31 的2个地址都能用。所需地址数减半。

但作为节省,这毫无意义。有352条链路时,/30 占用1408个地址,/31 占用704个。相差的704个,只占为链路预留的 /16 地址块的约1%。这么小的差额,不足以改变判断。

决定因素是设备能否全部支持。并非所有设备都能处理 /31。旧设备、专用设备、虚拟设备中,可能有某台不支持。每条链路两端各有一台设备,只要其中一台不支持,这条链路就只能用 /30。

混用会改变分配流程。地址池中混有两种大小,每次分配都要检查两端两台设备是否支持。每月10条,一年就是120次。节省的704个地址,不值得每年120次检查。

所以要统一。全部设备都支持就用 /31,只要还剩一台不支持就全部用 /30。如果非混用不可,就分开范围,免得每次分配都要检查。

还有一点。一旦按 /30 切出的链路,即使设备更换了也不会改为 /31。改用就要更改地址,设备配置和监控中的名称都会被改写。不要以日后迁移为前提。

扩展余地

默认用 /30,只有确认支持的区段才从 /31 范围中切出。分开范围,是为了分配时不必检查设备是否支持。只有在两端设备已更换并确认支持时,才把该区段加入 /31 范围。增量从 10.161.16.0/21 中取。即使全部设备都已更换,现有的 /30 链路也不改;只有新建的链路才按 /31 切出。

常见陷阱

  • 以节省地址为由选择 /31。能节省的只是链路地址块的约1%,不足以改变判断。决定因素是设备能否全部支持。
  • 把两种大小混在同一范围内。每次分配都要检查两端两台设备是否支持,每月10条的话,一年要多做120次检查。要混用就分开范围。
  • 明明有一台设备不支持,却以 /31 为默认,只把该区段作为 /30 的例外。每次更换设备都要确认是否支持,只要忘一次,那条链路就无法使用。默认用 /30,/31 只从已确认支持的区段的范围中切出。
  • 以日后迁移到 /31 为前提选择 /30。迁移就要更改地址,设备配置和监控中的名称都会被改写。应以不迁移为前提来决定。

DMZ、服务器、客户端、管理、语音与访客无线

访客用无线与企业内网互不共享
172.30.0.0/16
免费

场景

一家约100人的公司要准备访客用无线。平时访客终端约20台,但在说明会或展会的日子,会一下子来400台。发往企业内网的通信已由过滤规则阻断,但名称解析和地址分配仍与企业内网使用同一套设备。

前提

能把访客用无线作为与内部无线分开的范围提供。能为访客准备一个对外出口。能为访客另设名称解析和地址分配的设备。172.16/12 中有可用的位置。

分配

网段主机数地址块
访客终端400
访客用出口和地址分配设备10
访客用名称解析(只查询外部)5
活动时的扩容地址块800

理由

人们通常认为,访客用无线只要与企业内网隔开就行:用过滤规则阻断发往企业内网的通信,事情就解决了。这还不够。

访客范围在过滤规则之外,也与企业内网共享着东西。如果让访客通过内部设备做名称解析,访客终端就能查询内部服务器的名称。即使不返回答案,从查询的响应也能看出哪些名称存在。如果地址分配与企业内网用同一套设备,那么在100人的公司迎来400台终端的活动当天,内部的地址分配也会一起堵塞。如果让访客与企业内网同步时间,就要开通一条通往内部时间服务器的路由。

所以,访客范围与企业内网什么都不共享。它不持有通往任何内部网段的路由,出口只有一个对外出口。名称解析和地址分配也只为访客另行准备。不是用过滤规则去堵,而是让需要堵的路由根本不存在。堵住的路由一行配置就能打开,不存在的路由却无从打开。

地址的选法也有理由。大多数访客终端会向自己公司建立连接。如果对方公司内部使用 10/8,而访客范围也在 10/8 中,地址就会在对方那一侧冲突,访客便连不上自己的公司。访客范围要从 172.16/12 中较少被使用的位置取。

扩展余地

访客范围在企业内网中没有任何路由,出口只有一个对外出口。名称解析和地址分配也另为访客准备。活动带来的终端增多时,加上 172.30.4.0/22 来承接,加上的部分也从同一个出口出去。不增加通往企业内网的路由。范围取在 172.16/12 中,不与访客公司很可能在用的 10/8 重叠。

常见陷阱

  • 用过滤规则阻断发往企业内网的通信就算完事。如果名称解析或地址分配与企业内网共享,内部信息会在过滤规则之外泄露,负载也会传过来。什么都不共享。
  • 让访客终端使用内部的名称解析。即使不返回答案,从查询的响应也能看出哪些名称存在。要为访客另行准备。
  • 用与企业内网相同的设备为访客分配地址。活动当天访客激增时,内部的地址分配也会堵塞。地址分配要为访客单独分开。
  • 从 10/8 中取访客范围。访客向自己公司建立连接时,地址会与对方的内网冲突,连接失败。要从 172.16/12 中较少被使用的位置取。
DMZ 放什么、怎么分
10.170.0.0/16
免费

场景

一家约500人的公司,放在 DMZ 中的设备逐年增加。对外公开的Web服务器、与合作伙伴交换文件的服务器、接收外部邮件的设备、只调用外部服务的服务器、向外发送监控告警的设备,都挤在同一个范围里。

前提

能区分接收从外部发起的连接的设备和只向外发出的设备。能确定与合作伙伴连接的对方。能按对方分别提供 DMZ 的范围。能在边界阻断范围之间的通信。

分配

网段主机数地址块
对外公开(谁都能来访)20
面向合作伙伴(对方确定)20
接收外部邮件的设备(从对外公开中分出的范围)10
DMZ 备用100

理由

DMZ 放什么,标准只有一个:接收从外部发起的连接的设备。

没有标准,凡是与外部通信的东西都会进去:只从内部向外发出的设备、只调用外部服务的服务器、向外发送监控告警的设备。这些都不接收从外部发起的连接,没有理由放进 DMZ。放进去,DMZ 就会膨胀,其中任何一台被攻破,旁边的所有设备都会被触及。

决定了放什么,接下来按接收谁的连接来分。对外公开的和面向合作伙伴的不放在同一个范围。对外公开的谁都能来访,因此要以会被攻破为前提来考虑。面向合作伙伴的对方是确定的,放行规则要窄得多。如果放在同一个范围,对外公开的服务器被攻破时,与合作伙伴交换的文件就会被旁边的服务器触及。限定对方也就失去了意义。

分开的范围之间不放行任何通信。从对外公开的一侧去往面向合作伙伴的一侧,在业务上一个理由都没有。

出现新的接收外部连接的设备、又不清楚它接收谁的连接时,放进对外公开的范围。把无法限定对方的设备放进面向合作伙伴的范围,会破坏这个范围的前提。

扩展余地

DMZ 按接收谁的连接来分,对外公开的和面向合作伙伴的放在不同的范围。范围之间不放行任何通信。出现新的接收外部连接的设备时,按它接收谁的连接决定范围,决定不了就放进对外公开的范围。范围不够时,从 10.170.1.0/24 中切出。只向外发出的设备,即使增加也不放进 DMZ。

常见陷阱

  • 把与外部通信的东西都放进 DMZ。连只向外发出的设备也放进去,DMZ 就会膨胀,一台被攻破就会触及旁边的所有设备。只放接收从外部发起的连接的设备。
  • 把对外公开的和面向合作伙伴的放在同一个范围。对外公开的一侧被攻破时,与合作伙伴交换的文件就会被旁边触及。要按接收谁的连接分开范围。
  • 以防万一,放行分开的范围之间的通信。没有业务理由的放行,只会成为入侵时的通道。范围之间什么都不放行。
  • 把对方不明确的设备放进面向合作伙伴的范围。这个范围是以对方确定为前提才收窄放行规则的,这个前提就会被破坏。拿不准时放进对外公开的范围。

在平台预留地址的前提下切分子网

云上的子网要少算5个地址
10.216.0.0/16
免费

场景

在云上的虚拟网络中,要按故障域各建一个放10台设备的小子网。按企业内网的习惯,认为切一个 /28 应该能放14台。同一个虚拟网络中还计划放一个约200台的应用子网。

前提

知道所用的服务商会预先占用子网中的若干地址。能确认服务商占用的数量和可创建的最小子网大小。子网创建后不能再改变大小。虚拟网络中还有空余。

分配

网段主机数地址块
放10台设备的子网(扣除保留后可用27个)10
同一用途的另一个故障域10
应用子网(保留所占比例小)200
备用子网100

理由

在云上建子网时,服务商会预先占用其中的若干地址。因服务商而异,但常见的是占用开头4个和末尾1个,共5个。企业内网中不能用的只有开头和末尾2个,如果不了解这个差别就去切分,地址就会不够。

子网越小,这个差别影响越大。/24 是256个中的5个,不到百分之2。/26 是64个中的5个,占百分之8。在可创建的最小的 /28 中,16个里有5个被占用,约占三成。能用的只有11个。

按企业内网的感觉切一个 /28,本以为能放14台,实际只能放11台。放10台设备的话,余量只有1个地址,再加2台那天就会溢出。子网创建后不能改变大小,溢出了就只能重建。

所以切小子网时,要用扣除保留后的数量去和台数比较。10台的话,不取 /28,而取 /27。/27 是32个减去5个,有27个可用。切得越小,损失的比例越大,所以小子网原则上要比企业内网大一档来切。

保留的数量因服务商而异,可创建的最小大小也不同。在“计算”标签页中选择保留配置,就能当场看到可用的数量。估算就在那里确认。

扩展余地

小子网要先减去5个保留地址,再和台数比较。10台的话,不取 /28,而取 /27。按故障域以相同大小排列,故障域有几个就建几个。需要更多子网时,从 10.216.2.0/24 切出。估算拿不准时,在“计算”标签页中选择保留配置,确认可用的数量。

常见陷阱

  • 按企业内网的感觉计算可用数量。只减去开头和末尾2个,会漏掉服务商占用的另外3个,预计的台数放不下。要用扣除保留后的数量来比较。
  • 把可创建的最小的 /28 作为标准。16个中有5个被占用,可用的只有11个。只加几台就会溢出。10台左右的规模要取 /27。
  • 以为子网以后扩大就行。创建后不能改变大小,溢出了就得重建。一开始就要把保留算进去估算。
  • 以为所有服务商保留的数量都一样。不同服务商占用的数量和可创建的最小大小都不同。要用所用服务商的配置来确认。

避免地址重叠、VPN 互联,以及合并时的重新编址

用地址转换绕开重叠时,同时定下期限
172.18.0.0/15
免费

场景

要把收购来的公司的网络与本公司的网络连通。双方都在用 10/8,多个范围相互重叠。出于业务需要,下个月就必须连通,没有时间对任何一方重新编址。有人提出在边界上转换地址来连通。

前提

能在两家公司的网络之间设置一处可以转换地址的边界。转换后的地址能从双方地址空间都没有用到的地方取得。能把期限写进转换规则。能不等经营层的判断就决定由哪一方重新编址。

分配

网段主机数地址块
从本公司查看对方网络用的转换后范围3,000
向对方呈现本公司网络用的转换后范围800
转换设备与管理20
转换备用(到期限为止的增加部分)400

理由

连通两个重叠的网络有两种方法:对其中一方重新编址,或者在边界上转换地址。转换一个晚上就能上线,重新编址要花几个月。整合初期选择转换是正确的。

问题在于转换会变成永久的。转换让通信能够打通,重新编址的理由也就消失了。三年后,转换规则层层堆积,没有人能说清全貌。每次出故障,都要确认日志里的地址是转换前的还是转换后的。

所以,在引入转换的当天,要同时决定两件事:期限,以及由哪一方重新编址。期限要定成具体日期,并直接写进转换规则里。重新编址的一方当天就定下来,把转换期间当作重新编址的准备期。没有决定由哪一方重新编址的转换,到期时只能延长。

转换后的地址,要从不属于任何一方的地方取得。如果本公司和对方都用 10/8 并在那里重叠,转换后的地址就从 172.16/12 取。如果用任何一方 10/8 里的空闲部分,下次再接纳别的公司时又会重叠。

也有可以永久保持的转换。像照搬同一套配置建成的生产线那样,同样的地址并排重复出现是设计的前提时,永久转换是正确的。整合中的重叠不是前提而是事故,对事故的应急处理不能变成永久的。

扩展余地

转换后的范围从 172.16/12 中取,并把用来查看对方网络的范围与向对方呈现本公司网络的范围分开。转换规则里写明期限,在期限之前,对引入转换当天定下的一方重新编址。到期限为止增加的部分从 172.18.24.0/22 中切出。过期的转换不延长;如果需要延长,就从决定由哪一方重新编址重新开始。

常见陷阱

  • 引入转换时不定期限。通信已经打通,重新编址的理由便消失,转换规则不断堆积,最后没有人能说清。
  • 没有决定由哪一方重新编址就引入转换。到期时,讨论又要从动哪一方开始,只能延长。要在引入转换的同一天决定。
  • 从本公司 10/8 的空闲部分取转换后的地址。下次再接纳别的公司时,又会重叠。要从不属于任何一方的地方取。
  • 按单台主机逐条编写转换规则。期限也得逐台管理,没人知道还剩哪些规则。要按范围编写。

控制侧的固定 IP 惯例、OT/IT 隔离与扩容

横向复制同构生产线的制造单元设计
172.20.0.0/16
免费

场景

工厂里有多条设备构成相同的生产线,今后还计划继续增加。设备供应商交付的控制设备出厂时已写死固定 IP,目前各条生产线之间存在相同地址重复的情况,设计从这一状态出发。

前提

各生产线控制设备的地址无法更改,或者更改需要设备供应商重新验收。生产线之间无需直接通信,只需与上层的采集系统通信。能在生产线边界放置三层设备或可做 NAT 的设备。

分配

网段主机数地址块
1 号线(外部看到的地址)200
2 号线(外部看到的地址)200
3 号线(外部看到的地址)200
采集与监控服务器30
维护终端(外部带入的电脑用)10
生产线扩充用保留(4~7 号线)1,000

理由

OT 网络与 IT 的决定性区别在于地址不能自由决定。设备供应商向许多客户交付同样的构成,因此控制设备的地址在出厂时就已固定,同一个 192.168.0.10 在 2 号线和 3 号线上都存在。如果按 IT 的惯性思维“重叠了就重新编址”,话题就会转到设备保修和重新验收上,现场随之停产。

所以不重新编址。生产线内部的地址保持设备供应商的设置不动,在生产线边界的设备上做 1:1 地址转换,只把从外部看到的地址按线号区分。1 号线的控制设备从外部看是 172.20.1.x,2 号线的同一台设备是 172.20.2.x。定下“第三个八位组=线号”的规则后,查看采集系统日志的人即使不知道设备名,也能立刻判断是哪条线。

这个设计的本质,是用转换这一层,把设备供应商的约束与 IT 的可管理性隔开。生产线内部是“设备供应商的世界”,边界以上是“信息部门的世界”,界限分明。最大的好处是每次增加生产线都不必重做设计,只需把编号加一并复制同样的配置。

扩展余地

为近期扩充保留了 172.20.4.0/22(4~7 号线)。由于基准地址块是 /16,按第三个八位组作线号的规则可以一直用到 255 号线(0 不作线号,留给公共的采集与维护),8 号线以后可以自然地接着使用 172.20.8.0/21、172.20.16.0/20。工厂增加时,把第二个八位组作为工厂编号,把 172.21.0.0/16 分配给下一个工厂,两者以 172.20.0.0/15 汇总。一条线的 /24 不够用,只会出现在线内控制设备超过 250 台的时候,而到了那种规模,把生产线从逻辑上拆分更便于运维。

常见陷阱

  • “以防万一”放行生产线之间的通信。一条线感染恶意软件时,构成相同的所有生产线会同时停下。生产线之间原则上阻断,必要的通信经由采集系统。
  • 不为维护终端准备网段,让外部带入的电脑直接插进控制网段。这是 OT 安全事件最常见的入口,而且不留记录。应设专用网段,只允许从那里进入控制侧。
  • 地址转换的对照表只保存在设备配置里。配置的人一调岗,就没人说得清哪个外部地址对应哪台设备。对照表应作为原始依据保存在设计文档中。
  • 工厂地址使用 192.168 段。容易与维护服务商带来的路由器和移动路由器冲突,而且冲突只有在现场才会暴露。应从 172.16/12 或 10/8 中切分。
  • 每次扩充时用空着的编号去填,以此决定线号与地址的对应。7 号线拆除后若有别的设备进来占用,编号与实物就会错位,没人再信这套编号。编号不重复使用。
分隔工厂 IT 网络与控制网络的边界区
10.60.0.0/20
免费

场景

厂区内有办公楼和生产楼,迄今一直作为一个网络运行,员工约 300 人。生产管理系统向设备下达指令、从设备采集实绩的需求今后仍然存在,但希望消除办公电脑能直接访问控制设备的状态。这一阶段不动生产线内部的设计,先只重新划定生产线上下方的边界。

前提

能在办公侧与工厂侧之间放置至少一台三层设备。跨两侧的通信至少能按交接服务器逐一列出对端和方向。这次不改控制设备的地址,生产线内部的重新设计另行进行。要求中包含边界设备停机期间生产仍能继续。

分配

网段主机数地址块
办公客户端(有线、无线)300
生产管理与信息系统服务器40
交接服务器(两侧都会连接的中介)12
维护终端出借用10
边界设备与监控的管理6
边界第二阶段用(外部数据对接、远程维护中介)50
控制网络公共服务(时间同步、名称解析、生产线外设备)100
控制网络的无线(搬运设备、手持终端)200
各生产线区的保留(1~4 号线)1,000

理由

没有人反对分隔。定不下来的是放在边界上的区要取多大。

边界取 /24 一定会失败。在这个规模下,真正需要与两侧通信的只有交接服务器,十几台而已。剩下的 240 多个地址会成为空地,而空地一定会被占用。半年后进来一台信息系统的文件服务器,第二年又进来一台加入了办公侧认证系统的跳板机。到那时边界已名存实亡,但地址表上什么都没变,所以谁也不会察觉。

所以交接只给一个 /28,不多给。只有 14 个地址,想放第 15 台的人就一定得先找人商量。目的是让大小本身起到运维规则的作用。增长的余地放在旁边,换个名字作为第二阶段用,交接区本身不扩大。

把 /20 分成 0~3(IT)、4~7(边界)、8~15(控制)三个领域也是有意为之。边界设备的过滤规则用 10.60.0.0/22、10.60.4.0/22、10.60.8.0/21 三行就能写完,增加网段时这三行也不变。每次增加都要改过滤规则的设计,迟早会改错并导致停产。

把控制网络的公共服务区(/25)放在控制侧,是为了可用性。边界设备停机期间生产仍在继续。如果时间同步和名称解析依赖办公侧,边界一停,控制侧也会跟着停。

扩展余地

边界处留出了 10.60.4.64/26 作为第二阶段用。它不是用来扩大交接区的,而是以后增加外部数据对接和远程维护中介的位置。控制侧留出了 10.60.12.0/22 作为各生产线的区,各生产线的设计放在这里。无线的 /24 不够用时,再追加 10.60.10.0/23。工厂增加时,把 10.60.16.0/20 分配给下一个工厂,以 10.60.0.0/16 汇总。三个领域的分界都对齐在 /22 的边界上,因此每个工厂的三行过滤规则形式都相同。

常见陷阱

  • 在边界放一台跳板机,并让它加入办公侧的认证系统。这会形成一条认证信息从办公侧流入的路径,边界就失去了意义。如果要放跳板机,认证应在边界内部闭环。
  • 控制设备的时间同步源仍设为办公侧的服务器。一停边界设备,控制侧的时间就开始漂移,事后追查故障时日志对不上。时间同步应放在控制侧。
  • 把分隔的要求只定义为“不能从办公侧进入控制网络”。从控制侧到办公侧的通信无人管控,混入设备中的终端仍留有向外的通道。两个方向都要定规则。
  • 让交接服务器兼做采集和文件存放。受不能停机一侧的牵制,服务器无法更新,几年后就成了谁也不敢碰的服务器。应按职能拆分,在 /28 之内管理台数。

从 /48 中分配 /64,并按需求扩展

IPv6 不必节省,按十六进制位划分
2001:db8:100::/48
免费

场景

一家有 10 个站点的公司从运营商那里拿到了 IPv6 的 /48。以往在 IPv4 中,会按台数调整子网大小,并留意备用的位置和碎片化。现在正打算用同样的思路开始分配 IPv6。

前提

已从运营商拿到 /48。公司内的设备能使用 IPv6 的地址自动配置。站点数和用途数预计都在 15 以内。地址的用途是让人阅读并从中读出含义。

分配

网段主机数地址块
站点 1 客户端200
站点 1 服务器50
站点 1 管理30
站点 2 客户端(其他用途也按同样形式依次排列)200

理由

拿到一个 /48,其中就有 65,536 个 /64。在 IPv4 中积累起来的思路,很多在这里正好相反。

IPv4 按台数决定子网大小:10 台用 /28,200 台用 /24。IPv6 不这样做。子网与台数无关,一律是 /64。终端自行决定自身地址的机制,是以 /64 为前提设计的。切得比 /64 小,这个机制就无法工作。

也不需要节省。几乎没有组织会用完 65,536 个 /64。在 IPv4 中费尽心思的问题,比如备用放在哪里、如何防止碎片化,几乎都不复存在。

剩下要定的只有一件事:第4组(16位)的 16 位怎么划分。这里给站点 4 位、用途 4 位、序号 8 位。让含义的分界与十六进制位的分界重合,看一眼地址就能读懂。例如 2001:db8:100:1200::/64,就是站点 1 的服务器的第一个子网。

划分要对齐十六进制位。在一个十六进制位的中间划分,每次读地址都得换算成二进制,可读的好处也就没了。如果站点可能超过 15 个,一开始就给站点 8 位,用途和序号各 4 位。

扩展余地

第4组的第一个十六进制位是站点,从 1 开始用,0 留给全公司共用。第二位是用途,后两位是序号。子网一律是 /64,台数增加也不扩大。网段表中的 /64 相对台数显得很大,是因为协议要求 /64,并不是留了余量。站点超过 15 个时,不改变划分,再申请第二个 /48。

常见陷阱

  • 按台数决定子网大小,切得比 /64 小。终端自行决定地址的机制以 /64 为前提,会因此无法工作。子网一律用 /64。
  • 像 IPv4 那样顾虑备用和碎片化,切得很紧凑。65,536 个 /64 几乎不可能用完,切得紧凑也得不到什么。应优先考虑可读性。
  • 在十六进制位的中间划分第4组。每次读地址都得换算成二进制,无法从地址读出含义。应按十六进制位划分。
  • 站点位从 0 开始编号。全公司共用的部分没有位置可放,日后只能硬插进来。0 应留给全公司共用。
其余 56 个方案可在 SubnetDeck 中通过高级版阅读全文。了解 SubnetDeck

iPhone·iPad 应用 SubnetDeck

常用的计算器,现在能记住了。

这个页面关掉就什么都不剩。SubnetDeck 会把每个站点的设计规划按客户或项目保存在文件夹里,而且完全不联网。

  • 按站点、客户、项目分文件夹,可按地址搜索
  • 根据所需主机数进行 VLSM 分配,并检测重叠
  • 等分、路由汇总、重叠检查等工具
  • 规划导出为 .xlsx、CSV 或 Markdown
  • 69 个方案和 11 篇讲解,离线也能读
SubnetDeck 设计页,每个站点一个文件夹

用 iPhone 扫描即可打开 App Store。

网页与应用的区别

本网站SubnetDeck 应用
IPv4·IPv6 子网计算✓✓(离线)
特殊用途地址识别(IANA)✓✓
划分地址块可试用(不保存)等分与 VLSM,保存在规划中(高级版)
按站点或客户保存规划—高级版
导出 .xlsx、CSV、Markdown—高级版
方案库免费 13 个免费 13 个,高级版 69 个
讲解10 篇11 篇
无网络时使用—✓

常见问题

常见问题

输入的内容会被发送到什么地方吗?

不会。所有计算都由浏览器中的 JavaScript 完成。本页面不展示广告,也不使用 Cookie。输入的地址只会出现在本页 URL 的“#”之后,而这一部分浏览器不会发送给服务器。

为什么 /31 的可用主机数是 2?

/31 用于点对点链路,这种链路不需要广播地址,因此两个地址都可以分配(RFC 3021)。/32 是单台主机。讲解“/31 与 /32”说明了通常的减法为什么在这里不成立。

可以用掩码或通配符掩码代替前缀输入吗?

可以。“192.168.1.0 255.255.255.0”“192.168.1.0 0.0.0.255”“192.168.1.0/255.255.255.0”都能计算。只输入掩码或通配符掩码时,会显示它对应的前缀长度和主机数。输入“10.0.0.5 - 10.0.0.90”这样的范围时,会列出恰好覆盖它的 CIDR 地址块。

IPv6 为什么没有广播地址?

IPv6 没有广播机制,由组播承担这一角色。因此 IPv6 地址块中的所有地址都计为可用。全零地址是子网路由器任播地址,但不扣除(RFC 4291)。

特殊用途地址的类别是怎么判定的?

依据 IANA 的 IPv4 与 IPv6 特殊用途地址注册表,按最长匹配判定。最近一次与注册表核对是在 2026-09-23。