1.网络掩码的定义
在百度百科中,网络掩码(subnet mask)被定义为:一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
简单来说,网络掩码就是一个32位地址,以连续的1开头,并以连续的0补全的位掩码。通过和IP地址进行按位与,以区别ip的网段号和主机号。
2.网络掩码的作用
怎么用网络掩码来计算网段号和主机号呢?举个例子,IP地址:192.168.100.2/24。这其中,24标记的就是网络掩码,掩码的前24位均为1,其余8位为0。通过掩码与IP地址的按位与,我们可以得出,网段号是:192.168.100.0,主机号是2。
因此,很容易算出192.168.100.2/24和192.168.100.254/24的网络号都是192.168.100.0,它们是同一个网段。
3.掩码与设备通连
互联网就是由一个一个这样的网段组合起来的。其中,相同网段的主机通过arp广播获取对方MAC地址就可以通信了。而不在一个网段就必须通过网关,否则就算直连也无法通讯。
我们已经介绍过,网段号正是通过网络掩码来计算的,那么有两个问题:
- 问题一:主机192.168.1.129/24可以ping通直连的192.168.1.130/25的主机吗?
- 问题二:主机192.168.1.1/24可以ping通直连的192.168.1.130/25的主机吗?
要解答这两个问题,需要记住下面这个重要原则 :
网络掩码是本地有效,也就是说网络掩码只能由设备自己使用。如果对方告诉网络掩码,一般直接忽略就可以了。
例如,两台主机直连,任一主机上ping,只能以本机的掩码按位与对方的IP地址,得到对方的网络号。
那么,问题一的解题思路是:
- ping包去的过程中,主机192.168.1.129/24计算自己的网络号是192.168.1.0,该主机用自己的掩码计算192.168.1.130的网络号是192.168.1.0,双方同一网段,可以直接通讯。
- ping包回复时,192.168.1.130/25计算自己的网络号是192.168.1.128,从该主机角度计算192.168.1.129的网络号也是192.168.1.128,很巧,也是同一网段,也可以直接通讯。
- 虽然双方计算得出的网关地址不一致,但恰好都得出对方与自己在同一网段的结论,所以直连就能通讯,答案就是能ping通。
那么,问题二的解题思路是:
- ping包去的过程中,主机192.168.1.1/24计算自己的网络号是192.168.1.0,用自己的掩码计算192.168.1.130的网段号是192.168.1.0,同一网段,可以直接通讯。
- ping包回复的过程中,192.168.1.130/25计算自己的网络号是192.168.1.128/25,从该主机角度计算192.168.1.1的网关是192.168.1.0,双方不是同一网段,不能直接通讯。
- 所以数据包只能发,不能接收到,答案就是无法ping通。
4.结论
网络掩码在网络配置的过程中值得注意,特别是在配置直连设备时,如果遇到不能通连的情况,请务必记得检查一下掩码。
网友评论