从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 汇编语言

  • C语言

  • 数据结构

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂-B站教书匠

    • 计算机网络微课堂-实验手册

      • 实验0 安装PacketTracer
      • 实验1 访问WEB服务器(加深对网络体系结构的理解)
      • 实验2 MAC地址,IP地址,ARP协议
      • 实验3 总线型以太网的特性(广播,竞争总线,冲突)
      • 实验4 集线器和交换机的区别
      • 实验5 交换机的自学习算法
      • 实验6 生成树协议STP的功能
      • 实验7 虚拟局域网VLAN
      • 实验8、9、10 IPv4地址 分类地址,划分子网、构造超网
      • 实验11 IP数据报的发送和转发流程
      • 实验12 默认路由和特定主机路由
      • 实验13 静态路由配置错误导致的路由环路问题
      • 实验14 聚合了不存在的网络导致的路由环路问题
      • 实验15 网络故障导致的路由环路问题
      • 实验16 路由信息协议RIP
      • 实验17 开放最短路径优先OSPF
      • 实验18 边界网关协议BGP
      • 实验19 网际控制报文协议ICMP的应用
      • 实验20 运输层端口
      • 实验21,22,23 VLAN
      • 实验24 TCP的运输连接管理
      • 实验25 动态主机配置协议DHCP的作用
    • 计算机网络
  • Git

  • 数据库

  • 计算机小知识

  • 编译原理

  • 名人堂

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂-实验手册
2022-10-24

实验12 默认路由和特定主机路由

# 实验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的请求报文没有收到响应,第二条发出去的也没有收到,而第三个IC MP报文受到了响应,从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
1
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也是两次超时两次受到响应,那么我们之前已经解释过这里面的原因是什么,那么您可以依次把每一个主机之间都进行一下测试,验证了我们各路由器的路由表的配置内容是正确的,本实验就进行到这里了。希望通过本实验,您能加深对默认路由以及特定主机路由的理解

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/4/27 14:12:44
实验11 IP数据报的发送和转发流程
实验13 静态路由配置错误导致的路由环路问题

← 实验11 IP数据报的发送和转发流程 实验13 静态路由配置错误导致的路由环路问题→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式