今天遇到了一些有趣的事情,为什么这件事发生,我还在挠头。 我试图通过将networking掩码从/ 24更改为/ 20来增加从我的DHCP服务器可用的IP地址的数量。
这是第一种情况 ,我改变了路由器的子网掩码为/ 20,以匹配我的DHCP服务器。 但是,我没有改变任何工作站的子网掩码与静态IPS,他们留在/ 24。 我将几个工作站和无线设备连接到了networking上,并且所有这些服务器都得到了正确的范围,使用/ 20并能够访问networking。
我对这第一种情况的问题是:是不是所有的设备应该有相同的子网掩码才能工作? 为什么工作站的静态IP地址和/ 24的networking掩码仍然在工作?
然后我尝试了第二种情况 。 这次路由器的子网掩码保持在/ 24,我只修改DHCP服务器的子网掩码为/ 20。 结果? 带有子网掩码/ 24工作的静态IP的设备。 使用子网掩码为/ 20的dynamicIP的设备无法访问networking。 我的问题是:如果前面的情况适用于两个子网。 为什么在这种情况下它没有?
我不确定这是否值得一提,但DHCP服务器运行的是Ubuntu的dhcp服务器。
这个答案假设你的路由器的IP地址是192.169.1.100(或者192.168.1.0-255之间的任何IP地址)。
使用/ 24子网掩码您的IP地址范围是192.168.1.0-192.168.1.255(包括networking和广播地址)。
使用/ 20子网掩码您的IP地址范围是192.168.0.0-192.168.15.255(包括networking和广播地址)。
从具有任一子网掩码的主机angular度来看,192.168.1.100是一个有效的本地地址。 它存在于/ 20和/ 24子网中。 主机不知道其他主机正在使用的是什么子网掩码,只知道自己的子网掩码,并用它来确定哪些IP地址是本地的,哪些不是。 / 24范围内的任何IP地址的主机似乎都belong任何主机的本地子网,在这种情况下更重要的是属于路由器, 但是 / 24子网中的主机将只能够通信与其他主机的IP地址也在192.168.1.0-192.168.1.255范围内。 这就是为什么第一种情况有效,而第二种情况则没有。 在第一种情况下,所有主机都可以与路由器进行通信,因为路由器使用的是/ 20子网掩码, 但是从具有任一子网掩码的主机的angular度来看,它的IP地址属于两个子网。 在第二种情况下,路由器只能与位于/ 24子网内的那些IP地址进行通信,它不能与IP地址高于192.168.1.255的任何主机进行通信,因为这些IP地址不属于192.168.1.0/24,是第二种情况下的路由器子网。
子网掩码主要用于判断在本地networking上是否可以访问另一个IP地址,或者是否需要通过路由器。 具有旧/ 24子网掩码的工作站将能够访问旧/ 24networking内的所有其他内容,因为错误的掩码仍然会为这些地址提供正确的答案。 他们将无法与新/ 20networking中不在旧/ 24networking中的IP地址进行通信,这就是为什么我们说旧掩码在新networking中不起作用。
在第二种情况下,由于路由器的掩码保持在/ 24,因此无法访问具有旧networking之外的IP地址的设备,因此这些设备将无法访问路由器。