第05章_IP路由基础

  • 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。
  • 路由是数据通信网络中最基本的要素。路由信息是指导报文转发的路径信息,路由过程就是报文转发的过程。
  • 本课程将会向读者介绍路由的基本概念。

1.路由基本概念

1.1自治系统

  • 自治系统(AS):由同一个管理机构管理、使用统一路由策略的路由器的集合。

image-20231101231325718

  • 一般地我们可以把一个企业网络认为是一个自治系统AS(Autonomous System)。根据RFC1030的定义,自治系统是由一个单一实体管辖的网络,这个实体可以是一个互联网服务提供商,或一个大型组织机构。
  • 自治系统内部遵循一个单一且明确的路由策略。最初,自治系统内部只考虑运行单个路由协议;然而,随着网络的发展,一个自治系统内现在也可以支持同时运行多种路由协议。

1.2LAN和广播域

image-20231101231441686

  • 一个AS通常由多个不同的局域网组成。以企业网络为例,各个部门可以属于不同的局域网,或者各个分支机构和总部也可以属于不同的局域网。局域网内的主机可以通过交换机来实现相互通信。不同局域网之间的主机要想相互通信,可以通过路由器来实现。路由器工作在网络层,隔离了广播域,并可以作为每个局域网的网关,发现到达目的网络的最优路径,最终实现报文在不同网络间的转发。

  • 此例中,RTA和RTB把整个网络分成了三个不同的局域网,每个局域网为一个广播域。LAN1内部的主机直接可以通过交换机实现相互通信,LAN2内部的主机之间也是如此。但是,LAN1内部的主机与LAN2内部的主机之间则必须要通过路由器才能实现相互通信。

1.3网段间通信

image-20231028231740801

  • 通过IP地址能够寻找到一个唯一的网络节点,每个IP都有自己所属的网段,这些网络可能分布在世界各地,共同组成了全球的网络。
  • 为了实现不同网段之间的相互通信,网络设备需要能够转发来自不同网段的IP报文,将其送达不同的IP网段。

1.3.1路由

  • 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。
  • 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器
  • 路由设备维护着一张路由表,保存着路由信息。

image-20231028231910743

  • 网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发
  • 中间节点选择路径所依赖的表项为称为路由表
  • 路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上。

路径信息:

  1. 目的网络号
  2. 下一跳地址
  3. 本地出接口

1.3.2路由信息介绍

image-20231028232116397

  • 通过路由中包含的信息,路由设备可以转发IP报文到相应的路径。
  • 目的地址、掩码用于识别IP报文目的地址,路由设备将IP报文匹配到相应的路由之后,根据路由的出接口、下一跳确认转发的路径。
  • 只有出接口并不能够确认转发IP报文的下一跳设备,还需要明确的下一跳设备地址。

1.3.3路由表

image-20231028232522385

  • 路由器依据路由表转发报文。
  • 路由表由一条条详细的路由条目组成。
  • 路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的”路由。
  • 对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现。

  • 路由表中包含了路由器可以到达的目的网络。目的网络在路由表中不存在的数据包会被丢弃。

image-20231101231717530

  • 路由器转发数据包的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。路由表中包含了下列关键项:

    • 目的地址(Destination):用来标识IP数据包的目的地址或目的网络。

    • 网络掩码(Mask):在IP编址课程中已经介绍了网络掩码的结构和作用。同样,在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。

    • 输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。

    • 下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。

    • 路由表中优先级、度量值等其他的几个字段我们将在第3节进行介绍。

1.3.4IP路由过程

image-20231229222211915

  • 当路由器(或其他三层设备)收到一个IP数据包时,会查看数据包的IP头部中的目的IP地址,并在路由表中进行查找,在匹配到最优的路由后,将数据包扔给该路由所指的出接口或下一跳。

1.3.5路由器转发数据包

image-20231229222438341

  • 路由器需要知道下一跳和出接口才能将数据转发出去。

