一、你可能困惑过的问题
配置IP地址的时候,总能看到"子网掩码"这一项。
有时候写255.255.255.0,有时候写255.255.0.0,有时候直接写/24、/16。
它到底是做什么用的?/24又是什么意思?
二、先理解一个问题:光有IP地址是不够的
给你一个IP地址:192.168.1.101。
光看这个数字,你能回答下面两个问题吗?
-
这个IP属于哪个网络?
-
和另一个IP(比如192.168.2.101)在不在同一个网络里?
答案是不能。因为IP地址本身只包含"地址"信息,不包含"网络边界"信息。
子网掩码的作用就是告诉你:这个IP地址里,哪部分是网络号,哪部分是主机号。
简单说,它是一把"尺子",用来丈量IP地址的哪一段属于网络、哪一段属于设备。
三、子网掩码长什么样?
子网掩码和IP地址一样,也是用点分十进制表示。最常见的是:
255.255.255.0
把它换算成二进制:
text
255.255.255.0
↓
11111111 . 11111111 . 11111111 . 00000000
规律:
-
子网掩码的二进制里,1表示"网络位" ,0表示"主机位"
-
1必须是连续的,0也必须是连续的
所以下面这种掩码是无效的:
text
11111111.11111111.00000000.11111111
因为1和0不是连续的。
四、子网掩码是怎么划分的
用一个具体的例子来看:
IP地址:192.168.1.101
子网掩码:255.255.255.0
第一步:把两者都转成二进制,上下对齐
text
IP地址: 11000000.10101000.00000001.01100101
子网掩码: 11111111.11111111.11111111.00000000
第二步:子网掩码为1的部分是网络位,为0的部分是主机位
text
网络位:前24位 → 11000000.10101000.00000001 → 192.168.1
主机位:后8位 → 01100101 → 101
第三步:得出网络号
网络号 = IP地址的网络位部分,主机位全部填0
text
网络号:11000000.10101000.00000001.00000000 → 192.168.1.0
结论: 这个IP所在的网络是192.168.1.0/24,网络号是192.168.1.0,主机号是101。
五、CIDR表示法:/24是什么意思?
/24就是255.255.255.0的简写,意思是"前24位是网络位"。
这是一种更简洁的写法,叫做CIDR表示法(无类别域间路由)。
| 子网掩码 | CIDR写法 | 网络位 | 主机位 | 可用IP数 |
|---|---|---|---|---|
| 255.0.0.0 | /8 | 前8位 | 后24位 | 约1677万 |
| 255.255.0.0 | /16 | 前16位 | 后16位 | 约65534 |
| 255.255.255.0 | /24 | 前24位 | 后8位 | 254 |
| 255.255.255.128 | /25 | 前25位 | 后7位 | 126 |
| 255.255.255.192 | /26 | 前26位 | 后6位 | 62 |
| 255.255.255.224 | /27 | 前27位 | 后5位 | 30 |
| 255.255.255.240 | /28 | 前28位 | 后4位 | 14 |
| 255.255.255.248 | /29 | 前29位 | 后3位 | 6 |
| 255.255.255.252 | /30 | 前30位 | 后2位 | 2 |
数字越大,网络越小,能容纳的设备越少。
六、怎么判断两个IP是否在同一个网络?
把IP地址和子网掩码做"与运算"(AND),算出网络号。网络号相同,就在同一个网络。
与运算规则:
-
1 AND 1 = 1
-
1 AND 0 = 0
-
0 AND 0 = 0
例子1:同一个网络
| IP地址 | 二进制 | |
|---|---|---|
| 电脑A | 192.168.1.101 | 11000000.10101000.00000001.01100101 |
| 电脑B | 192.168.1.200 | 11000000.10101000.00000001.11001000 |
| 子网掩码 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
电脑A的网络号:
text
11000000.10101000.00000001.01100101
&
11111111.11111111.11111111.00000000
=
11000000.10101000.00000001.00000000
→ 192.168.1.0
电脑B的网络号:
text
11000000.10101000.00000001.11001000
&
11111111.11111111.11111111.00000000
=
11000000.10101000.00000001.00000000
→ 192.168.1.0
两个网络号相同,都是192.168.1.0 → 它们在同一个网络里,可以直接通信,不需要经过路由器。
例子2:不同网络
| IP地址 | 二进制 | |
|---|---|---|
| 电脑A | 192.168.1.101 | 11000000.10101000.00000001.01100101 |
| 电脑C | 192.168.2.101 | 11000000.10101000.00000010.01100101 |
| 子网掩码 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
电脑A的网络号:192.168.1.0
电脑C的网络号:192.168.2.0
网络号不同 → 不在同一个网络里,需要经过路由器才能通信。
七、为什么.0和.255不能分配给设备?
以192.168.1.0/24为例:
| 地址 | 用途 | 说明 |
|---|---|---|
| 192.168.1.0 | 网络号 | 代表整个网络本身,不能分配给任何设备 |
| 192.168.1.1 ~ 192.168.1.254 | 可用IP | 可以分配给设备(254个) |
| 192.168.1.255 | 广播地址 | 发送给这个网段内所有设备的地址,不能分配给设备 |
每个网段有2个IP地址是被"占用"的------第一个代表网络本身(网络号),最后一个代表广播地址。
所以一个/24网段有256个地址(2^8),但实际能用的只有254个。一个/16网段有65536个地址,实际能用65534个。
广播地址的作用: 当一台设备需要向同一网段内的所有设备发送数据时,目标地址填写广播地址。例如DHCP发现阶段,新设备不知道DHCP服务器的IP,就向255.255.255.255(本地广播)发送请求。
八、为什么要划分子网?
不划分可不可以?可以,但会带来问题。
问题一:广播域太大
假设一个公司有500台设备,全部放在同一个/24网段里(254个地址)不够用,所以用了/16网段(6.5万个地址)。
如果一台设备发送广播包(如ARP请求),会发给同一个网段内的所有设备。6.5万台设备都收到这个广播包,网络瞬间拥堵。
子网划分可以限制广播的范围。
问题二:安全隔离
财务部、人事部、研发部的设备混在同一个网络里,理论上可以互相访问。如果想要隔离访问权限,需要在路由器上配置访问控制列表(ACL)。
子网划分可以从物理层面隔离不同部门的网络。
问题三:地址浪费
一个/24网段有254个可用地址,如果只用了20个,剩下的234个就浪费了。如果随意选择更大的网段,地址浪费会更严重。
子网划分可以按需分配地址,减少浪费。
九、子网划分的实际例子
假设一家公司有3个部门,每个部门的设备数量如下:
| 部门 | 设备数 | 需要的IP数(含预留) | 推荐子网 |
|---|---|---|---|
| 研发部 | 80台 | ~100 | /25(126个可用IP) |
| 销售部 | 30台 | ~40 | /26(62个可用IP) |
| 行政部 | 10台 | ~15 | /27(30个可用IP) |
分配的网段:
-
研发部:192.168.10.0/25(可用范围:192.168.10.1 ~ 192.168.10.126)
-
销售部:192.168.10.128/26(可用范围:192.168.10.129 ~ 192.168.10.190)
-
行政部:192.168.10.192/27(可用范围:192.168.10.193 ~ 192.168.10.222)
每个部门在独立的子网里,广播互不干扰,部门之间通过路由器通信。
写在最后
子网掩码的作用是划分IP地址的"网络位"和"主机位",告诉设备"你在哪个网络里、和你通信的设备在不在同一个网络里"。
它的核心价值在三个方面:控制广播范围、隔离不同业务、合理分配地址资源。
生活中常见的是/24(255.255.255.0),适合小型网络;/16(255.255.0.0)适合中大型网络;/8(255.0.0.0)适合超大型网络。数字越大,网络越小,能容纳的设备越少------理解了这个规律,再看IP配置就不会困惑了。