数通 | IP编址分类和子网划分

IP地址

IP地址唯一标示一台网络设备

IP地址:192.168.1.11
-> 经二进制转化:1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0.0 0 0 0 0 0 0 1.0 0 0 0 1 0 1 1

IP地址组成

  • 网络部分(后来会从主机部分划出几位子网部分,也算网络部分)
    IP地址的网络部分称为网络地址,网络地址用于唯一地标识一个网段,或者若干网段的聚合,同一网段中的网络设备有同样的网络地址。

  • 主机部分
    IP地址的主机部分称为主机地址,主机地址用于唯一的标识同一网段内的网络设备。

IP地址分类

常见的IP地址分为IPv4与IPv6两大类,我们这里只讨论32位的IPv4地址。

为了和已存在的IP地址空间及IP数据报兼容,对IP地址的定义在1981年的RFC 791进行了修改。修改后的IP地址共有三种网络地址长度不同的单播地址(即A、B、C类地址)。如下所示:

把IP地址分为A、B、C、D、E五类

每个类别所用的地址范围

注意一点:我们这里计算可用的主机地址时,总是2^N - 2,其中,N是主机地址的位数,减2是因为第一个(即主机地址全0)和最后一个地址(即主机地址全1)都是无效的。因此,对于用8位来表示主机地址的C类地址来说,最多可用的主机数就是2^N - 2 = 254。(后面也有详讲)

其中,D类地址通常作为组播地址。E类地址保留用于科学研究。我们经常用到的是A、B、C三类地址。

私有IP地址

私有IP地址可以理解为本地局域网上的IP,私有IP地址范围:

  • A: 10.0.0.0~10.255.255.25510.0.0.0/8
  • B: 172.16.0.0~172.31.255.255172.16.0.0/12
  • C: 192.168.0.0~192.168.255.255192.168.0.0/16

这些地址是不会被Internet分配的,它们在Internet上也不会被路由,虽然它们不能直接和Internet网连接,但通过NAT(Network Address Translation,网络地址转换)技术手段把私有IP地址转换为Internet可识别的公有IP地址,仍旧可以和 Internet通讯。

注意:现在进行IP地址规划时,我们通常在公司内部网络使用私有IP地址。比如,有些不需要与 Internet通讯的设备,如打印机、可管理集线器等可以使用这些地址,以节省IP地址资源。

特殊IP地址

IP地址用于唯一的标识一台网络设备,但并不是每一个IP地址都是可用的,一些特殊的IP地址被用于各种各样的其他用途,不能用于标识网络设备。

特殊IP地址
  • 主机部分全为“0”
    对于主机部分全为“0”的IP地址,称为网络地址,网络地址用来标识一个网段。例如,A类地址1.0.0.0,私有地址10.0.0.0, 192.168.1.0等。

  • 主机部分全为“1”
    对于主机部分全为“1”的IP地址,称为网段广播地址,广播地址用于标识一个网络的所有主机。例如,10.255.255.255, 192.168.1.255等,路由器可以在10.0.0.0或者192.168.1.0等网段转发广播包。广播地址用于向本网段的所有节点发送数据包。

  • 网络部分为127
    对于网络部分为127的IP地址,例如127.0.0.1往往用于环回测试目的(环回测试是决定设备是否正常运行或是确定网络中失效节点的方式)。

  • 全“0”的IP地址
    全“0”的IP地址0.0.0.0代表所有的主机,华为Quidway系列路由器用0.0.0.0地址指定默认路由。

  • 全“1”的IP地址
    全“1”的IP地址255.255.255.255,也是广播地址(为受限广播地址"limited broadcast" destination address),但255.255.255.255代表所有主机,用来将一个分组以广播方式发送给本网络中的所有主机,路由器则阻挡该分组通过,将其广播功能限制在本网内部。

从上面可以看出,每一个网段都会有一些IP地址不能用作主机IP地址。

【例1】B类网段172.16.0.0, 有16个主机位,因此有2^16 个IP地址,去掉一个网络地址172.16.0.0,一个广播地址172.16.255.255不能用作标识主机,那么共有2^16 -2个可用地址。

【例2】C类网段192.168.1.0,有8个主机位,共有2^8=256个IP地址,去掉一个网络地址192.168.1.0,一个广播地址192.168.1.255,共有254个可用主机地址。

现在,我们可以这样计算每一个网段可用主机地址:假定这个网段的主机部分位数为n,那么可用的主机地址个数为2^n-2个。

子网掩码SM

使用目的

网络设备使用子网掩码(subnet masking)决定IP地址中哪部分为网络部分,哪部分为主机部分。

