子网划分和路由聚合

子网

为了确定网络区域,分开主机和路由器的每个接口,从而产生了若干个分离的网络岛,接口端连接了这些独立网络的端点。这些独立的网络岛叫做子网(subnet)。

IP地址是以网络号和主机号来表示网络上的主机的,只有在一个网络号下的计算机之间才能“直接”互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并不十分灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet)。

IP地址

IP地址被用来给Internet上的电脑一个编号,即标识一台主机。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

IP地址包括两部分:网络号与主机号,即 IP地址=网络号-主机号

子网掩码

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码,即将某个IP地址划分成网络地址和主机地址两部分。

  • 子网掩码不能单独存在,它必须结合IP地址一起使用,子网掩码32位都与IP地址32位对应,如果某位是网络地址,则子网掩码为1,否则为0;
  • 子网掩码可以通过与IP地址“与”计算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在局域网上,还是在广域网上;
  • 子网掩码一般用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。

有类网络与无类网络

有类网络

有类网络就是指把IP地址能归结到A类、B类、C类IP。

类型特征子网掩码
A类网络号有8位255.0.0.0/8
B类网络号有16位255.255.0.0/16
C类网络号有24位255.255.255.0/24

无类网络

网络号可能不是固定的8、16、24位,而可能是变长的。无类网络IP地址的掩码是变长的。在有类网络的基础上,拿出一部分主机ID作为子网ID。

它的出现的因为,有类网络会指定特定的掩码位数,但有时不需要那么多位主机号,但其他子网又不能使用该子网中的IP,因此会出现大量浪费。

我们可以利用可变长子网掩码(VLSM)来划分本地子网,也就是说在它的主机号中再划分出网络号来:

未做子网划分的ip地址:网络地址+主机地址
做子网划分后的ip地址:网络地址+(子网网络地址+子网主机地址)

网关

网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。

网关实质上是一个网络通向其他网络的IP地址。

在不同子网内的主机是不能直接通信的,必须经过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。

网关的IP通常是具有路由功能的设备的IP地址,具有路由功能的设备有

  • 路由器;
  • 启用了路由协议的服务器(实质上相当于一台路由器);
  • 代理服务器(也相当于一台路由器)。

子网划分详解

  • 广播地址(Broadcast Address):是专门用于同时向网络中所有工作站进行发送的一个地址,网络号不变,主机号全为1;
  • 网络地址:标识该子网的地址,网络号不变,主机号全为0。IP地址和子网掩码进行与运算,结果是网络地址;
  • 主机数:主机号位n位,则该子网内可用的主机数为 2n - 2,减掉的2为广播地址和网络地址。

例题

题一

1.假定给你分配的网络块为200.35.1.0/24,请你指定一个子网中可以至少容纳20台主机的扩展网络前缀___.
2.这些子网中每个子网可以最多容纳多少台机器?
3.在这个/24下最多可以定义多少个子网(大小容纳20台主机)
4.给出200.35.1.0/24的所有子网的二进制形式和点分十进制表示____.
5.列出可以分配给#6(200.35.1.192/27)的主机地址范围
6.子网200.35.1.192/27 的广播地址是什么?

解答

1、20台主机,子网地址+1 网络号+1 广播地址+1,16<23<32,主机号需要5位,则子网号为32-24-5 = 3位,则该子网掩码为 11111111.11111111.11111111.11100000/27,即为255.255.255.224;

2、每个子网最多可容纳,32-2 = 30 台机器

3、子网号有3位,因此最多可定义 23 = 8 个子网

4、三位子网号从 000 ~ 111 :

11111111.11111111.11111111.000 00000

11111111.11111111.11111111.001 00000

...

11111111.11111111.11111111.111 00000

5、200.35.1.192/27 为 200.35.1.110 00000/27

即主机地址范围为:200.35.1.110 00001/27~200.35.1.110 11110/27

200.35.1.193 ~ 200.35.1.222

