超网
简介
跟子网反过来,它是将多个连续的网段合并成一个更大的网段
需求
原本有200台计算机使用192.168.0.0/24,现在希望增加200台设备到同一个网段,应该怎么做?
我们知道192.168.0.0/24这是个C类网段,其只能容纳254台主机,如果还想再容纳200台,我们需要另找一个C类网段,比如192.168.1.0/24,现在确实400台设备都有对应的IP地址了,但并不都在同一个网段啊!
要想解决这个问题,那么只能将这两个网段合并为一个网段了,我们让子网掩码往左移了一位,网络部分-1,主机部分+1,将主机部分全部置0之后就可以得到当前对应的网段号192.168.0.0/23,原本两个网段对应的主机经过子网合并之后现在已经处在了同一个网段了
和子网划分相反,子网掩码往左移n位,合并的网段可用的IP数量接近为原网段的2^n倍
思考
192.168.0.255/23这个IP地址,可以分配给计算机使用吗?
这是可以的,一位当子网掩码为23的时候,说明主机部分对应的二进制码数量为9个,第三部分最后一位二进制数实际上是属于主机部分的,该数为0的时候,也就对应题目中的那个IP地址,但是当该数为1时,主机部分全为1代表的是这个网段下的广播地址,所以192.168.1.255/23这个IP地址是不能分配给计算机使用的,但是192.168.0.255/23这个IP地址可以
合并四个网段
子网掩码向左移动两位,可以合并四个网段
将子网掩码向左移动之后,上图中的四个网段就被合并成了一个网段:192.168.0.0/22
思考
192.168.1.0/24和192.168.2.0/24能通过子网掩码向左移动一位进行合并吗?
虽然他们两个的IP地址看起来是连续的,但是当我们将他们对应的二进制数写出来时,就会发现其实它对应的二进制数有两位不同,这样我们就无法通过只移动一位子网掩码来将两个网段合并,而是至少需要两个才行
合并网段的规律
子网掩码左移n位能够合并2^n个网段
从上述的图中我们也可以发现,并不是相邻的网段都可以通过子网掩码移动一位得到,但是子网掩码移动几位,就一定可以合并2^n个网段
合并网段的规律
假设n是2的k次方,如果这个连续网段中的第一个网段号能被n整除,那么由它开始的连续的n个网段,能够通过左移k位子网掩码进行合并
- 第一个网段的网段号以二进制
0结尾,那么由它开始的连续的2个网段,能通过1位子网掩码进行合并 - 第一个网段的网段号以二进制
00结尾,那么由它开始的连续的4个网段,能通过2位子网掩码进行合并 - 第一个网段的网段号以二进制
000结尾,那么由它开始的连续的8个网段,能通过3位子网掩码进行合并
原因很简单,如果一个网段号能被2整除,那就说明它对应的最后一个二进制数一定为0,和他连续的网段号也只是将该二进制数改为了1而已,其他二进制数字都一样,所以肯定可以通过移动一位子网掩码来使他们处在同一个网段
如果一个网段号能被4整除,那就说明它对应的最后一个二进制数一定为00,一位从倒数第三个二进制数开始就全都是4的倍数了,和他连续的3个网段好也只是最后两个二进制数字不同而已,所以肯定可以通过移动二位子网掩码来使他们处在同一个网段
判断一个网段是子网还是超网
- 首先先去判断该网段的类型,通过第一部分的数字判断其是
A/B/C类网段,A(0-127),B(128-191),C(192-223),每一类网段都有其默认的子网掩码,比如C类是24位 - 如果该网段的子网掩码位数比默认子网掩码多,就是子网
- 如果该网段的子网掩码位数比默认子网掩码少,就是超网
比如,25.100.0.0/16是一个A类子网;200.100.0.0/16是一个C类超网
路由
在不同网段之间转发数据,需要路由器提供支持,但是在默认情况下,路由器只知道跟它直接相连的网段,非直连的网段需要通过静态路由、动态路由告诉它
静态路由
- 管理员手动添加路由信息
- 适用于小规模网络
在真实场景中,一台主机和另一台主机进行通信,它往往通过的可能不只有一台路由器,中间可能有无数的路由器进行转发
比如在上幅图中,计算机0想要与计算机3进行通信是失败的,因为路由器0不知道怎么将数据传递给谁,配置静态路由就是解决这个问题的一种方法
配置静态路由的方法:在路由器0中配好相应的网络号和掩码和下一跳,下一跳对应的就是就是路由器在与配置好的网段下的设备通信时,应该将消息转发给哪一个网关的IP地址
网路路由
以上幅图为例,计算机0要与计算机3进行通信,因为目标IP地址所在的网段并不是和路由器0直连的,所以路由器0不知道要往哪走,但由于我们在静态路由中配置好了这个网段,所以路由器0在识别到目标网段之后就会将消息转发到该网段对应的下一跳中,也就是路由器1对应网关的IP地址,路由器1接收到消息之后再转发给计算机3,但这样还不够,因为路由器1还没有配置计算机0所在网段的相关信息,在配置完了之后才能够真正地实现了两台计算机之间的通信,这些配置好的信息会放置在路由器的路由表中
汇总路由
那如果计算机0与计算机2、计算机3都要进行通信怎么办?你当然也可以把计算机3下的网段号也跟之前一样配置到静态路由当中,但是如果设备一多,你每台都要进行配置,这样就有点麻烦。我们仔细观察一下,计算机2和计算机3虽然他们的网段号不一样,但是前面都是以193.169开头,那我们配置静态路由的时候,其实也直接这样配置就行了,路由器识别网段的时候就只会看前两位了。这样我们就实现了只配置一次,但是可以与两台设备进行通信了
我们范围配的更大一点也是没有问题的
特定主机路由
配置静态路由不一定只可以配置对应的网段,还可以配置具体的IP地址,但是掩码必须要填255.255.255.255才行,因为这样路由器才能识别出我们配置的是具体的IP地址。但如果静态路由只配置了这个的话,计算机0只能够发消息给这台设备
默认路由
我们还能够配置默认路由,要求网络和掩码都要为0.0.0.0,这样路由器才会将该配置识别为默认路由,与其他配置好的静态路由相比较,它的优先级是最低的,只有在路由器真的不知道往哪走的时候,才会去走默认路由所对应的下一跳
动态路由
现在我们能通过英特网访问到世界各地的设备,靠的就是动态路由,其会通过各种协议自动去获取到路由信息,这样就算两台设备离得特别远,也可以找到对应的设备;
举个例子:你想找到远在天边的亲戚,但不知道他家在哪里,于是你就去问你的邻居,你的邻居也不知道又会去问他的邻居,直到找到了你的亲戚为止
- 路由器通过路由选择协议(比如
RIP、OSRF)自动获取路由信息 - 适用于大规模网络