聊聊子网掩码那些事-为什么都是255之类的?
这里不再给出文绉绉的定义,网上一搜到处都是,我就不copy了,只写点个人理解,
简要的说,就是用于区别一个IP地址哪些BIT是网络位,哪些BIT是主机位,用于确定本机和其他IP是否在一个网段内。
最早对IPv4地址进行A,B,C类划分, 确实是按255.0.0.0, 255.255.0.0, 255.255.255.0分配的,
但这种划分方式是个错误,导致IP地址分配的极大浪费,实际使用也不方便。
好在后来有了VLSM(Variable Length Subnet Mask)技术,即子网掩码可自由选择长度,不再只有8,16,24位三种,
也就不再全是由几个255组成了, 还可以用128,192,248等等。
子网掩码二进制模式必须是连续的1, 即不能用类似11100111这样的子网掩码(RFC对此并没强制要求, 但已成为事实标准)。
既然1的个数是连续的,那子网掩码还有一种更简便表示方式,可以用'/n'跟在IP地址后面,表示子网掩码1的位数,
例如:
192.168.1.100/24, 即子网掩码二进制模式有24个1,为255.255.255.0
192.168.1.100/28, 即子网掩码二进制模式有28个1,为255.255.255.240
这是一个基本常识,在调试网络环境、设置参数、跟运维同事、其他厂商的工程师沟通时,要知道'/xx'是什么意思,
不需要口算立即把/28转换成255.255.255.240, 但要知道怎么算。
子网掩码和IP地址做与运算就得到网络号,
例:
主机A: 192.168.1.100/28, 网络号=192.168.1.100 & 255.255.255.240 = 192.168.1.96
主机B: 192.168.1.200/28, 网络号=192.168.1.200 & 255.255.255.240 = 192.168.1.192
说明主机A和主机B不在同一个网段,需要借助网关才能通信,
然后再聊聊关于网关那些事。
不是很熟的童鞋,做个小练习,实际感觉一下子网掩码的作用:
把内网PC机子网掩码分别设为:
255.0.0.0
255.255.0.0
尝试ping一下10.10.6.240看看有什么区别?
如果不理解这两个子网掩码带来的不同结果,用wireshark抓包看看?