子网掩码可以在 1 之间包含零吗?

网络工程 ip IPv4 子网 协议论 射频
2022-02-18 00:33:23

理论上,子网掩码可以在 1 之间有零(例如255.255.0.248),还是必须严格为 1 后跟 0?

RFC 950中所述,只有一个“示例”可以将 IP 解释为<network-number><subnet-number><host-number>(参见 2.1)。而在 2.2 给出的伪代码中:

IF bitwise_and(dg.ip_dest, my_ip_mask)
                               = bitwise_and(my_ip_addr, my_ip_mask)
         THEN
             send_dg_locally(dg, dg.ip_dest)
         ELSE
             send_dg_locally(dg,
                    gateway_to(bitwise_and(dg.ip_dest, my_ip_mask)))

这似乎也适用于这两种情况。

我的NE老师说像255.255.0.248“正确但不常用”这样的面具。所以我在互联网上挖掘结果为空后在这里问。

2个回答

对于网络,掩码需要是连续的。一些供应商允许您指定前缀长度而不是掩码。前缀长度表示掩码中设置为 1 的最左边的位数,因此前缀长度为 24 表示掩码为 255.255.255.0。前缀长度是连续的,无法指定不连续的掩码。某些路由协议(例如 BGP)在更新中使用前缀长度(而不是掩码),因此甚至无法使用 BGP 通告非连续掩码。

ACL 中使用的通配符掩码类似于反向子网掩码。他们的工作是显示地址的哪些位是相关的。在通配符掩码中使用非连续位是完全可以的。通配符掩码不是子网掩码,在接口配置上指定网络时不能使用

此外,有关更多答案,请参阅https://superuser.com/questions/979915/are-subnets-always-contiguous-1s

是的。这可以在许多 Cisco 平台上完成并且确实有效。它特别适用于访问控制情况(流量过滤器、路由分配控制等)。支持接口寻址。

也就是说,它的可读性不是很好,而且——根据我的经验,这通常是一种节省几行 ACL 的方法,并且是预优化如何成为万恶之源的经典示例。

其它你可能感兴趣的问题