8.2、网络层—有类IP地址的子网划分和无类地址间路由(CIDR)
一、有类IP地址的子网划分
1.1、有类IP地址
1.1.1、有类IP地址划分规则
通过固定IP编址的高比特位的取值(二分法的思路),可以将IPV4的所有地址类型划分为A类~E类,A类、B类、C类地址总共占总地址数量的87.5%,D类地址和E类地址不再区分网络号(NetID)和主机号(HostID),D类地址用来标识Internet网络中的多播地址的主机,多播地址的主机有以下3个特性:
①、多播地址的主机可以分布于Internet网络中的任何地方;
②、多播地址的主机只能作为接收方接收IP分组;
③、向多播地址的主机发送一个IP分组后,属于同一个组多播地址的主机都会收到一份相同的IP分组副本;
E类地址目前仍然保留,作为研究使用。如下图所示:

上图中的A类、B类、C类、D类、E类网络地址有以下特点:
①、A类网络的网络号(NetID)第1位固定为0,A类网络的网络号占用8bit,主机号占用24bit;
②、B类网络的网络号(NetID)前2位固定为10,B类网络的网络号占用16bit,主机号占用16bit;
③、C类网络的网络号(NetID)前3位固定为110,C类网络的网络号占用24bit,主机号占用8bit;
④、D类、E类网络不再区分网络号和主机号,D类网络前4位固定为1110,E类网络前4位固定为1111。
1.1.2、特殊的IP地址和私有的IP地址
通过有类IP地址划分后,A类IP地址、B类IP地址、C类IP地址都有了各自的地址范围,但是A类IP地址、B类IP地址、C类IP地址中都存在一部分特殊IP地址不能分配给主机或者IP接口来使用,如下图所示:

同时,A类IP地址、B类IP地址、C类IP地址中还保留了一部分地址空间作为私有地址,私有地址有以下2个特点:
①、私有地址只能用于内部网络,公共互联网中的核心路由器不能识别私有地址;
②、私有地址的主机需要与公网上的主机进行通讯时,必须要经过地址转换,将其私有地址转换为合法公网地址才能对外访问。

