XYZ0是有效的IP地址吗?


86

最后一个八位位组中带有0的IP地址是否有效?

10.6.43.0

就我而言,我有以下网络掩码

255.255.252.0

其他八位字节为0呢?


12
其他人回答了,但是我们在DHCP范围内运行/ 23s,这意味着将两个/ 24s的中间.255和.0地址分配给客户端。工作正常。有时,“知识型”用户会以为自己提取了无效的IP感到有些惊讶,但是从网络POV来看,它工作正常。
jj33

Answers:


143

它取决于所讨论的IP地址的子网。通常,子网中的第一个和最后一个地址分别用作网络标识符和广播地址。子网中的所有其他地址都可以分配给该子网中的主机。

例如,子网掩码至少为24位(以.0或.255结尾)的网络的IP地址永远不能分配给主机。子网的此类“最后”地址被视为“广播”地址,并且相应子网中的所有主机都将对此作出响应。

从理论上讲,在某些情况下,您可以分配一个以.0结尾的地址:例如,如果您有一个类似192.168.0.0/255.255.0.0的子网,则可以为主机分配地址192.168.1.0。但是,这可能会造成混乱,因此这不是很常见的做法。

在你的例子中

 10.6.43.0 with subnet 255.255.252.0 (22 bit subnet mask)

表示子网ID 10.6.40.0,主机地址范围从10.6.40.1到10.6.43.254,广播地址10.6.43.255。因此,从理论上讲,您的示例10.6.43.0将被允许作为有效的主机地址。


4
一加。过去,我不得不处理一些较旧的软件,这些软件在合法的地方使用.0地址存在问题。
Zoredache

如果没有引用定义所有这些内容的CIDR RFC:RFC1518和RFC1519,对这个问题的回答将是不完整的。
pjz

17
RFC 1519已过时很长时间了。当前版本为RFC4632。–
bortzmeyer

1
刚刚由Amazon EC2实例分配了零点。他们肯定会最大化他们拥有的IP。
马特

@ bortzmeyer,RFC 4632只是最佳实践,而RFC 1519是标准跟踪RFC。
罗恩·莫平

13

您问题的答案取决于网络掩码。通常,“以.0或.255结尾的IP地址无效”为假。取10.0.1.0/23-它是有效的IP地址。

10.6.43.0/255.255.252.0也称为10.6.43.0/22有效。

那是理论。大多数合理的网络设备(包括linux服务器,windows盒,cisco / hp / etc等)都可以在该地址下正常工作,但是我已经看到dlink和其他低端网络设备(路由器,访问点)不接受此类地址。




3

如果远程网络拒绝IP地址以0(或255)结尾且来自C类范围的远程网络,我会遇到问题,因为任何以0结尾的IP地址都将是无效的C类网络。

这是几年前的事。我不知道是否还有人阻止这样的地址。


听起来您的防火墙/软件有点愚蠢;)
nixgeek

我的网络上除.0或.255以外的每个IP地址都可以访问每个站点,以.0和.255结尾的IP地址可以访问95%的站点,但是有两个或三个完全不同的站点无法访问。如果是我的防火墙/软件,我肯定不知道怎么做。
乔什·凯利

1
这些必须使用由相同人员配置的防火墙,这些人员阻止所有ICMP并最终破坏PMTUD,或阻止所有“无效” TCP标志并最终破坏ECN。
CesarB

据称,即使在今天,Microsoft服务器仍在这样做。没有适合您的Windows Update。但是众所周知,微软从一开始就违反规则。
Zdenek

0

我发现的一些东西可能值得注意:

如果您正在运行iptables的R-fx网络的APF脚本,它将所有流量降至0.0.0.255

我们有一个BT客户,其地址以.255结尾,前缀为/ 21.。从技术上讲,这是一个有效的IP地址,但是R-fx网络的人认为有理由丢弃这些地址的数据包。


为了安全起见,他们选择将数据包降至0.0.0.255。1)利用广播数据包的功能可能会发生DOS攻击,并且2)完全私有化网络,因此没有主机可以广播。参见en.wikipedia.org/wiki/Broadcast_traffic#Security
zamnuts
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.