查找 CIDR 并检查子项是否有效

查找 CIDR 并检查子项是否有效

我已经很久没有回答过网络问题了,我有点忘了如何回答它们。有人能向我解释一下如何找到正确的 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

以下哪些网络不适合在公共互联网上使用以及为什么?

这里实际上有两个问题。

  1. 哪些行从一开始在语法上就是无效的?

    RFC 1338 和 RFC 1519 都描述了“最长前缀”路由,这要求子网掩码中的“1”位是连续的。这意味着非连续的网络掩码在任何IP 实施,无论它是否是互联网的一部分。

    这意味着网络掩码255.255.196.0255.255.244.0在路由表中始终无效,无法描述网络。其他两个网络掩码可以描述有效网络(但不一定是 Internet 上可用的网络)。

    如果您正在查看十进制网络掩码,那么这将是一种正确的检查方法。256 - 2x

    (注意:过滤器或 ACL 掩码(例如 iptables 中的掩码)不使用最长前缀匹配,因此该规则不适用于它们。)

  2. 哪些行描述了无法通过互联网公布的网络?

    所有 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。

相关内容