子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND)即得出网络地址来。这样在路由器处理到来的分组时就可以采用同样的方法。

子网掩码使用与IP地址一样的格式。子网掩码的网络部分和子网部分全都是1,主机部分全都是0。缺省状态下,如果没有进行子网划分:

  • A类网络的子网掩码为255.0.0.0
  • B类网络的子网掩码为255.255.0.0
  • C类网络子网掩码为255.255.255.0

变长子网掩码VLSM

引入子网划分的概念(子网的划分就是一个将主机部分的若干位分配到网络部分的过程)后,IPv4地址被分为三部分:网络部分(network)、子网部分(subnetwork,现在常被认为是网络部分的一部分——尽管它本来是“rest”部分的一部分)和主机(host)部分

注意:这里提到的“rest”部分就是指在没有引入子网划分时,自然状态下A、B、C、D、E类地址中的主机部分,这很好理解,毕竟子网划分来自于主机部分。

例如,对于一个给定的A类网络:10.0.0.0,子网掩码:255.255.0.0可以将其划分为256个子网(从10.0.0.010.255.0.0)——第一个八位位组表示网络地址,第二个表示子网号,而最后两个表示主机部分。

无类别域间路由CIDR

无类别域间路由是 基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的,CIDR包括:

  1. 指定任意长度的前缀的可变长子网掩码技术。遵从CIDR规则的地址有一个后缀说明前缀的位数,例如:192.168.0.0/16。这使得对日益缺乏的IPv4地址的使用更加有效。
  2. 将多个连续的前缀聚合成超网,以及在互联网中,只要有可能,就显示为一个聚合的网络,因此在总体上可以减少路由表的表项数目。聚合使得互联网的路由表不用分为多级,并通过VLSM逆转“划分子网”的过程。
  3. 根据机构的实际需要和短期预期需要而不是分类网络中所限定的过大或过小的地址块来管理IP地址的分配的过程。
无类别域间路由表示法

无类别域间路由(Classless Inter-Domain Routing)表示方法给出的是一个地址加上一个斜杠以及网络掩码的二进制表示法中“1”的位数(即网络号中和网络掩码相关的是哪些位)。

例如,192.168 .1 .7/28表示的是一个前28位被用作网络号的IP地址(和255.255.255.240所表示子网掩码的意思一样),具体来看:

  • IP地址:192.168 .1 .7(11000000 10101000 00000001 00000111)
  • 子网掩码:255.255.255 .240(11111111 11111111 11111111 11110000)

其中,子网掩码比特数:8 + 8 + 8+ 4 = 28,这个指的是子网掩码中连续1的个数。因此,便有子网掩码的一种表示方法:192.168.1.7/28

前缀路由聚合
无类别域间路由(CIDR)

CIDR的另一个好处就是可以进行前缀路由聚合。如上图所示,一个ISP被分配了一些C类网络,198.168.0.0~198.168.255.0。这个ISP准备把这些C类网络分配给各个用户群,目前已经分配了三个C类网段给用户。如果没有实施CIDR技术,ISP的路由器的路由表中会有三条下连网段的路由条目,并且会把它通告给Internet上的路由器。

通过实施CIDR技术,我们可以在ISP的路由器上把这三条网段198.168.1.0198.168.2.0198.168.3.0汇聚成一条路由198.168.0.0/16。这样ISP路由器只向Internet通告198.168.0.0/16这一条路由,大大减少了路由表的数目。这有效地减少了要对外显示的网络数,防止了路由表爆炸,也遏制了互联网进一步扩大。

注意,使用CIDR技术汇聚的网络地址的比特位必须是一致的,如上例所示。如果上图所示的ISP连接了一个172.178.1.0网段,这些网段路由将无法汇聚,无法实现CIDR技术。

了解IPv6

过去通常把A类地址保留给政府机构,B类地址分配给中等规模的公司,C类地址分配给小单位。然而,随着互联网络飞速发展,再加上IP地址的浪费,IP地址已经非常紧张。

因此,相应的科研组织已研究出128位的IPv6,其IP地址数量最高可达3.402823669 × 10^38个,届时每个人家居中的每件电器,每件对象,甚至地球上每一粒沙子都可以拥有自己的IP地址。

IPv6地址为128位长,但通常写作8组,每组四个十六进制数的形式。例如:2001:0db8:85a3:08d3:1319:8a2e:0370:7344是一个合法的IPv6地址。

如果四个数字都是0,可以被省略。例如:2001:0db8:85a3:0000:1319:8a2e:0370:7344等价于2001:0db8:85a3::1319:8a2e:0370:7344