给定前缀Y,可以很容易地计算相应的网络掩码:将Y乘以设置的位,然后用零填充“在右边”,直到一个总数达到32位(IPv4)。示例:

前缀24,因此是网络掩码11111111 11111111 11111111 00000000255.255.255.0。 />
00000000 11111111 00000000 111111110.255.0.255

00000000 11111111 11111111 111111110.255.255.255

11111111 11111111 11111111 00000001255.255.255.1

指定“前缀”显然不会在这些情况下不能使用。可以确定101%。)

#1 楼

RFC950声明


由于标识子网的位是由位掩码指定的,因此它们不必在地址中相邻。但是,我们建议
子网位是连续的,并定位为本地地址的最高有效位



大多数设备在遵循此建议之前执行它。早在2012年,我仅在仅Linux网络上使用了非连续的子网掩码。我测试过的Windows,OSX,Cisco和HP设备无法处理/不允许它。

评论


我相信这已被RFC1519取代,RFC1519明确要求使用连续的掩码。

–user1686
17年9月11日在6:10

@grawity可能是这种情况。发现“唯一的突出约束是必须使遮罩保持连续。”在谈论CIDR时,但阅读的内容不足以获取上下文。

–Filip Haglund
17年9月11日上午10:01

#2 楼

如果使用前缀和网络,则答案是否定的,这些位必须是连续的。在某些情况下,可以使用通配符掩码(掩码的倒数),例如思科ACL,并且这些ACL可以是任何位模式。例如,您可以阻止来自网络上所有奇数主机的流量。这似乎仍然可以教,但是我没有看到它在现实世界中经常使用(尽管我已经看过)。

#3 楼

否。网络掩码是一个连续的系列。

(其他都是“通配符”模式。)

评论


这不是真的。 30年前有很多。可能还有一些正在运行。

– MAP
16年7月6日在2:02

我对此表示高度怀疑。没有现代的路由硬件将允许它。 80年代的路由器将在当今IP的工作方式上遇到许多问题。 (在那儿。告诉过您'不使用全零子网-即使在90年代后期也是一个问题)我在那个时代仍然只有两个设备不会接受非连续的网络掩码。 (WTI pdus之所以存在,是因为它们有10bT端口。大多数互联网都与他们无话可说。)

–瑞奇
16年7月6日在5:37

#4 楼

当TCP / IP首次问世并得到广泛传播时,实际上有许多子网具有不连续的掩码。但是随着地址的稀缺,网络其余部分的开销使这些前缀可以进行全局路由,而不是强制所有内容都仅基于前缀。太多,全球网络更改为仅支持前缀。实际上,实际上仍然会有一些遗留网络在内部使用不连续的掩码(许多IGP仍然支持此功能)。但是,当这样的网络连接到Internet时,它具有覆盖所有网络的单个前缀,并在BGP中发布。而且,当然,EGP(BGP的前身)仅支持Classful寻址。我只是不知道他们中是否有人还在这样做。他们中的许多人甚至都没有退出。 ARPAnet的内部网络掩码为255.0.0.255(IIRC)。

评论


废话。这与CIDR,类或聚合无关。网络掩码始终是连续的。

–瑞奇
16年7月6日在1:52

例如,请参阅RFC 950。第15页给出了一个网络掩码为255.255.255.88的示例。

–罗斯压机
16年7月6日在3:14

我认为RFC 1519的第12页实际上会伤害您的情况,因为唯一相关的句子是:“唯一突出的约束是必须使掩码保持连续。” (强调我的)由于类在类路由中隐含/假定了掩码,并且仅使用了三个连续的掩码,并且CIDR上的RFC指定了连续的掩码,因此看来您的答案是错误的。 FreeBSD列表帖子对我来说是个谜。

– Todd Wilcox
16年7月6日在4:24



替代的RFC是4632:tools.ietf.org/html/rfc4632注意,已经讨论并使用了斜杠符号,并且“前缀长度”一词出现了好几次,如果使用了非连续的掩码,则两者都毫无意义。支持的。从RFC 950可以清楚地看出,在早期,可能有使用非连续掩码的系统,但是提出来并不能帮助询问者了解TCP / IP当前的工作方式,并且可能会造成混乱。

– Todd Wilcox
16年7月6日在4:44

由于标识子网的位由位掩码指定,因此它们不必在地址中相邻。但是,我们建议子网位是连续的,并定位为本地地址的最高有效位。尽管它不包含当今使用的应该/必须的措辞,但这正是每个人都建立了现代子网功能的方式。在超过三十年的联网中,我从未遇到过允许不连续子网的技术。

–瑞奇
16年7月6日在5:02