2.路由条目生成

2.1路由信息获取方式

  • 路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由,以下为常见的路由获取方式。

image-20231028232704900

  • 直连路由:直连接口所在网段的路由,由设备自动生成(只要接口配置了IP地址并且开启)。

    • 自动生成其网段路由,主机路由,和广播路由(以至192.168.1.1为例)

      image-20231230000325360

  • 静态路由:由网络管理员手工配置的路由条目

  • 动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由

image-20231229235327270

2.2直连路由

image-20231028232858398

  • 当匹配中直连路由进行转发时,此时路由器会查看==ARP表项==,将报文直接转到目的地址,此时该路由器为路由转发的最后一跳路由器。
  • 直连路由的下一跳地址并不是其他设备上的接口地址,因为该路由的目的网段为接口所在网段,本接口就是最后一跳,不需要再转发给下一跳,所以在路由表中的下一跳地址就是接口自身地址。
  • 使用直连路由进行路由转发时,转发的动作不是交给下一跳,而是查询ARP表项,根据ARP表项封装报文,将报文发送到目的IP。

image-20231028233312961


3.最优路由条目优选

3.1查看IP路由表

image-20231028233603569

  • 默认路由优先级:

    • 直连路由:0
    • 静态路由:60
    • RIP:100
    • OSPF:10
    • OSPD-ASL:150
    • ISIS:15
    • BGP:255
    • 隐藏内部优先级和默认优先级一样

3.2路由表中各个内容的含义

  • Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。
  • Proto(Protocol):该路由的协议类型,也即路由器是通过什么协议获知该路由的。
  • Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
  • Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
  • NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
  • Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。
  • Preference用于不同路由协议间路由优先级的比较,
  • Cost用于同一种路由协议内部不同路由的优先级的比较。在业界,Cost也被称为路由度量值(Metric)。

3.3路由优先级

3.3.1基本概念

image-20231028235052688

3.3.2比较过程

image-20231028235234105

  • RTA通过静态、动态路由协议学习到相同的路由条目,比较路由协议优先级,OSPF优先。OSPF的路由条目被加入到路由表。

3.3.3常见默认数值

  • 常见路由类型的默认优先级如下:

image-20231029001420867

  • 这里例举了一些常见的路由协议优先级,实际上动态路由的类型存在多种,我们将会在后续的学习中详细地了解它们,上表中只展示了OSPF的路由优先级。

3.4度量值

3.4.1基本概念

image-20231029001617376

3.4.2比较过程

image-20231029001820039


4.路由转发

4.1最长匹配原则

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

image-20231029003720674

4.2最长匹配示例

image-20231029003803496

image-20231029003823465

4.3路由转发流程

image-20231029003909431

  • 来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后,R2通过查找路由表项转发给R3,R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发。

5.转发方式

5.1单播

  • Unicast
  • 发送给单个目标
  • 无广播域限制

image-20231226173744831

image-20231226173753925

5.2广播

  • Broadcast

  • 发送给所有目标

  • MAC地址=FFFFFFFFFFFF

  • IP地址=该网段的广播地址

  • 有广播域限制

image-20231226173828981

image-20231226173841749

5.3组播

  • Multicast

  • 发送给一组目标

  • MAC地址=01-00-5E开头

  • IP地址=D类组播地址

  • 无广播域限制

image-20231226173942990

image-20231226173953863

6.IP路由表小结

  • 当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表。
  • 当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。
  • 路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。
  • 数据通信往往是双向的,因此要关注流量的往返(往返路由)。

路由器在选择最优路由时,会首先根据路由的优先级选择哪些路由可以放入路由表中;如果优先级相等,再比较metric数值,决定哪些路由放入路由表;最后在查路由表时根据最长掩码匹配原则选择路由表项指导数据报文转发。

Preference字段在路由表中代表了路由优先级。设备厂商会在各自的产品中为不同的路由协议规定不同的优先级。