1.1.3、A类IP地址、B类IP地址、C类IP地址
通过有类IP地址的划分,整个Internet网络可以划分为128个A类网络,16384个B类网络,2097152个C类网络,由于A类IP地址、B类IP地址、C类IP地址中都存在一部分特殊的IP地址和私有IP地址不能用来分配给主机或者网络接口,因此,A类IP地址、B类IP地址、C类IP地址在实际场景下的详细信息,如下图所示:
| 类别 | 最大网络数 | IP地址范围 | 最大主机数 | 私有IP地址范围 |
|---|---|---|---|---|
| A类IP地址 | 126(27-2),NetID=0属于特殊IP地址(本网内某个特定主机)、NetID=127属于特殊IP地址(环回地址) | 1.0.0.0~126.255.255.255 | 16777214(224-2),HostID=0属于特殊IP地址(网络地址),HostID全部为1属于特殊IP地址(直接广播地址) | 10.0.0.0~10.255.255.255 |
| B类IP地址 | 16384(214) | 128.0.0.0~191.255.255.255 | 65534(216-2),HostID=0属于特殊IP地址(网络地址),HostID全部为1属于特殊IP地址(直接广播地址) | 172.16.0.0~172.31.255.255 |
| C类IP地址 | 2097152(221) | 192.0.0.0~223.255.255.255 | 254(28-2),HostID=0属于特殊IP地址(网络地址),HostID全部为1属于特殊IP地址(直接广播地址) | 192.168.0.0~192.168.255.255 |
1.2、有类IP地址的子网划分
通过有类IP地址划分可以将整个Internet网络划分为A类IP地址、B类IP地址、C类IP地址,其中具有相同网络号(NetID)的网络接口/主机在不跨越路由器的前提下,属于同一个IP子网(subnet)。因此从IP子网的角度来看A类IP地址、B类IP地址、C类IP地址的话,A类IP地址的子网有128个,一个A类IP子网包含16777216个网络接口/主机,B类IP地址的子网有16384个,一个B类IP子网包含65536个网络接口/主机,C类IP地址的子网有2097152个,一个C类IP子网包含256个网络接口/主机,这种死板的IP子网的划分是不灵活的,会导致IP地址在分配的过程中出现浪费的现象,比如:一个企业有2000个网络接口/主机,如果分配一个C类IP地址无法满足使用需求(C类IP地址最大支持254个主机),如果分配一个B类IP地址又会出现浪费(B类IP地址最大支持65534个主机)。因此需要将一个IP地址范围比较大 的IP子网划分为一个IP地址范围比较小的IP子网。
1.2.1、子网划分规则
将原有的网络号(NetID)+主机号(HostID)的IP编址方式更改为网络号(NetID)+子网号(SubID)+主机号(HostID)的IP编址方式。
1.2.2、子网掩码
子网掩码是将IP编址(同下文的IP地址)中的网络号(NetID)、子网号(SubID)全部取1,主机号(HostID)全部取0得到的,因此,A类IP子网的默认子网掩码为255.0.0.0,B类IP子网的默认子网掩码为255.255.0.0,C类IP子网的默认子网掩码为255.255.255.0。
利用子网掩码可以区分以下2点:
①、一个有类的 IP地址范围是否经过了子网划分;
②、一个有类的 IP地址范围被划分为多少个 IP子网;
1.2.3、子网掩码的应用
-
应用一,子网中IP地址的范围划分:有一个C类子网,该子网的IP地址范围为201.2.3.0~201.2.3.255,子网掩码为默认值255.255.255.0,如果将这个C类子网划分为4个等长的子网,划分后的子网掩码和每个子网的IP地址范围如下图所示:
![image]()
-
应用二,子网中IP地址的范围的计算:有一个B类IP地址为172.32.1.112,该B类IP地址所在子网中的子网掩码为255.255.254.0,可以计算出该B类IP地址所在子网的3个关键信息:
①、该B类IP地址所在B类网络的步长(增量),65536/27=512;
②、该B类IP地址所在子网的起始地址和地址范围,起始地址的计算,如下图所示:
![image]()
该地址所在子网的地址范围为172.32.0.0~172.32.1.255;
③、该地址所在子网的可分配地址范围:去掉HostID=0时的网络地址(特殊IP地址)和HostID全部为1时的直接广播地址(特殊IP地址),该IP地址所在子网的可分配地址范围为172.32.0.1~172.32.1.254;
1.3、子网划分的实际案例
1.3.1、已知某类型的网络地址和子网掩码,求该类型网络的子网划分(C类网络)
- 案例1,有一个C类网络为192.168.10.xxx,该C类型的网络所使用的子网掩码为255.255.255.128,求下面5个问题:
①、该网络可以创建多少个子网?
已知C类网络的默认子网掩码为255.255.255.0,当前C类型的网络所使用的子网掩码为255.255.255.128,因此,在子网掩码255.255.255.128中,SubID所占的HostID为1位,该C类型的网络可创建的子网数量为21=2个;
②、该网络中的每一个子网有多少台主机?
通过①,可知子网掩码255.255.255.128中,SubID所占的HostID为1位,因此还剩7位主机位可使用,因此,该C类型的网络中的每一个子网可用的主机数量为27-2=126台(去掉两个特殊IP地址,HostID=0时的网络地址和HostID全部为1时的直接广播地址);
③、该网络可以创建哪些合法子网?每个子网的步长是多少?(同下文的合法子网地址,用特殊IP地址中的网络地址来表示)?
通过①,可知子网掩码255.255.255.192的SubID所占的HostID为1位,默认情况下C类网络可用的HOSTID数量为28,因此该C类网络的步长为28/21=128,该C类网络可以创建的2个合法子网为192.168.10.0(HostID全为0)、192.168.10.128(HostID全为0);
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
通过③,可以得到该C类网络可以创建的2个合法子网为192.168.10.0和192.168.10.128;步长为128,因此192.168.10.0(HostID全为0)子网的广播地址为192.168.10.127(HostID全为1),192.168.10.128(HostID全为0)子网的广播地址为192.168.10.255(HostID全为1);
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
子网中的合法的主机地址为每个子网的合法子网地址(③)和每个子网的广播地址之间的数字,如下图所示:


- 案例2,有一个C类网络为192.168.10.xxx,该C类型的网络所使用的子网掩码为255.255.255.192,求下面5个问题:
①、该网络可以创建多少个子网?
已知C类网络的默认子网掩码为255.255.255.0,当前C类型的网络所使用的子网掩码为255.255.255.192,因此,在子网掩码255.255.255.128中,SubID所占的HostID为2位,该C类型的网络可创建的子网数量为22=4个;
②、该网络中的每一个子网有多少台主机?
通过①,可知子网掩码255.255.255.128中,SubID所占的HostID为2位,因此还剩6位HostID可使用,因此,该C类型的网络中的每一个子网可用的主机数量为26-2=62台(去掉两个特殊IP地址,HostID=0时的网络地址和HostID全部为1时的直接广播地址);
③、该网络可以创建哪些合法子网?每个子网的步长是多少?(同下文的合法子网地址,用特殊IP地址中的网络地址来表示)?
通过①,可知子网掩码255.255.255.192的SubID所占的HostID为2位,默认情况下C类网络可用的HOSTID数量为28,因此该C类网络的步长为28/22=64,该C类网络可以创建的4个合法子网为192.168.10.0(HostID全为0)、192.168.10.64(HostID全为0)、192.168.10.128(HostID全为0)、192.168.10.192(HostID全为0);
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
通过③,可以得到该C类网络可以创建的4个合法子网为192.168.10.0、192.168.10.64、192.168.10.128、192.168.10.192;步长为64,因此192.168.10.0(HostID全为0)子网的广播地址为192.168.10.63(HostID全为1),192.168.10.64(HostID全为0)子网的广播地址为192.168.10.127(HostID全为1),192.168.10.128(HostID全为0)子网的广播地址为192.168.10.191(HostID全为1),192.168.10.192(HostID全为0)子网的广播地址为192.168.10.255(HostID全为1);
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
每个子网中的合法的主机地址为每个子网的合法子网地址(③)和每个子网的广播地址(④)之间的数字,如下图所示:


- 案例3,有一个C类网络为192.168.10.xxx,该C类型的网络所使用的子网掩码为255.255.255.224,求下面5个问题:
①、该网络可以创建多少个子网?
参考案例一、案例二;
②、该网络中的每一个子网有多少台主机?
参考案例一、案例二;
③、该网络可以创建哪些合法子网?每个子网的步长是多少?
参考案例一、案例二;
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
参考案例一、案例二;
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
参考下图

- 案例4,有一个C类网络为192.168.10.xxx,该C类型的网络所使用的子网掩码为255.255.255.240,求下面5个问题:
①、该网络可以创建多少个子网?
参考案例一、案例二;
②、该网络中的每一个子网有多少台主机?
参考案例一、案例二;
③、该网络可以创建哪些合法子网?每个子网的步长是多少?
参考案例一、案例二;
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
参考案例一、案例二;
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
参考下图

1.3.2、已知某类型的网络地址和子网掩码,求该类型网络的子网划分(B类网络)
- 案例1,有一个B类网络为172.16.xxx.xxx,该B类型的网络所使用的子网掩码为255.255.128.0,求下面5个问题:
①、该网络可以创建多少个子网?
已知B类网络的默认子网掩码为255.255.0.0,当前B类型的网络所使用的子网掩码为255.255.128.0,因此,在子网掩码255.255.128.0中,SubID所占的HostID为1位,该B类型的网络可创建的子网数量为21=2个;
②、该网络中的每一个子网有多少台主机?
通过①,可知在子网掩码255.255.128.0中,SubID所占的HostID为1位,因此还剩15位HostID可使用,因此,该C类型的网络中的每一个子网可用的主机数量为215-2=32766台(去掉两个特殊IP地址,HostID=0时的网络地址和HostID全部为1时的直接广播地址);
③、该网络可以创建哪些合法子网?每个子网的步长是多少?(同下文的合法子网地址,用特殊IP地址中的网络地址来表示)?
通过①,可知子网掩码255.255.128.0的SubID所占的HostID为1位,默认情况下B类网络可用的HOSTID数量为216,因此该B类网络的步长为216/21=32768,该B类网络可以创建的2个合法子网为172.16.0.0(HostID全为0)、172.16.128.0(HostID全为0)(计算公式推导如下:20+21+22+...214=215-1);
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
通过③,可以得到该B类网络可以创建的2个合法子网为172.16.0.0和172.16.128.0;步长为32768,因此172.16.0.0(HostID全为0)子网的广播地址为192.168.127.255(HostID全为1),172.16.128.0(HostID全为0)子网的广播地址为172.16.255.255(HostID全为1);
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
子网中的合法的主机地址为每个子网的合法子网地址(③)和每个子网的广播地址之间的数字,如下图所示:

