实验 8:IPv4 地址
# 80.实验 8:IPv4 地址
下面我们来进行一个仿真实验,本仿真实验的内容来验证分类 IP 地址的作用,以及对路由器的功能进行初步了解。
首先我们来构建一个简单的网络拓扑,拖动两台主机到逻辑工作空间,我们选择自动连接类型,将这两台主机互联起来。
接下来我们需要给这两台主机各自配置一个 IP 地址,先给左边的主机进行配置。假如我们配置一个 C 类的 IP 地址具体为 192.168.0.1,子网掩码采用仿真软件自动配置的就可以了,因为我们暂时还没有介绍过子网掩码的概念。
我们来具体看一下我们所分配的 IP 地址,从第一个字节就可以看出这是一个 C 类的 IP 地址,也就是 192 就是可以看出这是一个 C 类的。
那么我们知道 C 类的 IP 地址以后,我们就知道它前三个字节是表示 C 类网络的网络号的,后面这一个字节是用来表示这台主机的,那么这个值的取值范围是 0~255,但是 0,其实和 192.168.0.0 一起是表示具体的 C 类网络的,所以在网络上最小的用来标识主机的 IP 地址就是 192.168.0.1。
而这值如果取到了 255,那是表示 192.168.0 这个 C 类网络上所有的主机,所以那是一个广播地址。
因此主机编号这个部分最小的数值取 1,最大的取 254,这里我们给左边这台主机配置为 1,而右边这台主机的话可以从剩下的 2~254 里面随便挑一个就可以了。
下面我们给右边这台主机也配置一个 IP 地址,我们为了让右边主机和左边主机可以直接通信,因为他们是直接互联的,没有用其他设备连也没有用路由器连。所以为了让他们可以直接进行通信的话,那么我们必须把右边这台主机的这个和左边这台主机的 IP 地址使他们的网络号部分相等,也就是让他们属于同一个网络里面。所以右边这台主机的 IP 地址的网络号部分也是 192.168.0,而主机号部分刚才我们说了取值是 1 ~ 254 里面选一个,左边这台主机分配的 1,那么剩下的就是 2 ~ 254 里面选一个,我们就选 2 就可以了,子网掩码我们采用默认的就可以了。
接下来我们就验证一下这两台计算机是否可以通信了,我们用这个左边的主机去 ping 一下右边这台主机,看看是否能够 ping 通。PING 然后空格右边主机的 IP 地址是 192.168.0.2。我们听一下看到回答的第 1 个响应,第 2 个响应第 3 个第 4 个,也就是说我们左边主机依次发了 4 个询问请求,那么右边的主机收到后每收到 1 个会回给 1 个响应给左边的主机,那么发了 4 个请求回来,4 个响应,也表示它们俩之间是可以互通的。
C:\>ping 192.168.0.2
Pinging 192.168.0.2 with 32 bytes of data:
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Ping statistics for 192.168.0.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
2
3
4
5
6
7
8
9
10
11
12
13
如果我们将右边的主机的 IP 地址重新配置一下,使得左右两台主机他们 IP 地址的网络号部分不相同,也就是说他们属于不同的网络,那么我们再来看看他们是否可以这样直接的就可以通信了。现在我们就来更改一下右边这台主机之前所配置的 IP 地址,我们把之前配置的 IP 地址和子网掩码全部给它删除了,然后我们给它设置一个新的 IP 地址,比如说 172.16.0.1,那子网掩码采用默认子网掩码就可以了,那么这个 IP 地址我们通过第一个字节的 172,10 进制的值,我们就可以快速的分辨出来它是一个 B 类的网络,它的网络号是 172.16,后面点 0.1 就是这台主机的主机编号。
总之我们知道现在的话左边这个主机是 192.168.0.1,右边主机台 IP 地址指的是 172.16.0.1,他们俩已经不在一个网络上了。我们来验证一下这个时候他们俩之间是否可以通信,我们把这台主机点开,也就是在桌面上把它的命令行方式给它打开,这是我们之前就已经打开的。我们 ping 一下 172.16.0.1。我们可以看到正在 ping 第一次的请求没有收到响应而超时了,第二次的请求也没有收到响应,也超时了,第 3 次也超时了,第 4 次也超时了,也就是发 4 次询问都没有收到响应,这就证明了这两台主机现在虽然这么直连了,但是由于他们 IP 地址配置的不在同一个网络中,所以他们其实是不能通信的,因此这相当于两个不同网络的互联,所以直接这么连是不行的。
C:\>ping 172.16.0.1
Pinging 172.16.0.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 172.16.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
2
3
4
5
6
7
8
9
10
11
我们把这条直连线给它删除掉,好然后把鼠标状态再切换回来,那么这两个不同网络的互联,我们需要添加一个三层的设备,也就是路由器,我们直接拖一个路由器上来就可以了。然后我们选择自动连线,我们使用了一个路由器,这是一个网络层的设备,网络层的互联设备,将两个属于不同网络的主机直接给它互联起来了。那么我们需要给路由器的两个接口配置一个 IP 地址,比如说千兆的以太网的它 0 号口,我们在配置里面这儿可以看到这个接口,我们可以给它配置一个 IP 地址,那么这个接口和我们主机的接口,其实它们相当于是在同一个网络中的,所以路由器的接口,它的 IP 地址的网络编号部分应该和我们这台主机的 IP 地址的网络编号部分相等,也就是应该是 192.168.0 这一部分是不能动的,相等的,那么剩下的在给大家分配一个,那么这台主机由于它的主机编号是 1,而这个接口的话,我们可以从 2~254 里面挑一个,一般我们会挑最大的 IP 地址,主机编号 254,子网掩码采用默认的就可以了。另外我们看到这是红色的,这个接口的现在是关闭的,我们要点击右边的端口状态打开,它就变成绿色指示灯了。
同理我们要为路由器的右边这个端口设置一个 IP 地址,也就是一号端口,我们选到它那么和左边配置的道理是一样的,这个右边的接口,它的右边主机的 IP 地址,它们应该是网络号部分相同的,因为它们处在从一个网络上,所以右边这个主机的 IP 地址是 172.16 这是,它的网络号部分这一部分不能动,剩下的话还有两个十进制的值都是作为主机号的,那么主机上我们用的是 0,然后是 1,那么我们取最大的网络上可以取最大的主机编号,那么第三个字节就是 255,最后一个是 254。注意一下,最后不能填 255,如果填 255 的话,相当于是 172.16 网络上,然后它的主机号填成了两个 255,那就相当于是广播地址了。
那子网掩码的我们采用默认的就可以了,我们忘了打开这个端口了,我们再把它打开一下,那么下面我们再来看看这两台主机能不能通,那么我们仍然用左边那台主机来 ping 一下右边这台主机还是。我们这样 ping 一下,我们之前就是 ping 172.16.0.1,也就这台主机的 IP 地址我们听一下。看第一次 ping 超时了,第一次询问请求没有按照时间回来超时了,第二次也超时了,第 3 次还是超时啊,第 4 次也是超时,想一想这是为什么呢?其实是因为左边这台主机他要给右边这台主机发送询问报文,那么他首先会判断,也就是他首先会判断我们这儿给定的 172.16.0.1 IP 地址,通过这个 IP 地址他自身会去判断和自己是不是在同一个网络中,那么当他判断出来 172.16.0.1 和自己的 192.168.0.1,这两个 IP 地址其实他们不在同一个网络中,那么这个时候我们的左边主机他就知道他的数据包不可能直接发送到目的地,他需要把这个数据包交给一个路由器帮他去转发。
那么由于这个路由器我们没有告诉它说这个数据包你应该交给谁,也就这个路由器我们没指定给它,所以它这个时候就没有办法把这个数据包转发出去了。所以那么我们再重新给它配置一下我们点主机,然后把之前的命令行界面给它关掉。再回到 IP 配置的界面,我们可以看到这个地方有一个默认网关,默认网关其实就是我们之前说的计算机主机要把数据包转发出去,他发现数据包的目的 IP 地址,你自己根本不在同一个网络,那么他就会把这个数据包必然需要交给一台路由器帮他转发出去,而这个路由器我们一般称为是默认路由器,但是由于历史的原因,默认录用期的概念最早它把它称为默认网关,所以很多软件包括我们的 Windows 系统都称为是默认网关,并没有把它称为是默认路由器。
这里知道一下就可以了,所以我们这里面应该给他指定也就是给这台主机,虽然我们给他配的 IP,但我们还要告诉他,如果你这个数据包你要发送的数据包,他所到达的那个地方目标主机和你自身不在同一个网络,你要通过哪一台路由器把它送出去?那么由于这台主机和这台路由器的 0 号端口,他们在同一个网络,所以我们其实相当于是把路由器的 0 号端口的配置的 IP 地址告诉这台主机,也就是默认网关这个地方,我们要设置一个 IP,这个 IP 就是路由器的端口 0 的我们之间配置的 IP 地址,我记得我们配的是 192.168.0.254。
同理在我们右边这台主机上我们也没有指定,如果他要发送一个数据包,那个数据包的目的 IP 地址实际上与主机不在同一个网络,那么它肯定也要交给一个默认的路由器或叫默认网关,帮他转发,这个路由器就是我们现在看的路由器,那么应该指定他的一号端口的 IP 地址。那么我们把右边这一台计算机的 IP 配置界面打开,默认网关店里面我们就要填写这台路由器的端口一的我们之前配置过的 IP 地址,我记得应该是 172.16.255.254。下面我们就来再次看一下左边和右边能不能 ping通,我们还是用左边来 ping 就可以了。
再来 ping 一下,第 1 个请求超时了,但是我们看到第 2 个、第 3 个、第 4 个都正常回来了,也就是说我们这边左边的主机依次发送了 4 个请求报文,那么他每收到 1 个应该给我们回来 1 个,只不过我们看到第一个超时讲一讲这是什么原因?其实是因为是这样子的,我们在 ping 的过程中,当这个数据包我们要 ping 它的话,到达路由器,路由器要去转发,转发的时候这里面还存在一个问题,就是路由器要首先知道右边主机它的接口的 MAC 地址,也就我们之前讲过的要先发一个 ARP 广播请求,把取回来以后才能再次把询问报文转发到这,然后他收到以后再给一个响应回来,那么这个时候路由器再通过查表转发,把单波响应传回来,那么这样的一个过程使得我们的 ping 的应用程序,它认为这是一个超时的。
为什么之后就可以没有超时?是因为路由器,准备转发请求给右边这台主机的话,不用再进行 AIP 的广播请求了,因为之前已经请求过了已经知道了主机的 MAC 地址,所以就不会超时了。
C:\>ping 172.16.0.1
Pinging 172.16.0.1 with 32 bytes of data:
Request timed out.
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127
Reply from 172.16.0.1: bytes=32 time<1ms TTL=127
Ping statistics for 172.16.0.1:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
2
3
4
5
6
7
8
9
10
11
12
13
我们可以验证一下,我们再 ping 一次,应该是很快的 4 个响应就会回来
C:\>ping 172.16.0.1
Pinging 172.16.0.1 with 32 bytes of data:
Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.
Reply from 192.168.0.254: Destination host unreachable.
Ping statistics for 172.16.0.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
2
3
4
5
6
7
8
9
10
11
12
到这里相信您对分类 IP 地址有了更深入的理解,并且对路由器的作用有了初步的认识。给您留一个作业,我们之前将右边的主机的 IP 地址修改为了一个 B 类的,IP 地址,将路由器的端口 1 的 IP 地址也做了相应的修改,只得左边的主机可以对右边的主机进行 ping ping 通。那么我们的作业是请您将右边这台主机的 IP 地址改为一个 A 类的 IP 地址,那相应的对路由器的端口 1 的 IP 地址也要做修改,我们实现的目标是使得左边的主机可以 ping 通右边的主机,也就是说这两台主机可以实现他们之间的通信。