路由器

随着接入网络的终端越来越多,网络规模越来越大,但是二层交换机的容量和性能有限,无法接入日益增多的终端。于是就有了三层网络设备路由器,连接不同网段的二层交换机,进而把全世界的网络都连接起来。

路由器

路由器是负责网络层工作的硬件设备,通过不同端口,连接不同的网段,识别目的地址,根据路由表进行数据包转发。

路由器的结构

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。

下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。

典型的路由器的结构

整个的路由器结构可划分为两大部分:路由选择部分、分组转发部分。

路由选择部分也叫做控制部分,其核心构件是路由选择处理机。

路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

分组转发部分由三部分组成:

  • 交换结构:根据转发表对分组进行处理。
  • 一组输入端口
  • 一组输出端口

“路由选择”则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。

输入端口对线路上收到的分组的处理

路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块。

数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。

输出端口里面装有物理层、数据链路层和网络层的处理模块。

输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。

在网络层的处理模块中设有一个缓冲区(队列)。当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。

数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。

分组丢弃

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。

路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

交换结构

交换结构是路由器的关键构件。正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。

实现交换有多种方法。常用交换方法有三种:通过存储器、通过总线、通过纵横交换结构。

通过存储器

(1) 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
(2) 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
(3) 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。

通过总线

(1) 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
(2) 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
(3) 现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。

通过纵横交换结构

(1) 这种交换结构常称为互连网络。
(2) 它有 2N 条总线,可以使 N 个输入端口和 N 个输出端口相连接。
(3) 当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。
(4) 若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
(5) 但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。

路由选择

路由器为数据包选择路径的过程叫做路由选择。

路由器从接口收到数据包后,根据目的地址的信息进行路由选择,按照选择结果将数据包从对应接口转发出去。

转发的路线叫做路径。

路由器在路由选择时,参考的信息叫做路由表。路由器通过这些信息判断数据包转发到哪个网络。

路由表由多个路由表项组成,路由表项既可以手动设置静态路由,也可以通过路由协议自动生成动态路由。

名称 说明
路径
route
路由器转发数据包的路径
路由选择
routing
路由器为数据包选择路径的过程。完成路由选择后,把数据包转发出去的过程,叫做转发(forwarding)
路由表项
routing table entry
路由器在路由选择时参考的信息,有目的地址和下一跳组成
路由表
routing table
路由表项的汇总,路由器进行路由选择时需要参考的内容

路由选择在网络层完成,过程如下:

什么是转发

路由选择的过程需要根据目的 IP 地址的信息,判断将数据包转发到哪个网络。路由器的一个接口对应一个网络,发送到不同网络,是指路由器从某个接口收到数据,然后从另外的接口发送出去。

把数据包从接收接口到发送接口的发送过程叫做转发。

路由表包含的信息

路由表包含路由选择的必要信息,主要内容如下:

  • 目的 IP 地址:IP 包的目的地址。
  • 子网掩码:表示目的 IP 地址有多少位是网络位。
  • 网关:IP 包下一跳的 IP 地址。
  • 网络接口:IP 包从哪个路由器接口发送出去。
  • 度量值:当有多条到达目的地的不同路径时,度量值越小表示优先级越高。

五个内容组成一条路由表项。

路由器的功能

功能 说明
路由信息管理 管理静态路由和动态路由,从相邻路由器处获得路由更新信息,向相邻路由器发送路由更新信息
对分组进行分类 处理、队列以及判断分组是否可以转发。对比比较列表和分组,执行相关控制操作
三层交换 封装用于输出的二层数据,计算三层的校验总和,更新 TTL 以及 HOP 数
管理、计费、收集统计信息 接口的统计信息、Telnet、SNMP、ping、trace route、HTTP

静态路由

什么是静态路由

手动在路由器上设置的路由表项就叫做静态路由。

路由器在收到数据包时,会识别目的 IP 地址的网络号,来查询路由表的路由条目,根据最长匹配的路由条目,来判断应该从哪个接口转发数据包。路由表中有匹配的路由条目才会发送数据,无匹配的路由条目则直接丢弃。

路由表

路由表由路由条目组成,路由条目包含目的地址、下一跳和出接口等。

目的地址(Destination/Mask)表示目的网段地址或目的 IP 地址。目的地址既可以是直连在路由器接口上的网段地址,也可以是其它路由器上的网段地址或 IP 地址。