- 案例2,有一个B类网络为172.16.xxx.xxx,该B类型的网络所使用的子网掩码为255.255.255.128,求下面5个问题:
①、该网络可以创建多少个子网?
已知B类网络的默认子网掩码为255.255.0.0,当前B类型的网络所使用的子网掩码为255.255.255.128,因此,在子网掩码255.255.255.128中,SubID所占的HostID为9位,该B类型的网络可创建的子网数量为29=512个;
②、该网络中的每一个子网有多少台主机?
通过①,可知在子网掩码255.255.255.128中,SubID所占的HostID为9位,因此还剩7位HostID可使用,因此,该C类型的网络中的每一个子网可用的主机数量为27-2=126台(去掉两个特殊IP地址,HostID=0时的网络地址和HostID全部为1时的直接广播地址);
③、该网络可以创建哪些合法子网?每个子网的步长是多少?(同下文的合法子网地址,用特殊IP地址中的网络地址来表示)?
通过①,可知子网掩码255.255.255.128的SubID所占的HostID为9位,默认情况下B类网络可用的HOSTID数量为216,因此该B类网络的步长为216/29=128,该B类网络可以创建的512个合法子网为172.16.0.0(HostID全为0)、172.16.0.128(HostID全为0)、172.16.1.0(HostID全为0)、172.16.1.128(HostID全为0)、......、172.16.254.0(HostID全为0)、172.16.254.128(HostID全为0)、172.16.255.0(HostID全为0)、172.16.255.128(HostID全为0);
④、该网络可以创建所有子网中,每个子网的广播地址是多少?
此处用另外一种方法,前一个子网的广播地址是后一个子网的合法子网地址-1;
⑤、该网络可以创建的所有子网中,每个子网包含哪些合法注册地址?
子网中的合法的主机地址为每个子网的合法子网地址(③)和每个子网的广播地址之间的数字,如下图所示:

1.3.3、已知某类型的网络地址和子网掩码,求该类型网络的子网划分(A类网络)
原理同1.3.1、已知某类型的网络地址和子网掩码,求该类型网络的子网划分(C类网络),1.3.2、已知某类型的网络地址和子网掩码,求该类型网络的子网划分(B类网络),此处不再展开讨论。
1.3.4、已知IP地址和子网掩码,求子网划分
- 案例1,已知IP地址=192.168.10.33,所使用的子网掩码为255.255.255.224,求下面5个问题:
①、该IP地址所在的子网,步长为多少?
通过子网掩码255.255.255.224,subID所占的HOSTID可能为19位/11位/3位,因此,可以算出该子网的步长为:224/219 = 216/211 = 28/23 = 32;
②、该IP地址所在的整个网络中,有哪些合法子网?
通过①,可以得到子网的步长为32,因此,整个网络可以规划的合法子网为如下图所示:

③、该IP地址所在的子网号?
因为主机地址192.168.10.33位于子网192.168.10.32和192.168.10.64之间,因此属于子网192.168.10.32;
④、该IP地址所在子网的广播地址?
通过③,可知该IP地址属于子网192.168.10.32,通过②,可知子网的步长为32,因此广播地址为192.168.10.63;
⑤、该IP地址所在子网的合法主机地址范围:
通过③,可知该IP地址所处的子网为192.168.10.32,通过④,可知该子网的广播地址为192.168.10.63,因此,该子网中的30个合法主机的地址范围为192.168.10.33~192.168.10.62;
- 案例2,已知IP地址=172.16.10.33,所使用的子网掩码为255.255.255.224,求下面5个问题:
①、该IP地址所在的子网,步长为多少?
通过子网掩码255.255.255.224,subID所占的HOSTID可能为19位/11位/3位,因此,可以算出该子网的步长为:224/219 = 216/211 = 28/23 = 32;
②、该IP地址所在的整个网络中,有哪些合法子网?
通过①,可以得到子网的步长为32,因此,整个网络可以规划的合法子网为如下图所示:

