学习笔记——路由网络基础

IP路由原理描述

IP路由概述简介

路由器提供将异构网互联的机制,实现将一个数据包从一个网络发送到另一个网络。路由就是指导IP数据包发送的路径信息。

根据路由目的地的不同,路由可划分为:

  • 网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。

  • 主机路由:掩码长度是32位的路由,表明此路由匹配单一IP地址

路由的来源

  • 直连路由:直连路由不需要配置,当接口存在IP地址并且状态正常时,由路由进程自动生成。它的特 点是开销小,配置简单,无需人工维护,但只能发现本接口所属网段的路由。

  • 静态路由: 由管理员手工配置而成的路由称之为静态路由。通过静态路由的配置可建立一个互通的网 络,但这种配置问题在于:当一个网络故障发生后,静态路由不会自动修正,必须有管理员的 介入。静态路由无开销,配置简单,适合简单拓扑结构的网络。

  • 动态路由: 发现的路由 当网络拓扑结构十分复杂时,手工配置静态路由工作量大而且容易出现错误,这时就可用 动态路由协议(如RIP、OSPF等),让其自动发现和修改路由,避免人工维护。但动态路由协 议开销大,配置复杂。

路由器及路由基本原理

路由器及路由基本原理

在因特网中,网络连接设备用来控制网络流量和保证网络数据传输质量。常见的网络连接设备有集线器(Hub)、网桥(Bridge)、交换机(Switch)和路由器(Router)。这些设备的基本原理类似,下面就以路由器为例来介绍一下设备的基本原理。

路由器是能够将数据报文在不同逻辑网段间转发的网络设备。路由(Route)是指导路由 器如何进行数据报文发送的路径信息。每条路由都包含有目的地址、下一跳、出接口、到目的 地的代价等要素,路由器根据自己的路由表对IP报文进行转发操作。

路由器提供将异构网互联的机制,实现将一个数据包从一个网络发送到另一个网络。路由就是指导IP数据包发送的路径信息。

当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中优选路由进行转发。优选路由的选取与发现此路由的路由协议的优先级、路由的度量有关。当多条路由的协议优先级与路由度量都相同时,可以实现负载分担,缓解网络压力;当多条路由的协议优先级与路由度量不同时,可以构成路由备份,提高网络的可靠性。

静态路由与动态路由

路由器不仅支持静态路由,同时也支持RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、IS-IS(Intermedia System-Intermedia System)和BGP(Border Gateway Protocol)等动态路由协议。

静态路由与动态路由的区别

路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。依据来源的不同,路由可以分为三类:

  • 通过链路层协议发现的路由称为直连路由。
  • 通过网络管理员手动配置的路由称为静态路由。
  • 通过动态路由协议发现的路由称为动态路由。

静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。
动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。

动态路由的分类

对动态路由协议的分类可以采用以下不同标准:

根据作用范围不同,路由协议可分为:

  • 内部网关协议IGP:在一个自治系统内部运行。常见的包括RIP、OSPF和IS-IS。
  • 外部网关协议EGP:运行于不同自治系统之间。BGP是最常见的EBGP协议

根据使用算法不同,路由协议可分为:

  • 距离矢量协议:包括RIP和BGP。其中,BGP也被称为路径矢量协议。
  • 链路状态协议:包括OSPF和IS-IS。

以上两种算法的主要区别在于发现路由和计算路由的方法不同。

路由表和转发表

路由器转发数据包的关键是路由表和FIB表,每个路由器都至少保存着一张路由表和一张转发表。路由器通过路由表选择路由,通过转发表指导报文进行转发。

路由表

每台路由器中都保存着一张本地核心路由表(即设备的IP路由表),同时各个路由协议也维护着自己的路由表。

  • 本地核心路由表

路由器使用本地核心路由表用来保存决策优选路由,并负责把优选路由下发到FIB表,通过FIB表指导报文进行转发。这张路由表依据各种路由协议的优先级和度量值来选取路由。

  • 协议路由表

协议路由表中存放着该协议发现的路由信息。