下一跳/出接口(NextHop/Interface)表示转发目的地址的数据包时,下一跳设备的接口 IP 地址,或者是将数据包从哪个接口转发出去。

协议类型(Proto/Protocol简写)表示路由条目的获取方式,一共有三种方式。

直连路由:路由器直接连接的路由条目,只要接口配置了 IP 地址,接口状态正常,就会自动生成对应的直连路由。

静态路由:通过命令手动添加的路由条目就是静态路由。

动态路由:通过路由协议从相邻路由器动态学习到的路由条目。

优先级( Pre / Preference 简写 )表示有多条去往同一个目的地址的路由条目,根据路由条目的类型,选择优先级最高的路由条目添加到路由表里面。

路由优先级的值越小,代表这种类型的路由优先级越高。

路径开销(Cost)表示通过同一种路由类型学习到多条去往同一个目的地址的路由条目,选择路径开销最小的路由条目添加到路由表里面。

直连路由

直连路由是唯一一种自动向路由表中添加路由条目。这种路由条目指向的目的网络是路由器接口直连的网络,直连路由的路由优先级和路径开销值都是 0。

为了保障直连路由的可用性,路由器只会把状态正常的接口所连接的网络,作为直连路由放入自己的路由表中。

静态路由

默认情况下,路由器只会自动生成直连路由。对于非直连网络,路由器并不知道要如何转发才能到达非直连网络。这时,我们就可以手动添加静态路由,告诉路由器如何转发去往某个网络的数据包。

静态路由的默认路由优先级为 60,还可以手动调整静态路由的优先值。静态路由的路径开销值是 0。路由器静态路由配置命令:

1
ip route-static destination-address mask-length nexthop-address

通过目的地址相同、下一跳或出接口不同的两条静态路由实现数据流量的负载分担,路由器会同时使用这两条静态路由条目转发数据包。但是在实际网络环境中,不推荐使用,因为数据报文往返路径不对称,会导致上层应用受影响。

通过目的地址相同、路由优先级不同的两条静态路由实现路由备份,当优先级高的路由条目出现问题时,路由器就会使用另一条优先级低的路由条目来转发数据包。

优点:

  • 对比动态路由,静态路由条目不会被自动删除,路由条目更稳定;
  • 只要手动添加,就会出现对应的静态路由,路由器也会使用这条静态路由转发数据包,路由条目更可控;
  • 配置去往某个网络的静态路由,只需要在路由器上添加一条简单的命令就可以实现,更容易部署。

缺点:

  • 在越大型网络中,配置和维护路由协议的工作量越大,出差的概率就越大。在大型网络中,静态路由只能作为动态路由的补充,因为静态路由的扩展性差。
  • 动态路由可以自动删除失效的动态路由条目。而静态路由无法反映拓扑变化,必须进行手动干预删除失效静态路由,否则路由器仍会按照配置的静态路由进行数据包转发。

默认路由

路由器只能转发有路由条目的数据包,对于网络未知的数据包,只能选择丢弃。实际上,我们也不可能知道所有网站或者应用程序的 IP 地址,需要使用一种特殊的路由条目解决这个问题。

路由转发的最长匹配原则是:当匹配目的 IP 地址的路由条目有多条时,路由器会选择子网掩码最长的路由条目,也就是最精确的路由条目来转发数据包。

我们通常会配置一条 0.0.0.0/0 的静态路由,根据最长匹配原则,可以匹配任何目的 IP 地址的数据包,保证任何数据包都能被转发出去;同时,只要路由器上还有任何一条可以匹配目的 IP 地址的路由条目,这条路由条目一定比 0.0.0.0/0 更精确,于是路由器会用更精确的路由条目来转发数据包。这就是静态默认路由,也是静态路由的一种。

一般家用路由器上除了本地直连路由外就只设置个默认路由,把去往互联网的流量都转发给运营商的路由器。

网关和默认网关

两个网络之间要实现通信,必须要通过网关。网关通常位于有路由功能的设备上,网关的 IP 地址可以是路由器的某个接口的 IP 地址,也可以是三层交换机 VLAN 端口的 IP 地址。

一台主机可以由多个网关,当一台主机找不到可用的网关时,数据包可以发送给默认网关。其实主机上配置的默认网关就是默认路由。

默认网关

