【发布时间】:2014-11-14 03:32:58
【问题描述】:
我想找出这两个网络之间以 CIDR 表示法的所有 IPv4 网络:
10.11.3.64-10.11.3.127
10.11.52.0-10.11.52.255
IPv4 网络应具有尽可能短的子网掩码。
将10.11.3.127 转换为二进制相当容易,添加1 并转换回十进制以获得网络的第一个地址。然后将10.11.52.0 转换为二进制,减去1 再转换回十进制以获得网络的最后地址。但是,有什么建议可以巧妙地使用哪种算法来找出10.11.3.128-10.11.51.255 范围内的 CIDR 块?只是我认为应该朝哪个方向提出建议就足够了:)
【问题讨论】:
-
解释
IPv4 networks should have as short subnet-mask as possible. -
@hek2mgl 这意味着 IPv4 前缀应该尽可能大。例如,网络范围
10.11.3.128-10.11.51.255可以用10.11.3.128/25以CIDR 表示法表示,然后使用/24 前缀从10.11.4.0/24到10.11.51.0/24,而实际上这些/24可以聚合。 -
或从
10.11.3.128/0到10.11.51.255/0使用 32 位前缀,这实际上是 IPV4 的最大可能前缀..这就是我问的原因.. -
@hek2mgl 在我看来,
IPv4 networks should have as short subnet-mask as possible句子是单义的。这意味着网络掩码部分应尽可能短,即包含尽可能少的部分。 -
好的,知道了。对不起,我的错。现在这是一个有趣的问题...
标签: bash networking subnet