二进制视图才是重点
以点分二进制显示地址、掩码、网络地址和广播地址,并在前缀结束的位置画一条分界线。要理解 192.168.1.130/26 为什么落在 192.168.1.128,没有什么比看着最后六位归零更快。
输入地址和前缀,即可得到完整信息:网络地址和广播地址、可用主机范围、两种掩码,以及按二进制排列的 32 位,网络部分和主机部分分开显示。
网络地址 192.168.1.128/26。子网掩码 255.255.255.192。广播地址 192.168.1.191。可用范围 192.168.1.129 至 192.168.1.190,共 64 个地址,其中 62 个可用。
地址框也可以直接输入完整的 192.168.1.130/26 或 192.168.1.130 255.255.255.192,掩码框两种形式都接受。
前缀是位数,不是地址数。分界线左边的部分对这个子网中的每台机器都相同;右边的部分用来区分它们。
把全部 6 个主机位设为 0,得到网络地址 192.168.1.128;全部设为 1,得到 192.168.1.191。两者之间的每个地址都属于这个子网,所以 2^6 等于 64。
最小的 RFC 1918 地址块,也是家用设备出厂默认使用的地址块。共 65,536 个地址,通常以 /24 为单位分配。
RFC 1918 地址空间在公网上不可路由,但这不等于无法访问。VPN、配置错误的路由,或任何已经在边界内部的设备,都能顺利访问它;请把私有地址视为一种编址决策,而绝不是安全控制手段。
三个八位组表示网络,一个表示主机:254 个可用地址,这也是“C 类”至今仍被用作 /24 简称的原因。
有类编址在 1993 年被 CIDR 取代,现在的路由器都不再使用它。显示类别只是因为这套术语沿用至今,而不是因为它有任何约束;无论第一个八位组暗示什么,这个地址的实际前缀都是 /26。
从主机位借位给网络部分,每借一位就把地址块一分为二。每多借一位,子网数量翻倍,每个子网的大小减半。
借用 2 位 · 255.255.255.240
4 个子网 × 每个 16 个地址
| # | 子网 | 可用范围 | 广播地址 |
|---|---|---|---|
| 0 | 192.168.1.128/28 | 192.168.1.129 – 192.168.1.142 | 192.168.1.143 |
| 1 | 192.168.1.144/28 | 192.168.1.145 – 192.168.1.158 | 192.168.1.159 |
| 2 | 192.168.1.160/28 | 192.168.1.161 – 192.168.1.174 | 192.168.1.175 |
| 3 | 192.168.1.176/28 | 192.168.1.177 – 192.168.1.190 | 192.168.1.191 |
已列出全部 4 个子网。高亮的行是包含 192.168.1.130 的那个子网。
| 前缀 | 掩码 | 反掩码 | 可用 |
|---|---|---|---|
| /8 | 255.0.0.0 | 0.255.255.255 | 16,777,214 |
| /9 | 255.128.0.0 | 0.127.255.255 | 8,388,606 |
| /10 | 255.192.0.0 | 0.63.255.255 | 4,194,302 |
| /11 | 255.224.0.0 | 0.31.255.255 | 2,097,150 |
| /12 | 255.240.0.0 | 0.15.255.255 | 1,048,574 |
| /13 | 255.248.0.0 | 0.7.255.255 | 524,286 |
| /14 | 255.252.0.0 | 0.3.255.255 | 262,142 |
| /15 | 255.254.0.0 | 0.1.255.255 | 131,070 |
| /16 | 255.255.0.0 | 0.0.255.255 | 65,534 |
| /17 | 255.255.128.0 | 0.0.127.255 | 32,766 |
| /18 | 255.255.192.0 | 0.0.63.255 | 16,382 |
| /19 | 255.255.224.0 | 0.0.31.255 | 8,190 |
| /20 | 255.255.240.0 | 0.0.15.255 | 4,094 |
| /21 | 255.255.248.0 | 0.0.7.255 | 2,046 |
| /22 | 255.255.252.0 | 0.0.3.255 | 1,022 |
| /23 | 255.255.254.0 | 0.0.1.255 | 510 |
| /24 | 255.255.255.0 | 0.0.0.255 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 2 |
| /31 | 255.255.255.254 | 0.0.0.1 | 2 |
| /32 | 255.255.255.255 | 0.0.0.0 | 1 |
反过来算:告诉它需要容纳多少台主机,取能容纳它们的最小地址块。
掩码 255.255.254.0,反掩码 0.0.1.255,剩余 10 个地址。留出增长空间:给运行中的子网重新编址,比现在多留一位主机位要麻烦得多。
IPv4 地址就是一个 32 位的数字,我们把它写成四个十进制八位组,因为没人愿意读 3232235906。前缀表示从左数起有多少位用来标识网络;剩下的位标识网络中的某台主机。子网计算器给出的每个值都源于这一次切分。把主机位全部设为 0,得到网络地址;全部设为 1,得到广播地址。子网掩码就是把前缀画成地址的样子(网络部分为 1,主机部分为 0),反掩码则是它按位取反的结果。由于分界线可以落在 32 位中的任意位置,而不只是八位组的边界上,/26 会把一个八位组从中切开,这就是为什么 192.168.1.130 属于 192.168.1.128,而不属于 192.168.1.0。
可以直接输入完整的 192.168.1.130/26,也可以只填地址,再在旁边的框里填前缀或点分掩码。前导零、超出范围的八位组和不连续的掩码都会被拒绝,并给出具体原因,而不是笼统地报错。
滑块范围是 /0 到 /32。拖动时页面上的每个值都会实时重绘,所以当 /24 变成 /25 的那一刻,你能看到网络地址移动、主机数减半,二进制视图中的分界线向右移动一位。
深色面板显示网络地址、广播地址、可用范围和两种掩码,每项都有复制按钮。在它下方选择更长的前缀,即可列出该地址块包含的等大小子网。
以点分二进制显示地址、掩码、网络地址和广播地址,并在前缀结束的位置画一条分界线。要理解 192.168.1.130/26 为什么落在 192.168.1.128,没有什么比看着最后六位归零更快。
/31 并不是没有主机的子网:RFC 3021 让它的两个地址都能在点对点链路上使用,也没有需要预留的广播地址。/32 是单个主机路由。两者都按其真实含义显示,而不是被当作算错的结果。
输入 /26 或 255.255.255.192 都可以。不连续的掩码会被拒绝,并显示出问题的位模式;粘贴到掩码框里的反掩码会被识别并指明,而不是直接拒绝。
选择更长的前缀,每个子网都会列出其网络地址、可用范围和广播地址,包含你的地址的那一行会高亮显示。超过 256 行时,列表会准确说明省略了多少个,绝不会悄悄截断。
RFC 1918 私有地址、环回地址、链路本地地址、CGNAT、组播、文档示例地址块和受限广播地址,都会按所属地址块识别出来。A 到 E 类也会显示,并标明这只是历史分类。
提供 32 位整数和十六进制形式,方便日志或 API 需要时使用;还有一张从 /8 到 /32 的完整表格,列出掩码、反掩码和主机数。每个推算值都有复制按钮。
它表示的是位数,而不是地址数。IPv4 地址共 32 位,前缀表示从左数起有多少位对网络中的所有机器都是固定的。/24 固定了前 24 位(192.168.1),留下 8 位可变,也就是 256 种组合。这种表示法叫做 CIDR,它在 1993 年取代了旧的分类体系,正是因为网络的大小从此不必与八位组边界对齐:/23 和 /25 与 /24 一样合法,而且地址块实际上就是这样分配的。
256 个地址中有两个已被占用。主机位全为 0 的地址(192.168.1.0)是网络地址,它在路由表中代表这个子网,不能分配给接口。主机位全为 1 的地址(192.168.1.255)是定向广播地址,网段上的每台主机都会收到。剩下的就是 .1 到 .254。任何大小的子网都要减去这两个,所以 /26 只有 62 个而不是 64 个,/30 也只有 4 个中的 2 个。
因为 RFC 3021 为这一种情况免除了预留。/31 正好只有两个地址,如果一个留作网络地址、一个留作广播地址,就什么都不剩了。在两台路由器之间的点对点链路上并不需要广播地址(对端只有一台设备,发给它就等于广播),所以两个地址都分配出去,链路也不再浪费半个 /30。当前所有路由器都支持这种做法;一些较老的主机协议栈仍然不接受,这也是 /30 至今依然常见的唯一原因。
它是子网掩码按位取反的结果:子网掩码中为 1 的位,在反掩码中为 0。/24 的掩码是 255.255.255.0,所以反掩码是 0.0.0.255。之所以反过来,是因为它回答的是另一个问题:掩码标记必须匹配的位,反掩码标记可以自由变化的位。Cisco IOS 访问控制列表和 OSPF 的 network 语句使用的都是反掩码,所以 ACL 写成 192.168.1.0 0.0.0.255,而不是你在接口上配置的那种掩码。把两者弄反,是写出匹配范围远超预期的规则的经典方式。
因为它的 1 位不连续。掩码必须是一串连续的 1 后接一串连续的 0,因为这是前缀唯一可能的形态:路由硬件匹配的是开头的一串位,能表达“前 N 位”,却无法表达“这几个分散的位”。早期实现在技术上允许不连续的掩码,结果导致无法路由,所以 CIDR 禁止了它们。如果你发现自己想用这样的掩码,你真正需要的要么是另一个前缀,要么是一条防火墙规则。
先算出接口数量(不是人数,别忘了打印机、无线接入点和网关本身都各占一个),然后找出可用地址数仍能超过这个数量的最小地址块。25 台主机需要 /27,因为 /27 提供 30 个,而 /28 只有 14 个。如果这个网段有可能扩大,就比计算结果再多留一位,因为给运行中的子网重新编址,远比第一天就分配一个稍大的地址块更折腾。本页的容量规划面板会帮你查找,参考表则列出了完整的阶梯。
不是。RFC 1918 地址在公网上不可路由,意思是没有 ISP 会转发它们;但这不代表没有任何东西能访问它们。任何已经在边界内部的东西都能顺利访问:VPN 客户端、被入侵的笔记本电脑、同一主机上的容器,或者两个都使用 192.168.1.0/24 的站点之间配置错误的路由。私有地址只是一种编址决策,用来节省公网地址空间并迫使流量经过 NAT;真正起控制作用的是防火墙,而不是地址范围。
因为 /12 的边界不落在八位组上。12 个固定位覆盖了第一个八位组和第二个八位组的高四位,所以第二个八位组可以在 16 到 31 之间变化:从 172.16.0.0 到 172.31.255.255。这在两个方向上都容易让人出错:172.15.0.0 和 172.32.0.0 是属于别人的公网地址,而把这个地址块写成 172.16.0.0/16,会悄无声息地丢掉十六分之十五的可用私有地址空间。
探索不断扩充的工具合集,涵盖计算、文档、写作和日常工作。