6、200.35.1.192/27 即 200.35.1.110 00000,广播地址为主机号全为1,即最后八位变为110 11111,答案为,200.35.1.110 11111,200.35.1.223。

题二

一个单位有一个C类网络200.1.1。考虑到共有四个部门,准备划分子网。这四个部门内的主机数目分别是:A—72台, B—35台,  C—20台,  D—18台; 即共有145台主机。
(a) 给出一种可能的子网掩码安排来完成划分任务
(b) 如果部门D的主机数目增长到34台,那么该单位又该怎么做?

解答

(a)

直接划分:

A:64 < 72+3 < 128,主机号需要7位,最后八位的最高位为0

即子网掩码为 255.255.255.1 0000000,255.255.255.128

B:32 < 35+3 < 64,主机号需要6位,最后八位最高两位为10

即子网掩码为 255.255.255.11 000000,255.255.255.192

C:16 < 20+3 < 32,主机号需要5位,最后八位最高三位为110

即子网掩码为 255.255.255.111 00000,255.255.255.192.224

D:16 < 18+3 < 32,主机号需要5位,最后八位最高三位为111

即子网掩码为 255.255.255.111 00000,255.255.255.192.224

(b)

部门D主机涨到34台,则部门D需要6位主机号,但若使用之前的编码方案,只是将D改成六位主机号,发现不可以,因为A已经使用了 1 作为最后八位最高位,且B使用了 10 作为最后八位最高位,所以 D 就只能使用 11 作为最后八位最高位,但这样C主机就没法分配了。(实际上是由于A冗余太多,导致无法分配这么多IP地址给主机)

一种方案:解决A冗余太多的问题

A:64 < 72+3 < 64+32,使用 两位网络号01+三位网络号001

即子网掩码为 255.255.255.01 00000,255.255.255.001 00000

B不变

C:16 < 20+3 < 32,主机号需要5位,最后八位最高三位为000

即子网掩码为 255.255.255.000 00000

D:32 < 34+3 < 64,主机号需要6位,最后八位最高三位为11 000000

即子网掩码为 255.255.255.11 000000

路由聚合

超网

超网(supernetting)是与子网类似的概念——IP地址根据子网掩码被分为独立的网络地址和主机地址。但是,与子网把大网络分成若干小网络相反,它是把一些小网络组合成一个大网络——超网。

  • 超网的功能是将多个连续的C类的网络地址聚合起来映射到一个物理网络上。这样,这个物理网络就可以使用这个聚合起来的C类地址的共同地址前缀作为其网络号。
  • 超网创建用来解决路由列表超出现有软件和管理人力的问题以及提供B类网络地址空间耗尽的解决办法。超网允许一个路由列表入口表示一个网络集合,就如一个区域代码表示一个区域的电话号码的集合一样。
  • 超网(路由聚合)技术是为了解决路由表的内容冗余问题,使用路由聚合能够缩小路由表的规模,减少路由表的内存。

子网划分是为了让我们拥有更小的网络,每个网络的主机数可以放得少一些。超网则是让我们把这些单块儿的小网络聚合,让一个网段儿能放更多的主机数。

例题

假设下面有4个网络:
172.18.129.0/24
172.18.130.0/24
172.18.132.0/24
172.18.133.0/24
如果这四个进行路由汇聚,能覆盖这四个网络的汇总地址是多少?

解答:
1)将各子网地址的网段以二进制写出。
129的二进制代码是10000001
130的二进制代码是10000010
132的二进制代码是10000100
133的二进制代码是10000101
2)比较,从第1位比特开始进行比较,将从开始不相同的比特到末尾位填充为0。由此得到的地址为汇总后的网段的网络地址,其网络位为连续的相同的比特的位数。
3) 这四个数的前五位相同都是10000,所以加上前面的172.18这两部分相同的位数,网络号就是10000000,而10000000的十进制数是128,所以,路由汇聚的Ip地址就是172.18.128.0。所以最终答案就是172.18.128.0/21。