③、该IP地址所在的子网号?
因为主机地址172.16.10.33位于子网172.16.10.32和172.16.10.64之间,因此属于子网172.16.10.32;
④、该IP地址所在子网的广播地址?
通过③,可知该IP地址属于子网172.16.10.32,通过②,可知子网的步长为32,因此广播地址为172.16.10.63;
⑤、该IP地址所在子网的合法主机地址范围:
通过③,可知该IP地址所处的子网为172.16.10.32,通过④,可知该子网的广播地址为172.16.10.63,因此,该子网中的30个合法主机的地址范围为172.16.10.33~172.16.10.62;
- 案例3,已知IP地址=172.16.66.10,所使用的子网掩码为255.255.192.0,求下面5个问题:
①、该IP地址所在的子网,步长为多少?
通过子网掩码255.255.255.224,subID所占的HOSTID可能为10位/2位,因此,可以算出该子网的步长为:224/210 = 216/22 = 214。这里也可以只考虑第三个字节,而不是考虑第三个字节+第四个字节,单独看第三个字节的步长为28/22 = 26 = 64;
②、该IP地址所在的整个网络中,有哪些合法子网?
通过①,可以得到子网的步长为214,单独看第三个字节的步长为26,因此,整个网络可以规划的合法子网为如下图所示:

③、该IP地址所在的子网号?
因为主机地址172.16.66.10位于子网172.16.64.0和172.16.128.0之间,因此属于子网172.16.64.0;
④、该IP地址所在子网的广播地址?
此处用另外一种方法,前一个子网的广播地址是后一个子网的合法子网地址-1,广播地址为172.16.127.255
⑤、该IP地址所在子网的合法主机地址范围:
通过③,可知该IP地址所处的子网为172.16.64.0,通过④,可知该子网的广播地址为172.16.127.255,因此,该子网中的214-2个合法主机的地址范围为172.16.64.1~172.16.127.254;
二、无类地址间路由(CIDR,Classless InterDomain Routing))
通过有类IP地址的划分规则,可以将IPV4的所有地址类型划分为A类~E类,但是这种划分规则有2个问题:①、IPV4地址空间的分配效率不高;②、网络设备对于有类IP地址的路由效率比较低;为了解决这2个问题,网络层设计了一种CIDR路由聚合的技术,CIDR路由聚合技术的主要内容有以下3点:
①、消除的 A 类、B 类、C 类地址中NetID和SubID之间的划分界限,将NetID和SubID统一划分为Network Prefix,即NetID+SubID = Network Prefix,打破了有类地址划分中NetID+HostID的分布规则,导致在非公有网络域中,原本有类地址中的一个C类地址,可以使用任意长度的子网掩码,比如②中的200.23.16.0属于C类地址,但是可以使用的子网掩码为255.255.254.0;
②、融合了子网地址与子网掩码,格式为a.b.c.d/x,其中x为前缀长度,如下图所示:

反过来,如果IP地址为201.2.3.64,子网掩码为255.255.255.192,那么用CIDR表示为201.2.3.64/26。CIDR值与子网掩码的具体关系,如下图所示:


其中/8-/15只能用于A类网络(注意,此处网络表示的是公有域,公有域仍然要对IP地址进行有类划分),/16-/23可用于A类和B类网络,而/24-/30可用于A类、B类和C类网络,因此,A类网络划分时的灵活性更大。
③、表示方式更加简洁;
使用CIDR路由聚合的技术,可以解决上文提到的有类IP地址的划分中的2个问题,解决思路如下:
①、CIDR路由聚合的技术可以将多个小的子网(注意是子网,不是子网IP,但可以用网络地址来表示)聚合为一个较大的子网(supernetting),如下图所示:

②、通过最长前缀匹配优先的原则,将IP分组发送给更合适的网络设备,例如,原本的网络中200.23.16.0/23~200.23.30.0/23的连续地址都在同一个区域中,并通过该区域网络设备的路由表来匹配转发,如下图:

由于一些原因,其中一个200.23.18.0/23的IP被划分到了另外一个区域中,此时,原区域中网络设备的路由表可以不改变,只需要向现区域网络设备的路由表添加200.23.18.0/23即可,仍然符合最长前缀匹配优先原则,如下图:

2.1、CIDR技术中的子网划分案例
与有类IP地址的子网划分相同,只是CIDR的表示方法不同,不再详细描述。



浙公网安备 33010602011771号