如果路由表中不存在满足条件的表项,那么会根据路由表中的默认路由表项进行转发。默认路由表项的 IP 地址是0.0.0.0,子网掩码是0.0.0.0,即0.0.0.0/0。默认路由表项又叫做默认网关。如果路由表中不存在默认网关,那么路由器会告知错误,并丢弃这个数据包。

动态路由

当网络规模越来越大,路由器的数量越来越多时,通过手动配置路由表项是不可能的,这就要使用动态路由协议,在路由器之间交换信息自动生成路由表项。

如果网络使用动态路由,需要消耗一定的时间从其它路由器获取路由信息,路由表在这个过程中会逐渐增大,最终所有的路由器都获取到完整的路由表,这个过程叫做收敛。路由表从初始状态到收敛完成花费的时间叫做收敛时间,收敛时间越短,网络越稳定。通常,路由器数量越多,收敛时间越长,同时收敛时间还跟路由算法有关。算法不同,收敛时间的长短也不同。

使用动态路由时,有三种情况会发送路由器之间的路由信息交互:

  • 首次运行动态路由协议时
  • 网络中添加新的路由器或新的链路时
  • 网络中路由器离线或链路端口导致网络故障时

实战演练

静态路由实验

实验拓扑图

实验要求

  • 使用 ENSP 模拟器
  • PC1 能 ping 通 PC2
  • PC1 和 RT1 使用网段 1 互联:192.168.1.0/24
  • PC2 和 RT2 使用网段 2 互联:192.168.2.0/24
  • RT1 和 RT2 使用网段 3 互联:192.168.3.0/24

实验步骤

  1. 分配 IP 地址,并把 IP 地址配置到 PC 和 RT 的接口上。

PC1 的E0/0/1口配置192.168.1.1/24

PC2 的E0/0/1口配置192.168.2.2/24

RT1 的G0/0/1口配置192.168.1.10/24,RT1 的G0/0/0口配置192.168.3.10/24

RT2 的G0/0/1口配置192.168.2.20/24,RT2 的G0/0/0口配置192.168.3.20/24

  1. PC1 分别ping网段1、网段2、网段3 的 IP 地址,结果只能ping通同网段的192.168.1.10,其余不同网段的 IP 地址都无法ping通。其它主机和路由器也是只能ping通同网段的 IP 地址。
  1. 打通从 PC1 到 PC2 的路由,即 PC1 配置默认网关,RT1 配置到达192.168.2.0/24网段的静态路由。
  1. PC1 还是只能ping通同网段的192.168.1.10,其余不同网段的 IP 地址都无法ping通。检查各个设备的路由表,发现 PC1 的报文可以发送到 PC2,但是 PC2 和 RT2 没有回程路由,即 PC2 和 RT2 没有到达 PC1 的路由表项,返程报文无法到达 PC1。
  1. 打通从 PC1 到 PC2 的回程路由,即 PC2 配置默认网关,RT2 配置到达192.168.1.0/24网段的静态路由。
  1. PC1 ping PC2 成功,并使用tracert命令查看网络路径。

实验总结

配置路由时,需要在通信双方都进行配置,不要忘记配置回程路由。

浮动静态路由实验

实验拓扑图

实验要求

  • 使用 ENSP 模拟器
  • 在静态路由实验的基础上,新增一条网线连接 RT1 和 RT2 ,使用网段 4:192.168.4.0/24
  • 配置浮动静态路由
  • 配置等价静态路由

实验步骤

  1. RT1 的GE0/0/2口和 RT2 的GE0/0/2口分别配置网段 4 的 IP 地址。
  1. 通过修改静态路由优先级,使一条路由成为备份条目的路由,这就是浮动静态路由。在 RT1 上配置从192.168.4.0/24192.168.2.0/24的浮动静态路由,并且优先级设置为 50。

新增浮动路由前,查看 RT1 上192.168.2.0/24的路由条目。

新增浮动路由后,查看 RT1 上192.168.2.0/24的路由条目。

路由优先级的值越小,静态路由的优先级越高,静态路由的默认路由优先级为 60。因此新增优先级为 50 的静态路由为主路由条目,原来优先级为 60 的静态路由为备份路由。

  1. 当一台路由器上有两条不同的路径去往同一个网络的优先级相同的静态路由时,路由器就会同时使用这两条路由来转发流量,这就是等价静态路由。在 RT1 上配置从192.168.4.0/24192.168.2.0/24的等价静态路由,即使用默认优先级的值 60。
打赏
  • Copyrights © 2017-2023 WSQ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信