我建造 Toolz.dev,而与WordPress插件和Laravel API一起,我在云控制台上花了相当多的时间雕刻VPC和编写防火墙规则子网是理论简单而算术繁琐的技能之一,而繁琐的部分正是错误隐藏的地方我已经发货了一个安全组,允许a /16 当我的意思是 /24的,开一个远比预期更宽的网络,因为我做了脑子里的蒙版数学,有点错了。的 IP 子网计算器 存在,这样就不会再用手发生。本指南解释了它计算的内容、为什么数字会按照它们的方式出现,以及导致人和他们信任的天真计算器绊倒的边缘情况。
TL;博士: IPv4 子网计算器采用地址和 CIDR 前缀,例如
192.168.1.10/24(black),并导出网络地址、广播地址、第一个和最后一个可用主机、子网掩码、通配符掩码以及总和可用地址计数,它通过将地址视为32位整数,并按位运算应用掩码来正确处理重要的两个边缘情况,处理a/31根据 RFC 3021 和 a 作为两主机点对点链路/32作为单个主机,它接受虚线掩码代替前缀。它完全在您的浏览器中运行,因此您输入的地址不会上传。
什么是子网以及前缀是什么意思?
IPv4地址是32位,写成四个十进制八位字节,就像 192.168.1.10。子网是共享相同前导位的那些地址的连续块,CIDR前缀,斜杠后面的数字,说32位中有多少固定为网络部分,其余位可以自由变化,识别单个主机所以 /24 修复前 24 位并为主机留下 8 位, /16 修复 16 和叶子 16,以及 /30 修复 30 个,只留下 2 个。
块中的地址数是两个,提高到主机位的幂 A. /24 8个主机位,所以2到8号,也就是256个地址。A /16 16个主机位,所以有65536个地址。A /30 2个主机位,所以4个地址,这是数学的全部基础,一旦你内化"地址等于二的幂三十二减去前缀,"子网设置大部分停止神秘。
CIDR 代表无类域间路由,于 2017 年推出 RFC 4632 替换旧的类系统,其中地址's类由其第一个八位位组固定。类寻址浪费了大量的空间,因为即使您需要介于两者之间的东西,您也必须采用整个A、B或C类块。CIDR允许您根据您需要的内容选择任何前缀长度和网络大小。类标签A、B和C仍然出现在工具中,包括我的工具,但它们现在具有信息性;前缀决定网络边界。
为什么每个子网中的两个地址不可用?
Nian子网中, 保留了第一个和最后一个地址, 不能指派给主机, Zui后一个地址, 所有主机位都设为零, 是网络地址, 它自己命名Zi网, 最后一个地址, 所有主机位都设为一个, 是广播地址, Yi个发给它的包一次到达子网上的每台主机, Yin为说出那两台, 可用的主机数就是地址总数减去两台。
这就是为什么a /24 总共有 256 个地址,但只有 254 个可用地址,以及为什么 a /304个地址,恰好给你2个可用主机。The /30 是两个路由器之间链接的经典选择,因为点对点链接恰好需要两个地址,仅此而已计算器将网络拼写出来,并明确地广播地址,以及第一个和最后一个可用主机,因此您永远不必计算出哪些地址是禁区的。
计算器如何计算数字?
32位整数下是按位算术,这既是最快的,也是最少容易出错的方法,通过将每个八位位组移到位,将地址打包成单个无符号整数。前缀的掩码是一连串的,后面跟着零,通过移位产生 0xFFFFFFFF 离开 32 minus the prefix.从那里,每个值都是一个运算:
- 网络地址是带有掩码的按位ANDED地址,它将主机位归零。
- 广播地址是用掩码的逆 OR 连接的网络,它设置所有主机位。
- 通配符掩码只是子网掩码的按位逆。
- 第一个可用主机是网络地址加一,最后一个是广播减一。
这样做可以避免人们手转换为二进制字符串时所犯的错误。它还使反向转换变得微不足道:像转动虚线掩码一样 255.255.255.0 回到前缀,您计算前导一位,当您输入掩码而不是斜线符号时,计算器会执行此操作。所有内容始终保持为无符号 32 位整数,这在 JavaScript 中很重要,因为您必须强制无符号解释以避免负数在高位上蠕动。
大多数工具出错的边缘情况是什么?
两个前缀打破了简单的 "减去两个"规则,并且数量惊人的计算器错误地处理它们。
第一个是 /31.在原规则下 a. /31 将有两个地址,均为保留,留下零个可用主机,这是无用的。 RFC 3021 通过允许 a 修复了这一点 /31 on点对点链接,其中不需要广播地址,因此它的两个地址都变得可用,这个计算器报告a /31 作为具有网络和广播地址的两个可用主机,其地址加倍为两个主机地址,这就是现代路由器在串行和点对点接口上所做的事情。
第二个是 /32. A /32 是单个地址,主机路由,它正好代表一台机器,这就是循环回地址、主机专用防火墙规则、单个路由的表达方式,计算器将其报告为一台网络地址等于地址本身且没有单独范围的可用主机,盲目减去两个的工具会报告这两个主机为负或为零,这是无稽之谈,我确保这台不会。
如何使用子网计算器
1步:输入地址和前缀
用 CIDR 前缀键入 IPv4 地址,例如 10.0.0.0/8 或 192.168.1.10/24.前缀可以是0到32的任何东西,如果粘贴一个没有前缀的地址,工具假设a /24的, 最常见的默认值, 而且你可以从那里调整。
2步:或者使用虚线子网掩码
如果您有掩码而不是前缀,请输入由空格分隔的地址和掩码,例如 192.168.1.10 255.255.255.0.计算器对掩码中的前导一位进行计数,将其转换为匹配的前缀,并拒绝任何其不连续的掩码,因为这样的掩码不是有效的CIDR掩码。
3步:阅读结果
RFC 1918下得到网络地址、广播地址、可用主机范围、子网掩码、通配符掩码、总和可用地址计数、分类范围、地址是否私有,还有地址和掩码的二进制视图,这是准确查看网络边界落在哪里的最快方法。
4步:复制你需要的东西
每个值都有一个复制按钮,因此您可以将 CIDR 表示法提升到路线表中,将主机范围提升到文档中,或者将通配符掩码提升到思科访问列表中,而无需重新输入并冒着转换八位字节的风险。
子网掩码和前缀引用
这是我不断返回的表,计算器实时生成它,因此数字永远不会过时。
| CIDR | 子网掩码 | 总地址 | 可用主机 |
|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254绔 涔诲芥澶澧 |
| /25 | 255.255.255.128 | 128绔 涔诲芥澶澧 | 126绔 涔诲芥澶澧 |
| /26 | 255.255.255.192 | 64绔 涔诲芥澶澧 | 62绔 涔诲芥澶澧 |
| /27 | 255.255.255.224 | 32绔 涔诲芥澶澧 | 30绔 涔诲芥澶澧 |
| /28 | 255.255.255.240 | 16绔 涔诲芥澶澧 | 14绔 涔诲芥澶澧 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4锛屽湪娴欐睙鏉 | 2 |
Gu型值得记忆:前缀中每上一步, 都会使块减半 A. /25 是半个 /24,a /26 是四分之一,依此类推,当你在拆分一个网络时,那减半就是心理模型,计算器确认了确切的边界,所以你不必单独信任心理模型。
如何将一个网络分割成更小的子网?
最常见的真正任务不是计算单个子网,而是将一个较大的块划分为几个较小的块,这就是计算器赢得其保留的地方。说你被交给了 10.0.0.0/16 为云VPC,并需要将其雕刻成公共层、私有层和数据库层的子网,前缀中的每一步上升都会使子网的数量增加一倍,并且将它们的大小减半,因此从 /16 到 /18 为您提供四个相等的块,每个块有 16,384 个地址: 10.0.0.0/18、 10.0.64.0/18、 10.0.128.0/18、和 10.0.192.0/18。您可以通过将这些边界粘贴到计算器中并确认网络和广播地址排列起来来检查这些边界中的每一个,没有间隙,也没有重叠。
这里的陷阱是子网必须落在它们的自然边界上。 A /26 block 不能只从任何地址开始;它必须从最后一个八位字节中的 64 的倍数开始,因为 64 是 a 的块大小 /26。如果你尝试从开始 .30者,计算器报告的网络地址将与你输入的内容不匹配,这是最快的抓错方法当我计划VPC时,我依次粘贴每个预期的子网并读回网络地址;如果该工具显示的网络地址与我打算定义的网络地址不同,我知道我的边界是错误的,在我应用它之前,相同的纪律适用于路由器's静态路由和防火墙规则,其中一个越界块默默覆盖你不打算的地址。
还有一个现实世界的微妙值得命名:云提供商在网络和广播对之外的每个子网内部保留一些地址。例如,AWS 每个子网保留五个地址,而不是两个,取前四个和最后一个。计算器报告严格的 RFC 主机范围,因此在 AWS 上,您从其显示的可用计数中再减去三个。那是分层在标准之上的提供商约定,不是数学中的缺陷,但它正是那种如果你忘记了就会让你两台主机短缺的东西。
哪些范围是私有的,为什么这很重要?
RFC 1918 保留三个区块供私人使用: 10.0.0.0/8、 172.16.0.0/12、和 192.168.0.0/16。这些在公共互联网上不可路由,它们是几乎每个家庭和办公室网络在路由器后面使用的范围,做网络地址翻译。计算器标记您输入的地址是否落入其中一个,这是当您计划寻址方案并希望确认您在私人空间内工作而不是意外使用属于公共互联网上其他人的地址时,快速理智检查。当您在您期望是内部的地址上看到 "public" 标志时,这也是一个有用的推动,因为这通常意味着第一个八位字节中的拼写错误。
子网计算器与其他所有内容相符的地方
网络工作很少单独发生。当您配置应用程序背后的基础设施时,您还调试 HTTP 响应、解析用户代理以及生成内部服务的凭据。 HTTP 状态代码参考 是应用层的伴侣, 用户代理解析器 用于找出击中服务器的情况 基本的作者生成器 对于保护内部端点的凭据。如果您在二进制读取掩码时在数基之间进行转换,则 数基转换器 直接处理小数到二进制步骤。在安全方面, 信用卡验证器 是在您刚刚设计的网络上运行的结账的前端过滤器。
对于更广泛的情况来说, 开发人员生产力工具 roundup 涵盖了整天在选项卡中打开的实用程序 编码工具指南 将子网计算器放在完整的开发人员工具包的上下文中。就像toolz。dev上的所有内容一样,它完全在您的浏览器中运行,因此您计划的地址永远不会离开您的机器。
常见问题
CIDR前缀是什么意思?
CIDR 前缀是斜杠后面的数字,它统计地址的多少前导位来标识网络 A. /24 修复网络的前 24 位,为主机留下 8 位,即 256 个总地址和 254 个可用地址。较小的前缀覆盖更多的地址,较大的前缀覆盖更少的地址。
子网中有多少个可用主机?
为的前缀 /30 or更小,可用主机计数是总地址减二,因为第一个地址是网络,最后一个是广播 A. /24 拥有 254 台可用主机,a /26 有 62 个,并且 a /30 has 2,两个例外是 /31其中有 2 个可用主机,并且 /32其中有1。
网络地址和广播地址有什么区别?
Network地址是块中的第一个地址,标识子网本身,所有主机位设置为零,广播地址是最后一个地址,所有主机位设置为一个,发送给它的一个包一次到达子网上的每个主机,都不能分配给普通子网中的单个主机。
如何将子网掩码转换为 CIDR 前缀?
计算掩码中的前导一位。 255.255.255.0 是24个位,所以是 /24; 255.255.240.0 是20位,所以 /20。当您输入虚线掩码而不是前缀时,计算器会自动执行此转换,并且它会拒绝任何不连续的掩码。
通配符掩码有什么用途?
通配符掩码是子网掩码的位逆,因此 /24 给出 0.0.0.255。Cisco访问控制列表和OSPF网络语句中使用,其中零位意味着与此位完全匹配,一位意味着忽略它。它很容易与子网掩码混淆,这就是计算器同时显示两者的原因。
为什么/31 显示两个可用的主机?
RFC 3021 允许 /31 在点对点链接上,不需要网络和广播地址,因此它的两个地址都成为可用的主机地址。没有该规则 a /31 会零可用主机,这没用 A. /32 是相关的边情况,表示单个主机,例如环回或主机路由。
IPv4 哪些范围是私有的?
RFC 1918 储备 10.0.0.0/8、 172.16.0.0/12、和 192.168.0.0/16 为专用网络。这些在公共互联网上不可路由,是大多数家庭和办公网络在路由器后面使用的范围。计算器会标记您输入的地址是否落入其中之一。
IPv6 这个计算器管用吗?
不,该工具仅计算 IPv4 子网。IPv6 使用 128 位地址和十六进制表示法,因此其子网的工作方式不同,需要专用的计算器。对于 IPv4 规划、防火墙规则和云 VPC 大小(这是大多数日常子网数学发生的地方),这涵盖了常见情况。



