amazon-web-services - 为什么 10.0.0.1/28 在 10.0.0.0/24 的 VPC 中不是有效子网?
问题描述
如何在 10.0.0.0/24 范围内创建多个子网。尝试创建 10.0.0.1/28 。它告诉它应该在 CIDR 范围内。我肯定做错了什么。请指教。
解决方案
该消息具有误导性。它不像10.0.0.1/28
不在 CIDR 范围内10.0.0.0/24
,它只是一个不正确的网络 ID(我猜该消息可能会更有帮助)。
您只能指定网络 ID,不能指定网络地址。在您的情况下10.0.0.1/28
,是范围中的第一个网络地址10.0.0.0
-您需要使用的网络 ID10.0.0.15
在哪里。前缀长度10.0.0.0/28
的下一个网络 ID与另一个答案中提到的一样。/28
10.0.0.16
这是由子网划分规则给出的。长话短说,如果您需要知道网络 ID,那么只需减去前缀,在这种情况下28
是从32
(32 位 IPv4 地址)中减去,这将为您提供 4 个可用于主机的可用位,这些位转换为2^4 = 16
块大小。10.0.0.0
因此,您可以从最后一个数字添加 16开始并继续,0, 16, 32, 48, ...
其他前缀也是如此(或者至少如果您认为任何前缀更长或等于 24,它也适用于较短的前缀,但是您需要注意您正在修改哪个八位组的 IP 地址)。
还值得一提的10.0.0.1/28
是,它甚至不是AWS 上可用的 IP 地址,因为 AWS 保留了每个子网的前 4 个和最后一个 IP 地址(前 4 个,包括网络 ID,用于您的子网中的 DHCP 服务器等内容)您没有直接看到,最后一个是广播地址,通常不能分配给任何主机,而且AWS甚至不支持广播)。
所以从技术上讲,当你使用10.0.0.0/28
子网时,你最终会得到 11 个可用的 IP 地址,范围从10.0.0.4
到10.0.0.14
.
推荐阅读
- angular - Validators.pattern 在模式中添加额外的 ^ 和 $
- apostrophe-cms - 带浮动的撇号-cms 工具栏
- openshift - 需要对 openshift 中已弃用的“oc secret new-basicauth”等效的命令
- java - 动态类加载时如何保护 Java 应用程序?
- azure - VSTS 中的任务组参数不提取变量值
- javascript - 首次连接时无法连接到服务器。但有时它在重新启动互联网连接后工作
- android - 向当前用户发送推送通知 FCM(Firebase 云消息传递)
- html - 更改由“空白:正常”生成的换行符的高度
- multithreading - gsoap 多线程问题(客户端/服务器)
- angular - Angular 5 服务单元测试与 http async