为何主机位全0的地址不能配置到设备上
- 发表于2021/4/9 23:19
- 890浏览
- 0评论
- 13分钟阅读
有人可能会回答说因为RFC950标准的标准不允许,但是我想问的就是为什么这个标准不允许,是什么原因,主机位全0在这个标准下的用途是什么?
把192.168.1.0255.255.255.0配置在网卡上会报错,不能配置主机位为全1的地址到设备上我可以理解,因为主机位全为1表示广播地址,表示发送广播数据到该网段所有的设备。但是主机位为全0有啥用途呢?为什么不能配置在设备上呢?书本上看到的解释是:192.168.1.0/24 表示网段地址,包含192.168.1.1~192.168.1.254和一个广播地址192.168.1.255,但是为什么不能把192.168.1.0也分配给PC用,这个地址在数据包的传输上有其他用途吗?还是说使用了会造成什么冲突吗?之所以有这样的限制,是由于早期的操作系统OS X, Linux, Solaris往往将网段地址192.168.1.0,当成广播地址来处理。所以当试图在这些主机上Ping 192.168.1.0 时,操作系统允许Ping,主机收到之后以为Ping的自己(广播),所以也会回复Ping。那么源主机上就会收到多个Ping的回复,很显然这会早成歧义。为了避免把网段的第一个IP地址错误当成一个广播地址。RFC规定,每个网段的第一个地址保留,不能被主机使用。那么192.168.1.0正好是网段192.168.1.0/24第一个地址,所以不能使用。例子一:192.168.1.128/25这个地址主机可以使用吗?192.168.1.128是这个网段的第一个IP地址,所以不能使用。例子二:192.168.1.0 /23这个地址主机可以使用吗?网段ID =192.168.0.0,IP = 192.168.1.0很显然≠网段ID,所以可以使用。例子三:192.168.0.255 /23这个地址主机可以使用吗?192.168.0.255不是这个网段的最后一个地址,所以可以使用。这个网段的最后一个地址 = 192.168.1.255 为广播地址。互联网链路上有很多P2P链路,那么依据该标准,最长的网络掩码只能是30位掩码,这样就会浪费的50% IP地址资源。比如现在有一条P2P互联链路,每端需要配置一个全局IP:1.1.1.1/30用在本地端,1.1.1.2/30用在远程端。1.1.1.0/30保留不用,1.1.1.3/30用于广播地址。这后两个IP就是一种浪费。都P2P链路了,还要啥广播地址? 1.1.1.0/30也是由于历史的原因才保留的,怕引起歧义。为了减少IP地址的浪费,RFC又出了一个新的规定,P2P链路使用31位掩码,可以没有保留地址及广播地址,该网段的两个地址分别用于P2P链路的两端。1.1.1.0/31用在本地端,1.1.1.1/31用在远程端。当然并不是所有的主机都支持这些新的规定,很多legacy的设备支持最长的掩码长度依然为30。所以配置之前需要做必要的测试工作。
获取更多资讯请加入交流群