IPV4 网域的划分

网域的划分

怎样划分网域呢?参考一下IP等级划分中的 Class C,它是通过定义网络位(Net_ID)为24位来实现缩小网域的大小。那么根据这个理念来练习一下, 怎样将 220.11.1.xxx 切分为更小的网域。

220.11.1.xxx这个网域中,网络位有24位, 为什么说是24位呢? IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。其中已经确定了 220.11.1 所以网络位为 3*8=24位。那么剩下的就是主机位,有8位。 为了把网域切分为两个子域,从8个主机位中抽取第1位也去作为网络位。那么整个网络位就有25位,主机位7位。那么每个子域就有 2^7-2 = 126个可用的IP了。

以上通过抽取1个主机位来实现了网域的划分,那么通过什么可以让其他人知道,我们抽取了1个主机位来对网域进行了划分呢? 这个重要的参数就是 Netmask 也就是经常听到的子网掩码。通过 netmask 来定义网域。下面进行具体的讲解,以 192.168.0.0 - 192.168.0.255 这个网域为范例:

这个例子中192.168.0说明网络位已定,是24位不会改变。我们假设这24位全部被占用全部设为1,而主机位是可变的,假设他全部被保留均设为0,这个就是子网掩码啦。主机位全部为0或全部为1时这个IP是不可用的。主机位全部为0时,表示这个IP是这个网域的第一个IP,称为 Network 。 主机位全部为1时,表示这个IP是网段里的最后一个IP,称为Broadcast。 下面正式开始子网的切分,从主机位中抽取第1位作为网络位,则可以划分出两个子网,第25位为0时为第一个子网,为1时为第二个子网。 具体查看下图:

第一个IP: 11000000.10101000.00000000.00000000 <== Network
最后的IP: 11000000.10101000.00000000.11111111 <== Broadcast
          |----------Net_ID---------|-host--|
Netmask:  11111111.11111111.11111111.00000000 <== Netmask 二进制
       :    255   .   255  .   255  .   0     <== Netmask 十进制

第一个子网:
第一个IP: 11000000.10101000.00000000.0  0000000 <== Network   192.168.0.0
最后的IP: 11000000.10101000.00000000.0  1111111 <== Broadcast 192.168.0.127
         |----------Net_ID------------ |-host--|
Netmask:  1111111. 11111111.11111111.1  0000000 <== Netmask   255.255.255.128

第二个子网:
第一个IP: 11000000.10101000.00000000.1  0000000 <== Network   192.168.0.128
最后的IP: 11000000.10101000.00000000.1  1111111 <== Broadcast 192.168.0.255
         |----------Net_ID------------ |-host--|
Netmask:  1111111. 11111111.11111111.1  0000000 <== Netmask   255.255.255.128

例题:试着计算出 172.16.0.0,但 Net_ID 占用 23 个位时,这个网域的 Netmask, Network, Broadcast 等参数。

预设:       10101100 . 00010000 . 0000000 0 . 00000000
           |----------Net_ID------------|-------host--|
Netmask:   11111111 . 11111111 . 1111111 0 . 00000000  
            255      .  255     .  254      .    0
           (网络位均为1,主机位均为0) 
Broadcast:  10101100 . 00010000 . 0000000 1 . 11111111  
            172      .   16     .  1        .  255
            (主机位均为1)
Network:    10101100 . 00010000 . 0000000 0 . 00000000  
            172      .   16     .  0        .  0
            (主机位均为0)

总结一下:

  • Netmask 网络位均为1,主机位均为0
  • Network 主机位均为0
  • Broadcast 主机位均为1
  • 主机数量 = 2^主机位 - 2

一般来说,如果我们知道了Network和Netmask之后,可以用另一个方式来表示一个网域 Network/Netmask 这个就是CIDR (Classless Interdomain Routing) 的写法。

Network/Netmask

192.168.0.0/255.255.255.0

192.168.0.0/24

因为 Net_ID 共有 24 个 bits (Net_ID 就是网络位)