IP 地址后面的 /16 是什么意思

lsn*_*00b 0 linux networking subnets ip-address

前几天我遇到了这样的ip 255.255.255.1/16

我认为/16指的是 IP 可以生成的子网划分地址的数量。但是,我怀疑我可能大错特错,觉得这个论坛上的 Linux/Unix 专家可以提供帮助。

roa*_*ima 7

斜杠后面的值,即24您的示例中的192.168.1.0/24,使用CIDR 表示法来指示可用于网络寻址的位数,以区别于主机寻址。对于 IPv4,每个 IP 地址都是 32 位,因此/24网络的主机寻址将是 32 - 24 = 8 位。

让我们更仔细地看一下。

举个例子地址192.168.1.0/24。这表示 32 位中有 24 位用于网络地址。每个八位字节是 8 位,因此很容易看出这意味着这192.168.1是网络地址,其余部分用于主机。八位给出了 2 8 个地址,即 256 个。最低的不可用,最高的保留给本地网络广播,这样就为 254 个主机地址留出了空间,所有地址都以192.168.1.开头。

现在举个例子地址192.168.0.0/16。这里我们有 32 位中的 16 位用于网络寻址,剩下 16 位用于网络上的主机。我们有 2 16 = 65536 个主机地址,但和以前一样,两个是预先分配的,因此您在该网络上有 65534 个可用的主机地址,全部从192.168.

这一切都很容易;令人兴奋的是子网字段不是八的倍数。例如,您可以有一个网络192.168.1.128/26。同样的规则也适用;网络地址有 26 位,该网络上的主机有 6 位。2 6是 64 并且两个是保留的,因此您可以在这样的网络上拥有 62 台主机。使用该ipcalc工具,您可以看到此网络上的有效 IP 地址192.168.1.129192.168.1.190

ipcalc 192.168.1.128/26
Address:   192.168.1.128        11000000.10101000.00000001.10 000000
Netmask:   255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard:  0.0.0.63             00000000.00000000.00000000.00 111111
=>
Network:   192.168.1.128/26     11000000.10101000.00000001.10 000000
HostMin:   192.168.1.129        11000000.10101000.00000001.10 000001
HostMax:   192.168.1.190        11000000.10101000.00000001.10 111110
Broadcast: 192.168.1.191        11000000.10101000.00000001.10 111111
Hosts/Net: 62                    Class C, Private Internet
Run Code Online (Sandbox Code Playgroud)