网络掩码的可能(位)模式


13

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

例:

前缀24,即netmask 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%的肯定。)

Answers:


11

RFC950指出

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

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


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

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

6

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


4

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

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


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

2
我对此表示高度怀疑。没有现代的路由硬件将允许它。80年代的路由器在当今IP工作方式方面将面临许多问题。(在那儿。告诉您'不使用全零子网-甚至在90年代后期还是有问题的)从那个时代起,我仍然只有两个设备接受非连续的网络掩码。(WTI pdus之所以存在,是因为它们有10bT端口。什么也没聊,大部分都是互联网。)
Ricky Beam

3

当TCP / IP首次问世并普及时,实际上有许多子网具有不连续的掩码。但是随着地址的稀缺,网络其余部分的开销使这些前缀可以进行全局路由,而不是强制所有内容都仅基于前缀。太多,全球网络更改为仅支持前缀。实际上,实际上仍然会有一些遗留网络在内部使用不连续的掩码(许多IGP仍支持此功能)。但是,当这样的网络连接到Internet时,它具有覆盖所有网络的单个前缀,并在BGP中发布。而且,当然,EGP(BGP的前身)仅支持分类寻址。

我知道有几位具有原始问题A类网络的播放器,它们出于某种原因在内部使用了不连续的网络掩码。我只是不知道他们中是否有人还在这样做。他们中的许多人甚至都没有退出。ARPAnet的内部网络掩码为255.0.0.255(IIRC)。


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

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

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

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

3
由于标识子网的位由位掩码指定,因此它们不必在地址中相邻。 但是,我们建议子网位是连续的,并定位为本地地址的最高有效位尽管它不包含当今使用的应该/必须的措辞,但这正是每个人都建立了现代子网功能的方式。在超过三十年的联网中,我从未遇到过允许不连续子网的技术。
Ricky Beam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.