我已经很久没有回答过网络问题了,我有点忘了如何回答它们。有人能向我解释一下如何找到正确的 CIDR 吗?
第二个问题:我很确定第一个和第三个网络无效,因为 196 和 144 不是 255 - 2 的幂,所以子网无效。请让我知道我是否正确以及如何使用它
host1 10.3.9.131
host2 10.3.21.78
host3 10.3.69.57
给出最小可能网络的 CIDR 表示,其中包括 host2 和 host3 但不包括 host1。
以下哪些网络不适合在公共互联网上使用以及为什么?
Network subnetmask
10.15.45.0 255.255.196.0
192.167.12.0 255.255.254.0
8.17.55.0 255.255.244.0
130.102.43.128 255.255.255.128
答案1
以下哪些网络不适合在公共互联网上使用以及为什么?
这里实际上有两个问题。
哪些行从一开始在语法上就是无效的?
RFC 1338 和 RFC 1519 都描述了“最长前缀”路由,这要求子网掩码中的“1”位是连续的。这意味着非连续的网络掩码在任何IP 实施,无论它是否是互联网的一部分。
这意味着网络掩码
255.255.196.0
和255.255.244.0
在路由表中始终无效,无法描述网络。其他两个网络掩码可以描述有效网络(但不一定是 Internet 上可用的网络)。如果您正在查看十进制网络掩码,那么这将是一种正确的检查方法。
256 - 2x
(注意:过滤器或 ACL 掩码(例如 iptables 中的掩码)不使用最长前缀匹配,因此该规则不适用于它们。)
哪些行描述了无法通过互联网公布的网络?
所有 ISP 都遵守 RFC 1918 保留的地址范围,不允许宣布网络 10.15.45.0(无论其网络掩码如何),因为它在保留的 10.0.0.0/8 范围内。其他三行不属于任何保留范围,可以在互联网上宣布。
给出最小可能网络的 CIDR 表示,其中包括 host2 和 host3 但不包括 host1。
这是一个陷阱问题——根本不存在这样的单一网络。
由于 CIDR 表示描述了位前缀,“最小可能网络”意味着“最长公共前缀”。因此,请比较您要包含的两个地址的每一位,直到它们不再相等 - 并记住每个数字正好是 8 位宽,因此如果需要,请用 0 填充它:
主机2 10.3.21.78 | 0000 1010 | 0000 0011 | 0001 0101 | 0100 1110 主机3 10.3.69.57 | 0000 1010 | 0000 0011 | 0100 0101 | 0011 1001 匹配++++ ++++ ++++ ++++ +(17)
您有 17 个匹配的位(从左边开始),因此仍然包含 host2 和 host3 的最小可能网络是10.3.0.0/17
。
但是,它也包括 host1,这是无法避免的。使网络变得更小(例如 10.3.0.0/18)实际上会排除 host3,同时仍包括 host1。