📜  计算机网络中的路由表

📅  最后修改于: 2021-09-28 10:53:24             🧑  作者: Mango

路由器:
路由器是一种在计算机网络之间转发数据包的网络设备。该设备通常连接到两个或多个不同的网络。当数据包到达路由器端口时,路由器会读取数据包中的地址信息,以确定该数据包将发送到哪个端口。例如,路由器通过将您的 LAN 连接到 Internet 为您提供 Internet 访问。

当数据包到达路由器时,它会检查接收到的数据包的目标 IP 地址并相应地做出路由决策。路由器使用路由表来确定将发送数据包的接口。路由表列出了已知路由的所有网络。每个路由器的路由表都是唯一的,并存储在设备的 RAM 中。

路由表:
路由表是一组规则,通常以表格格式查看,用于确定通过 Internet 协议 (IP) 网络传输的数据包将被定向到何处。所有支持 IP 的设备,包括路由器和交换机,都使用路由表。请参阅下面的路由表:

Destination      Subnet mask         Interface
 128.75.43.0      255.255.255.0       Eth0
 128.75.43.0      255.255.255.128     Eth1
 192.12.17.5      255.255.255.255     Eth3
 default                              Eth2

默认网关配置对应的条目是网络目的地为 0.0.0.0,网络掩码(netmask)为 0.0.0.0。默认路由的子网掩码始终为 255.255.255.255 。

IP路由表的条目:
路由表包含沿最佳路径向目的地转发数据包所需的信息。每个数据包都包含有关其来源和目的地的信息。路由表为设备提供了将数据包发送到其跨网络路由上的下一跳的指令。

路由表中的每个条目由以下条目组成:

  1. 网络标识:
    路由对应的网络ID或目的地。
  2. 子网掩码:
    用于将目标 IP 地址与网络 ID 匹配的掩码。
  3. 下一跳:
    数据包转发到的 IP 地址
  4. 输出接口:
    数据包应该出去到达目的网络的传出接口。
  5. 指标:
    度量的一个常见用途是指示到网络 ID 的最小跃点数(跨越的路由器)。

路由表条目可用于存储以下类型的路由:

  • 直接连接的网络 ID
  • 远程网络 ID
  • 主机路由
  • 默认路由
  • 目的地

路由表是如何填充的?
有几种方法可以维护路由表:

  • 自动添加直接连接的网络。
  • 使用静态路由。
  • 使用动态路由。

这些路由表可以手动或动态维护。在动态路由中,设备通过使用路由协议来交换有关周围网络拓扑的信息来自动构建和维护它们的路由表。动态路由表允许设备“监听”网络并响应设备故障和网络拥塞等事件。静态网络设备的表不会更改,除非网络管理员手动更改它们。

路由确定过程(使用路由表查找子网 ID):
考虑将网络划分为 4 个子网,如上图所示。 4个子网的IP地址是:

200.1.2.0 (Subnet a)
200.1.2.64 (Subnet b)
200.1.2.128 (Subnet c)
200.1.2.192 (Subnet d) 

然后,内部路由器维护的路由表如下所示:

Destination Subnet Mask Interface
200.1.2.0 255.255.255.192 a
200.1.2.64 255.255.255.192 b
200.1.2.128 255.255.255.192 c
200.1.2.192 255.255.255.192 d
Default 0.0.0.0 e

为了找到正确的子网(子网ID),路由器将数据包上提到的目的IP地址和所有子网掩码一一进行按位与运算。

  • 如果只匹配一次,则路由器在相应的接口上转发数据包。
  • 如果出现多个匹配,则路由器在最长子网掩码对应的接口上转发数据包。
  • 如果不匹配,则路由器在默认表项对应的接口上转发数据包。

示例 1: GATE-CS-2004 |第 55 题

示例 2: GATE IT 2006 |第 63 题

请注意,路由表并非特定于 Cisco 设备。即使你的 Windows 操作系统也有一个路由表,可以使用 route print 命令显示