路由协议可以引入并发布其他协议生成的路由。例如,在路由器上运行OSPF协议,需要使用OSPF协议通告直连路由、静态路由或者IS-IS路由时,要将这些路由引入到OSPF协议的路由表中。

路由表中的内容

在路由器中,执行命令display ip routing-table时,可以查看路由器的路由表概要信息,如下所示:

display ip routing-table

display ip routing-table

Proto: Protocol Pre: Preference

Route Flags: R - relay, D - download to fib, T - to vpn-instance

——————————————————————————————————

Routing Table: public

Destinations : 10 Routes : 10

Destination/Mask   Proto  Pre  Cost   Flags  NextHop      Interface

    0.0.0.0/0   Static  60   0    RD   192.168.10.1    Vlanif999

  20.20.20.0/24  Direct   0    0      D   20.20.20.20     Vlanif20

  20.20.20.20/32  Direct   0    0      D   127.0.0.1       InLoopBack0

 20.20.20.255/32  Direct   0    0      D   127.0.0.1       InLoopBack0

  20.20.30.0/24     Direct   0    0      D   20.20.30.1      LoopBack0

……(太多了敲不下去了)

路由表中包含了下列关键项:

字段描述
Destination/Mask目的地址/掩码长度
Proto发现改路由的路由协议
Pre路由优先级
Cost路由度量值
Nexthop此路由的下一跳地址
Interface此路由的出接口,到达目的网段的数据包从此接口发出

FIB表的匹配

在路由表选择出路由后,路由表会将激活路由下发到FIB表中。当报文到达路由器时,会通过查找FIB表进行转发。

FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

FIB表的匹配遵循最长匹配原则。查找FIB表时,报文的目的地址和FIB中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表项中的网络地址则匹配。最终选择一个最长匹配的FIB表项转发报文。

例如,一台路由器上的路由表如下:

路由表

Routing Tables:

Destination/Mask  Proto  Pre  Cost  Flags   NextHop     Interface

    0.0.0.0/0  Static  60   0   D     192.168.1.1    GigabitEthernet1/0/0

   11.1.0.0/16  Static  60   3   D     192.168.1.1    GigabitEthernet1/0/0

   12.1.0.0/16  Static  60   50   D     172.16.1.1     GigabitEthernet3/0/0

   12.1.1.0/24  Static  60    4   D     192.168.1.1    GigabitEthernet2/0/0

   20.20.0.0/16  Direct  0    0   D     172.16.1.1     GigabitEthernet4/0/0

一个目的地址是12.1.1.2的报文进入路由器,查找对应的FIB表。

FIBb表

Routing Tables:

Destination/Mask  Nexthop   Flag  TimeStamp   Interface        TunnelID

    0.0.0.0/0  192.168.1.1  SU    t[37]      GigabitEthernet1/0/0   0x0

   11.1.0.0/16  192.168.0.2  DU   t[37]      GigabitEthernet1/0/0   0x0

   12.1.0.0/16  172.16.1.1   DU   t[9992]     GigabitEthernet3/0/0   0x0

   12.1.1.0/24  192.168.1.1  DU   t[9992]     GigabitEthernet2/0/0   0x0

   20.20.0.0/16  172.16.1.1   U    t[9992]     GigabitEthernet4/0/0   0x0

首先,目的地址10.9.1.2与FIB表中各表项的掩码“0、16、24”作“逻辑与”运算,得到下面的网段地址:0.0.0.0/0、12.1.0.0/16、10.1.1.0/24。这三个结果可以匹配到FIB表中对应的三个表项。最终,路由器会选择最长匹配12.1.1.0/24表项,从接口GE2/0/0转发这条目的地址是12.1.1.2的报文。

路由迭代

路由必须有直连的下一跳才能指导转发 在下一跳不是直连邻居的时候 就需要计算出直连邻居的下一跳,这个过程就叫做路由迭代。BGP路由、静态路由和UNR路由的下一跳都有可能不是直连的,都需要进行路由迭代。

