4. IP 路由基础

4. IP 路由基础

网络基础第四课

路由概述

路由基本概念

路由中包含以下信息:

  • 目的网络:标识目的网段
  • 掩码:与目的地址共同标识一个网段
  • 出接口:数据包被路由后离开本路由器的接口
  • 下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址

这些信息标识了目的网段、明确了转发IP报文的路径

路由条目生成

  • 直连路由:直连接口所在网段的路由,由设备自动生成。
  • 静态路由:由网络管理员手工配置的路由条目
  • 动态路由:路由器通过动态路由协议(如 OSPF、IS-IS、BGP 等)学习到的路由

路由表中各个内容的含义

  • Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为 1.1.1.1,掩码为 255.255.255.0 的主机或路由器所在网段的地址为1.1.1.0。

  • Proto(Protocol):该路由的协议类型,也即路由器是通过什么协议获知该路由的。

  • Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。

  • Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。

  • NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。

  • Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。

最优路由条目优选

  • RTA 通过动态路由协议 OSPF 和手动配置的方式都发现了到达 10.0.0.0/30 的路由,此时会比较这两条路由的优先级,优选优先级值最小的路由。

  • 每一种路由协议都有相应的优先级。

  • OSPF 拥有更优的优先级,因此通过 OSPF 学习到的路由被添加到路由表中。

路由转发

  • 最长匹配原则:当路由器收到一个 IP 数据包时,会将数据包的目的 IP 地址与自己本地路由表中的所有路由表项进行逐位(Bit-By-Bit)比对,直到找到匹配度最长的条目,这就是最长前缀匹配机制。

静态路由

静态路由配置

  1. 关联下一跳 IP 的方式

    [Huawei] ip route-static ip-address { mask | mask-length } nexthop-address

  2. 关联出接口的方式

    [Huawei] ip route-static ip-address { mask | mask-length } interface-type interface-number

  3. 关联出接口和下一跳 IP 的方式

    [Huawei] ip route-static ip-address { mask | mask-length } interface-type interface-number [ nexthop-address ]

在创建静态路由时,可以同时指定出接口和下一跳。对于不同的出接口类型,也可以只指定出接口或只指定下一跳。

对于点到点接口(如串口),必须指定出接口。

对于广播接口(如以太网接口)和 VT(Virtual-template)接口,必须指定下一跳。

缺省路由

  • 缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。

  • 缺省路由在路由表中的形式为 0.0.0.0/0,缺省路由也被叫做默认路由

    [RTA] ip route-static 0.0.0.0 0 10.0.0.2

  • 缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往 Internet 上任意地址的 IP 报文

动态路由

动态路由分类

  • 根据路由信息传递的内容、计算路由的算法,可以将动态路由协议分为两大类:

    1. 距离矢量协议(Distance-Vector Protocol)

      • RIP
    2. 链路状态协议(Link-State Protocol)

      • OSPF
      • IS-IS
    3. BGP 使用一种基于距离矢量算法修改后的算法,该算法被称为路径适量(Path Vector)算法。因此在某些场合下,BGP 也被称为路径矢量路由协议

  • 根据工作范围不同,又可以分为:

    1. 内部网关协议 IGP(Interior Gateway Protocol):在一个自治系统内部运行。RIP、OSPF、ISIS 为常见的 IGP 协议。

    2. 外部网关协议 EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP 是目前最常用的 EGP 协议。

路由高级特性

路由递归

  • 路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。

  • 路由递归也被称为路由迭代

等价路由

来源相同、开销相同的路由都会被加入路由表,形成的路由为等价路由(两个路由条目指向的目的网段相同,但是具有不同的下一跳地址),路由转发会将流量分布到多条路径上

路由表中存在等价路由之后,前往该目的网段的 IP 报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担

浮动路由

  • 静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份。

  • 浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。

    [RTA] ip route-static 20.0.0.0 30 10.1.1.2
    [RTA] ip route-static 20.0.0.0 30 10.1.2.2 preference 70

路由汇总

CIDR

  • CIDR(classless inter-domain routing,无类别域间路由)采用 IP 地址加掩码长度来标识网络和子网,而不是按照传统 A、B、C 等类型对网络地址进行划分。

  • CIDR 容许任意长度的掩码长度,将 IP 地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。

路由汇总需求

  • 子网划分、VLSM 解决了地址空间浪费的问题,但同时也带了新的问题:路由表中的路由条目数量增加。

  • 在保证网络中的路由器到各网段都具备 IP 可达性的同时,需要减小设备的路由表规模。一个网络如果具备科学的 IP 编址,并且进行合理的规划,是可以利用多种手段减小设备路由表规模的。一个非常常见而又有效的办法就是使用路由汇总(Route Summarization)。路由汇总又被称为路由聚合(Route Aggregation),是将一组有规律的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。

路由汇总简介

  • 路由汇总采用了 CIDR 的思想:将相同前缀的地址聚合成一个

  • 我们把汇聚之前的这组路由称为精细路由明细路由,把汇聚之后的这条路由称为汇总路由聚合路由

路由汇总带来的问题

  1. 环路

    环路的解决方案:

    • 在 RTB 上增加一条指向 Null0 的路由,即可解决上述问题。

      [RTB] ip route-static 10.1.0.0 16 0 NULL0

    • 一般来说一条路由,无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口。路由的出接口可以是该设备的物理接口,例如百兆、千兆以太网接口,也可以是逻辑接口,例如 VLAN 接口(VLAN Interface),或者隧道(Tunnel)接口等。在众多类型的出接口中,有一种接口非常特殊,那就是 Null(无效)接口,这种类型的接口只有一个编号,也就是 0。Null0 是一个系统保留的逻辑接口,当网络设备在转发某些数据包时,如果使用出接口为 Null0 的路由,那么这些报文将被直接丢弃,就像被扔进了一个黑洞里,因此出接口为 Null0 的路由又被称为黑洞路由

  2. 精确汇总

    为了让 RTA 能够到达 RTB 上的 172.16.1.0/24-172.16.31.0/24 网段,配置了一条静态的汇总路由,这条网段虽然优化了网络配置,但是汇总的范围太广,将 RTC 上的网段也包括在内,导致前往 RTC 上网段的流量到达 RTA 之后会被发往 RTB,造成数据包的丢失,这种路由为不精确的路由。为此配置汇总路由时要尽量精确,刚好包括所有明细路由。

Comment