实验 12:默认路由和特定主机路由
# 120.实验 12:默认路由和特定主机路由
下面我们来进行一个仿真实验,本仿真实验的内容是验证默认路由和特定主机路由的作用。
我已经在软件中构建好了我们理论课程中所使用过的网络拓扑,并且在各个设备的旁边都标注了相关的配置信息,对于网络中的各个主机,我们需要给他们配置 IP 地址,以及相应的子网掩码,最后还要给他们指定默认网关。
我们以主机 A 为例来看一下具体的配置,那点开主机 A 在桌面这个选项卡里面有 IP 配置,那么在这里面我们看到我已经配置好了,主机 A 的 IP 地址是这是,我旁边标注的 IP 地址,子网掩码是三个 255 一个 0,为什么是配置成这个子网掩码?是因为我们在主机 A 所在的网络这里标注的是这样的一个地址块,通过斜线后面的 24,我们就可以知道它的地址掩码是 24 个连续的比特 1,剩下 8 个连续的比特 0,这样写成点分 10 进制以后就是 3 个 255 一个 0。另外最后还要给主机 A 指定它的默认网关,也就是默认路由器,也就是主机 A 发送的数据包要到其他网络去的话,它必然要经过 R1,R1 是主机 A 的默认网关,那么 R1 的和主机所在同一个网络的接口,它的 IP 地址是 192.168.0.254,那么我们这里就给默认网关它指定成 192.168.0.254。
网络中的其他主机也要做类似的相应的设置,这里我们就不再赘述了,对于网络中的各个路由器,我们需要给他们的各个接口配置 IP 地址和相应的地址掩码,并且还要给每一个路由器添加相应的静态路由,最终才能使得整个网络中的各个主机之间可以相互通信。
我们以 R1 路由器为例来看一下它的具体的配置情况。我们点击它,然后在弹出窗口的选择配置选项卡,这里我们就可以看到三个千兆的以太网的接口,我们点开接口 0,我事先已经给接口配置过 IP 地址了,也就是接口里面实际上是这个地方的接口,我们标注的是 192.168.0.254,所以我们给他配置的 IP 地址就是 192.168.0.254。至于这儿的子网掩码是三个 255 一个 0 的,刚才我们已经解释过了,就是因为路由器的接口,它所在的的网络前缀是通过这个地方看出来是 24 个比特,它相应的地址掩码就是这 3 个 255 一个 0。
那么我们再来看一下它的接口 1,这里我给接口 1 标志的配置的 IP 地址是 10.0.0.2,也就是接口这里的子网掩码填三个 255 一个 252,是因为我们在接口配置的 IP 地址,那么它的我们给他指定的网络前缀是 30,这样得出相应的地址掩码就是三个 255,一个 252。
最后这个接口 2 就是上面路由器上侧的接口,配置了相应的 IP 地址和子网掩码。
如果您不知道这三个接口对应到网络拓扑里面,路由器 R1 的到底哪一个接口可以这样操作,那么这个软件本身默认的在它的菜单栏的选项参数选择里面,他默认的是这一项是打开的,也就是在逻辑工作空间中总显示端口标签,我们可以看到一旦打开,那么我们路由器的三个接口的那么它左侧的接口 0,下面接口 2 下面是接口 1,主机的的快速以太网的接口,这接口 0 它都会显示出来。我之所以把它关掉了,是因为我们要给这个设备旁边标注一些信息,可能造成他们的覆盖互相看不清楚的这样的情况,所以我把它给选掉了。
选掉以后,我把这个地方也就是当鼠标在逻辑工作空间中的设备上悬停时显示端口标签,打开,这样的话,当我们把鼠标放到某个端口上面或者某个接口上面,它也会自动的显示出来它自己以及它对端的接口的接口号。所以我采用的是这种方式。
再给途中各个路由器的各个接口,配置完 IP 地址和地址掩码以后,还需要给他们添加静态的路由。我们以 R1 这个路由器为例来看一下静态路由。那么我们点开它选到配置这个选项卡,然后这里的路由下面有一个静态,我们点了一个静态。我们可以看到这就是一个静态路由的配置的界面,那么在这个里面可以添加静态路由的,比如说这儿填网络地址,这儿填相应的掩码,这儿填下一跳的 IP 地址,然后再点击添加就可以把它们添加进来了。
那么我通过这样的方法已经给路由器 R1 添加了两条静态路由。
那么我使用相同的方法给其他路由器也配置了相应的静态路由,比如说 R3,我们打开看一下,在配置-静态我们可以看到这里面我也是点 R3,添加了一条静态路由
我们再来看看 R2 路由器的路由表的配置情况,我们点击它,然后点击配置选项卡,然后静态,那么这里面我也是事先已经添加好了三条静态路由。这三条我们也把它标注在了路由器的左侧
这里需要说明一个问题,我们在这里采用界面的配置方法,这是为了降低了初学者的使用的难度,实际当中应该是通过命令行的方法去添加这三条。也就是说其实当我们在这输入网络地址地址掩码和下一跳以后点加的点击添加按钮的时候,在我们下面这个窗口这等价的命令行的命令,它会有一条相应的命令出来,在实践当中我们是使用命令的方式的,而不是采用这种界面的方式。这里的只是为了降低初学者的门槛,所以我们采用这种配置方法。
下面我们来看看每个路由器中的路由表的具体内容,我们先来看一下路由器 R1 的路由表:
- 它的第一条内容记录,我通过它地址掩码的这 4 个 255 我可以看出来,这就是一条特定主机路由, 那么这台特定主机的 IP 地址就是这里写的 192.168.4.1,在图上就是这台主机 E,而下一跳,这儿写的是 10.0.1.1,那也就是 R3 路由器它下侧的接口。那么当我们给 R1 路由器添加了这一条到达主机 E 的特定主机路由以后,以后凡是 R1 收到目的地址为 192.168.4.1 的这样的 IP 数据报的话,它都会按照这条特定主机路由所指示的下一跳,也就是 10.0.1.1。那么在图上也就是 R3 的接口, R1 都会把数据包转发给 R3 的接口,进而数据包最终可以通过 R3 路由器再转发到主机 E
- 再来看一下第二条录入记录,通过地址掩码这里的 4 个 0 以及它前面这 4 个 0,我们就可以判定这是一条默认路由。那么我们可以看到对于 R1 路由器来说,那么刚才我们给他添加了一条特定主机路由就到达这个主机 E 的,那么剩余的在拓扑图里面,我们看到左侧的主机 A 所在的网络以及它下面接口,这个网络和它是直连的,那么和它非直连的网络有这里主机 B 所在的网络,
那两个路由器之间的这样的一段,你可以把它认为网络或者一段链路都可以,然后主机 C 所在的网络还有主机 D 所在的网络,那么对于 R1 路由器来讲,这三个网络都是非直连的,并且我们从图中可以看到,他们都是需要 R1 把 IP 数据报转发给 R2 的,再进行转发,就直接到达主机 B 所在的网络。那么如果要到达主机 C 或者主机 D 所在的网络,还要经过 R4 路由器的转发,因此我们没有必要针对主机 B 所在的网络,针对主机 C 所在的网络,以及针对主机 D 所在的网络给 R1 添三条这样的静态路由,我们就用一个默认路由来代替,因为他们都有共同下一跳,也就是下一跳的都应该是,R1 路由器跳转给转发给 R2 路由器,具体就是 R2 的路由器的上面这个接口,也就是 10.0.0.1
- 再来看一下 R2 路由器的路由表的信息,第一条路由信息实际上是告诉 R2,他收到 IP 数据报,如果要到达主机 A 所在的网络的话,下一跳,应该跳给 R1,具体的就是接口。我们看到这下一跳的地址,我们写的就是 R1 的接口的 IP 地址。
- 第二条路由,静态路由是告诉 R2,那么如果他收到一个 IP 数据报,如果这个 IP 数据报要到达主机 E 所在的网络,那么下一跳也应该跳给 R1,那么相应的 R1 的接口的 IP 地址我们写到这里了。
- 另外它还有一条默认路由,这条默认路由的话我们看一下,除了下面这个是比较明确的到达主机 E 的,我们给它指定了左边到达主机 A 的网络,我们也给它指定了,剩下的都没有指定,我们从图上可以看到和 R2 非直连的剩下的网络,并且上面有主机的话,也就是只有 C 主机所在的网络和 D 主机的所在的网络。那么我们就在这里面没有给针对这两个网络各自写一条静态路由,而是把它俩合并了,写成一个默认路由,也就是 R 要到达主机 C 和主机 D,那么它都是应该把数据包转发给 R4 的,具体就是 R4 的左侧的接口的 IP 地址,对我们这儿下一跳,写的就是这个 IP 地址。
再来看一下 R3 路由器以及 R4 路由器,它们都只有一条默认路由,那么也就是说对于 R3 路由器来说,我们可以看到和它要到达和它非直连的有主机的这些网络,比如说这里的主机 A 所在网络,主机 B 主机 C 所在网络,主机 E 所在的网络,那么他的下一跳都应该交给路由器 R1,所以我们就先写了一条默认路由,那么默认路由的下一跳都是跳给路由器 R1 的,具体就是 R1 下面的接口。
对路由器 R4 来说的话,D 所在的还有 C 主机所在的网络和它是直连的,我们并不用管它,它自己就知道如何到。那么和它非直连的有上面的 E 主机所在的网络,A 主机所在的网络和这里 B 主机所在的网络,那么到达这三个非直接连接的网络,对于而是这个路由器的话,它应该把 IP 数据报转发 R2,所以我们在这儿到这三个网络,我们就用一条默认的路由来替代了,而不是为他们三个各写一条,那么相应的下一跳就应该跳给 R2 具体就是 R2 的接口,我们这要标注的 IP 地址是所以这里写的是这样的一个 IP 地址,现在所有的配置工作都已经完成
接下来我们就需要检查一下,看看网络中的各主机之间是否可以通信。我们可以在主机的命令行方式下,通过 ping应用程序来测试主机间的连通性,注意我们是在实时模式下。那么假如说我们用主机 A 我们点开,然后到桌面这个选项卡,然后这儿有命令行,我们用主机 A 我们来 ping 一下,比如然后 ping 192.168.4.1。那么就正在进行 ping 的过程,第一条 ICMP 的请求报文没有收到响应,第二条发出去的也没有收到,而第三个 ICMP 报文受到了响应,从 192.168.4.1 这个 IP 地址也就是主机 E,他给我们发回来了,针对 ICMP 询问报文的响应第 4 条也回来了。
C:\>ping 192.168.4.1
Pinging 192.168.4.1 with 32 bytes of data:
Request timed out.
Request timed out.
Reply from 192.168.4.1: bytes=32 time<1ms TTL=126
Reply from 192.168.4.1: bytes=32 time<1ms TTL=126
Ping statistics for 192.168.4.1:
Packets: Sent = 4, Received = 2, Lost = 2 (50% 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
如果您不太熟悉我刚才所说的 ICMP 我们解释一下,我们 ping 程序实际上利用的是 ICMP 协议里面的询问报文和响应报文或者叫做应答报文,他会依次发 4 个 ICMP 的询问报文,当目的主机收到以后会进行相应的响应。那么我们看这里面的超时,也就是说他发的第一个 ICMP 的询问,对方没有如果在规定时间内给出响应,所以他判定为超时。第二条也是,而发的第三个 ICMP 的询问在规定时间内回来响应,所以我们就可以证明它是联通的。那么总共发了 4 条,前 2 条是超时的,那么为什么会前两条超时这里面又隐藏了一个问题,也是我们之前学过的一个问题,就是逐段有 ARP 的请求,那么当我们路由器知道要往 R3 去转发的时候,那么 R3 的接口的 IP 它对应的 MAC 地址路由器先要用 ARP 广播请求这样去给他请求一次,此时他会把之前收到的 ICMP 报文给他丢掉。所以这也就是我们看到第一次你根本不可能受到响应,所以会请求超时。
那么第二次的话紧接着又发了一个 ICMP 主机,又发了一个 ICMP 的请求报文,到达路由器以后,这个时候路由器 R1 就可以转发给 R3,但是 R3 要转发给主机 E 的时候,又存在于说主机 E 的 IP 地址对应的 MAC 地址是什么,所以 R3 又要发一个相应的 ARP 请求,那么此时他会把之前准备转发 ICMP 的,绝对把我们的再次给它丢掉,也就是我们看到的第二条超时,再之后主机发送了第三个 ICMP 的询问报文,那么这样的话就可以很顺利的到达 E,而主机 E 就会给一个响应回来给主机 A 同理第 4 条也是这样,我们再来测试一下主机 B 和主机 D 之间的连通性。我们用主机 B 来 ping 192.168.3.1。那又出现了请求超时的情况,第一次超时,第 2 次超时,第 3 次收到响应,第 4 次收到响应。那么这个跟我们之前说主机 A 去 ping,主机 E 也是两次超时两次受到响应,那么我们之前已经解释过这里面的原因是什么,那么您可以依次把每一个主机之间都进行一下测试,验证了我们各路由器的路由表的配置内容是正确的。
本实验就进行到这里了,希望通过本实验,您能加深对默认路由以及特定主机路由的理解。