例如,BGP路由的下一跳一般是非直连的对端loopback地址,不能指导转发,需要进行迭代。即根据以BGP学习到的下一跳为目的地址在IP路由表中查找,当找到一条具有直连的下一跳、出接口信息的路由后(一般为一条IGP路由),将其下一跳、出接口信息填入这条BGP路由的IP路由表中并生成对应的FIB表项。

路由协议的优先级

路由优先级(preference)代表路由的优先程度。当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,路由器会比较这些路由的优先级,优选优先级值最小的路由。

路由来源的优先级值(Preference)越小代表加入路由表的优先级越高(优先级的取值范围1-255)

拥有最高优先级的路由将被添加进路由表。

路由器分别定义了外部优先级和内部优先级。外部优先级是指用户可以手工为各路由协议配置的优先级。

路由协议缺省时的外部优先级

路由协议的类型路由协议的外部优先级
Direct0
OSPF10
IS-IS15
Static60
RIP100
OSPF ASE150
BGP255

其中,0表示直接连接的路由,255表示任何来自不可信源端的路由;数值越小表明优先级越高。
除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。

路由协议内部优先级

路由协议的类型路由协议的外部优先级
Direct0
OSPF10
IS-IS Level-115
IS-IS Level-218
Static60
RIP100
OSPF ASE150
IBGP200
IBGP20

选择路由时先比较路由的外部优先级,当不同的路由协议配置了相同的优先级后,系统会通过内部优先级决定哪个路由协议发现的路由将成为最优路由。例如,到达同一目的地10.1.1.0/24有两条路由可供选择,一条静态路由,另一条是OSPF路由,且这两条路由的外部优先级都被配置成5。这时路由器系统将根据内部优先级进行判断。因为OSPF协议的内部优先级是10,高于静态路由的内部优先级60。所以系统选择OSPF协议发现的路由作为最优路由。

负载分担与路由备份

当多条路由的路由优先级和路由度量都相同时,这几条路由就称为等价路由,多条等价路由可以实现负载分担。当这几条路由为非等价路由时,就可以实现路由备份。

负载分担

路由器支持多路由模式,即允许配置多条目的地相同且优先级也相同的路由。当到达同一目的地存在同一路由协议发现的多条路由时,且这几条路由的开销值也相同,那么就满足负载分担的条件。

当实现负载分担时,路由器根据五元组(源地址、目的地址、源端口、目的端口、协议)进行转发,当五元组相同时,路由器总是选择与上一次相同的下一跳地址发送报文。当五元组不同时,路由器会选取相对空闲的路径进行转发。

浮动静态路由(路由备份和冗余)

浮动静态路由是两条或多条链路组成浮动路由。当到达某一网络有多条路径,通过为静态路由设置不同的优先级,你可以指定主用路径和备用路径。当主用路径不可用时,走备用路径的静态路由进入路由表,数据包通过备用路径转发到目标网络,这就是浮动路由。

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

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

RTA-RTB之间的链路正常时,20.0.0.0/30的两条路由条目都是有效的条目,此时比较优先级,下一跳为10.1.1.2的优先级60,下一跳为10.1.2.2的优先级70,因此下一跳为10.1.1.2的加入路由表。

RTA-RTB之间的链路故障时,10.1.1.2不可达,因此下一跳为10.1.1.2的路由失效,此时前往20.0.0.0/30的路由就只存在一条,该条路由将会被选入路由表。前往20.0.0.1的流量将会被转发10.1.2.2。

浮动静态路作用

1· 是保持网络的不中断。浮动路由在同一时刻,数据只会由一条链路代为转发。

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

缺省路由

缺省路由是另外一种特殊的路由。简单来说,缺省路由是没有在路由表中找到匹配的路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。如果没有缺省路由且报文的目的地址不在路由表中,那么该报文将被丢弃,并向源端返回一个ICMP(Internet Control Message Protocol)报文,报告该目的地址或网络不可达。

在路由表中,缺省路由以到网络0.0.0.0(掩码也为0.0.0.0)的路由形式出现。可通过命令display ip routing-table查看当前是否设置了缺省路由。通常情况下,管理员可以通过手工方式配置缺省静态路由;但有些时候,也可以使动态路由协议生成缺省路由,如OSPF和IS-IS。