ensprip引入静态路由_IP路由概述及原理

IP路由概述及原理

IP路由概述简介

路由信息就是指导报文发送的路径信息,路由的过程就是报文转发的过程。

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

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

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

根据目的地与该路由器是否直接相连,路由又可划分为:

直连路由:目的地所在网络与路由器直接相连。

间接路由:目的地所在网络与路由器非直接相连。

根据目的地址类型的不同,路由还可以分为:

单播路由:表示将报文转发的目的地址是一个单播地址。

组播路由:表示将报文转发的目的地址是一个组播地址。

路由器及路由基本原理

在因特网中,网络连接设备用来控制网络流量和保证网络数据传输质量以及发现学习路由并指导报文转发。常见的网络连接设备有集线器(Hub)、网桥(Bridge)、交换机(Switch)和路由器(Router)。

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

静态路由与动态路由

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

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

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

通过链路层协议发现的路由称为直连路由。

通过网络管理员手动配置的路由称为静态路由。

通过动态路由协议发现的路由称为动态路由。

静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。

动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。

动态路由的分类

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

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

内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。

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

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

距离矢量协议(Distance-Vector Protocol):包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。

链路状态协议(Link-State Protocol):包括OSPF和IS-IS。

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

路由表和FIB表

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

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

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

对于支持L3VPN(Layer 3 Virtual Private Network)的路由器,每一个VPN-Instance拥有一个自己的管理路由表(本地核心路由表)。

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

要能看懂 路由表中的内容

命令:display ip routing-table

9f9d8a99aa26c270b4d8a2e00437d386.png

Route Flags:路由标记;R是relay的首字母,说明是迭代路由,会根据路由下一跳的IP地址获取出接口。配置静态路由时如果你只指定下一跳IP地址,而不指定出接口,那么就是迭代路由,需要根据下一跳IP地址的路由获取出接口

D是download的首字母,表示该路由下发到FIB表。

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

Proto:表示学习此路由的路由协议。

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

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

说明:Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。

NextHop:表示此路由的下一跳地址。指明数据转发的下一个设备。

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

路由迭代

路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由迭代。BGP路由、静态路由和UNR路由的下一跳都有可能不是直连的,都需要进行路由迭代。

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

对于BGP私网路由,需要隧道进行转发,路由的下一跳一般是远端PE的Loopback地址,不能指导转发,也需要进行路由迭代,即在隧道列表中查找到达该Loopback地址的隧道,将该隧道信息填入路由表中并生成对应的FIB表项。

路由协议的优先级

某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。为了判断最优路由,各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级(取值较小)的路由协议发现的路由将成为最优路由,并将最优路由放入本地路由表中。

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

0表示直接连接的路由,255表示任何来自不可信源端的路由;数值越小表明优先级越高。

除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。

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

当有多个OSPFv2或者OSPFv3进程学习到同一目的地的路由时,而且路由的外部优先级和内部优先级都相同时,系统选择链路开销值较小的路由作为可用路由,如果链路开销值相同,则可以形成负载分担路由。

路由的度量

路由的度量标示出了这条路由到达指定的目的地址的代价,通常以下因素会影响到路由的度量。

路径长度是最常见的影响路由度量的因素。链路状态路由协议可以为每一条链路设置一个链路开销来标示此链路的路径长度。在这种情况下,路径长度是指经过的所有链路的链路开销的总和。距离矢量路由协议使用跳数来标示路径长度。跳数是指数据从源端到目的端所经过的设备数量。例如,路由器到与它直接相连网络的跳数为0,通过一台路由器可达的网络的跳数为1,其余以此类推。

网络带宽是一个链路实际的传输能力。例如,一个10千兆的链路要比1千兆的链路更优越。虽然带宽是指一个链路能达到的最大传输速率,但这不能说明在高带宽链路上路由要比低带宽链路上更优越。比如说,一个高带宽的链路正处于拥塞的状态下,那报文在这条链路上转发时将会花费更多的时间。

负载是一个网络资源的使用程度。计算负载方法包括CPU的利用率和它每秒处理数据包的数量。持续监测这些参数可以及时了解网络的使用情况。

通信开销衡量了一条链路的运营成本。尤其是只注重运营成本而不在乎网络性能的时候,通信开销则就成了一个重要的指标。

负载分担与路由备份

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

负载分担

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

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

系统所允许的负载分担的具体路由条数,与实际产品型号相关。

路由备份

路由备份功能,可以提高网络的可靠性。用户可以根据实际情况,配置到同一目的地的多条路由,其中一条路由的优先级最高,作为主路由,其余的路由优先级较低,作为备份路由。

正常情况下,路由器采用主路由转发数据。当主链路出现故障时,主路由变为非激活状态,路由器选择备份路由中优先级最高的路由转发数据。这样,也就实现了主路由到备份路由的切换。当主链路恢复正常时,由于主路由的优先级最高,路由器重新选择主路由来发送数据。这样,就实现了从备份路由回切到主路由。

IPFRR

快速重路由FRR(Fast Reroute)是指当物理层或链路层检测到故障时将故障消息上报至上层路由系统,并立即启用一条备份链路转发报文。IP FRR是一种快速实现路由备份的方式。

IP FRR的主要实现手段如下:

在主链路可用时,通过设置IP FRR策略,把备份路由的转发信息同时提供给转发引擎。

当转发引擎感知到主链路不可用时,能够在控制平面路由收敛前直接使用备份路径转发报文。

路由的收敛

路由收敛是指网络拓扑变化引起的通过重新计算路由而发现替代路由的行为。随着网络的融合,区分服务的需求越来越强烈。某些路由可能指导关键业务的转发,如VoIP,视频会议、组播等,这些关键的业务路由需要尽快收敛,而非关键路由可以相对慢一点收敛。因此,系统需要对不同路由按不同的收敛优先级处理,来提高网络可靠性。 

按优先级收敛是指系统为路由设置不同的收敛优先级,分为critical、high、medium、low四种。系统根据这些路由的收敛优先级采用相对的优先收敛原则,即按照一定的调度比例进行路由收敛安装,指导业务的优先转发。

缺省路由

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

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

不同路由协议的互相引入

由于采用的算法不同,不同的路由协议可以发现不同的路由。当网络规模比较大,使用多种路由协议时,不同的路由协议间通常需要发布其他路由协议发现的路由。

各路由协议都可以引入其它路由协议的路由、直连路由和静态路由,每种路由协议都有相应的路由引入机制,具体内容请参见各路由协议模块有关引入外部路由的描述。

自治系统

在互联网中,自治系统AS(Autonomous System)是指在一个(有时是多个)实体管辖下的所有IP网络和路由器的网络,它们对互联网执行共同的路由策略。

每一个AS可以支持多个内部网关路由协议。一个AS内的所有网络都被分配同一个AS号,属于一个行政单位管辖。AS号分为2字节AS号和4字节AS号。其中2字节AS号的范围为1至65535。随着时间推进,可分配的2字节AS号已经濒临枯竭,需要将AS号的范围从之前的2字节扩展为4字节,其中4字节AS号的取值范围为1至4294967295。4字节AS号还可以用X.Y的形式表示,其中X的取值范围为1至65535,Y的取值范围为0至65535。

AS号根据在不同的网络上使用可以分为两类,如表1所示:

表1AS号的分类及其取值范围

AS号的类别

2字节AS号

4字节AS号

公有AS号

1~64511

1~64511,65536~4294967295

私有AS号

64512~65535

64512~65535

下一跳分离

定义

下一跳分离是一种提高路由收敛性能的技术,它把路由前缀与下一跳转发信息的直接关系变为间接关系。下一跳分离支持下一跳信息的单独刷新,而不必逐条刷新大量前缀,从而获得较快的收敛速度。

目的

在路由需要迭代的场景中,当IGP路由或隧道发生切换时,快速刷新FIB转发路径,实现流量的快速收敛,降低对业务的影响。

前缀与下一跳映射

下一跳分离的基础是路由前缀与下一跳的映射法则。为了满足不同场景下迭代路由和迭代隧道的需求,下一跳信息由地址族、原始下一跳地址、隧道策略等要素构成。系统给每个下一跳信息分配一个索引,进行迭代并将迭代结果通知路由协议并下发FIB。

按需迭代

按需迭代是当依赖路由变化时,只对相关的下一跳进行重新迭代。如果路由的目的地址是某个下一跳信息的原始下一跳地址,或是其网段地址,则路由变化时会影响这个下一跳信息的迭代结果,否则路由的变化对下一跳没有影响。所以,当一条路由发生变化时,通过判断目的地址可以实现只对相关的下一跳进行重新迭代。

对于迭代隧道的情况,当一条隧道的状态(UP/DOWN)改变时,只需要对原始下一跳地址与隧道目的地址相同的下一跳信息进行重新迭代。

迭代策略

迭代策略用于控制下一跳的迭代结果,以满足不同应用场景下的需求。迭代路由时不需要通过策略进行控制,只遵循最长匹配原则。只有私网路由迭代隧道时需要应用隧道策略。

缺省情况下,系统为VPN选择LSP隧道且不进行负载分担。如果要进行负载分担或选择其它类型的隧道,需要配置隧道策略并应用该隧道策略。VPN应用隧道策略后,对其下一跳进行迭代时,选择隧道策略中绑定的隧道,或根据隧道策略中为不同类型的隧道指定的优先级,选择使用的隧道。

下一跳分离下刷

从转发层面看,对于公网路由,只需要下一跳和出接口就能指导转发,对于私网路由,还需要指定公网隧道,在采用下一跳分离下刷之前,转发信息(下一跳、出接口、隧道)需要由前缀直接带到FIB,导致总的收敛时间与前缀数量相关,采用下一跳分离下刷后,大量的前缀与同一个下一跳对应,只需要通过这个下一跳将转发信息带到FIB中,相关前缀的流量就能同时切换。

图1 没有实现下一跳分离时路由的组织形式

52b6205c34df2e3936091c236b4eb4ea.png

如图1所示,没有实现下一跳分离时,前缀之间完全独立,分别对应自己的下一跳和迭代转发信息。当依赖路径变化时,分别对每个前缀对应的下一跳进行迭代,并以前缀为单位下刷,收敛速度与前缀数量相关。

实际上,如果前缀来自同一个BGP邻居,则它们的下一跳和迭代转发信息也一定相同,下刷的迭代转发信息是重复的。

图2 实现下一跳分离时路由的组织形式

b15a391eb0b06012a9fb15c03b4f3b2a.png

如图2所示,实现下一跳分离后,来自同一个邻居的前缀共享同一个下一跳,依赖路径变化时,只对这个共同的下一跳进行迭代,并以下一跳为单位刷新其对应的迭代转发信息。这样所有前缀的流量就可以同时收敛,收敛速度与前缀数量无关。

迭代路由与迭代隧道的比较

迭代路由与迭代隧道的不同如下表所示。

表2迭代路由与迭代隧道的比较

迭代类型

特点

迭代路由

·        对BGP公网路由进行迭代。

·        由路由变化触发迭代。

·        支持按策略迭代下一跳。

迭代隧道

·        对BGP私网路由进行迭代。

·        由隧道或隧道策略变化触发迭代。

·        可通过隧道策略对迭代行为进行控制,满足不同应用场景下的需求。

静态路由与BFD联动

与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。静态路由与BFD联动可为静态路由绑定BFD会话,利用BFD会话来检测静态路由所在链路的状态,具体过程如下:

当某条静态路由上的BFD会话检测到链路故障时,BFD会将故障上报系统,促使该路由失效,使该路由在IP路由表中不可见。

当某条静态路由上的BFD会话检测到故障的链路重新建立成功时,BFD会上报系统,激活该路由,使该路由重新出现在IP路由表中。

静态路由与NQA联动

静态路由本身并没有检测机制,如果非本机直连链路发生了故障,静态路由不会自动改变(不会从IP路由表中自动删除),需要管理员介入,这就无法保证及时进行链路切换,可能造成较长时间的业务中断。

基于以上原因,需要有一种有效的方案来检测静态路由所在的链路。对于静态路由而言,现有的静态路由与BFD联动特性,由于受到互通设备两端都必须支持BFD的限制,在某些应用场景无法实施。而静态路由与NQA(NetworkQuality Analysis)联动则只要求互通设备的其中一端支持NQA即可。

静态路由与NQA联动特性即为静态路由绑定NQA测试例,利用NQA测试例来检测静态路由所在链路的状态,根据NQA的检测结果,决定静态路由是否活跃,达到避免通信的中断或服务质量降低的目的。静态路由与NQA联动特性的功能如下:

如果NQA测试例检测到链路故障,路由器将这条静态路由设置为“非激活”状态(此条路由不可用,从IP路由表中删除)

如果NQA测试例检测到链路恢复正常,路由器将这条静态路由设置为“激活”状态(此条路由可用,添加到IP路由表)

NQA的详细介绍请参见《配置指南-网络管理与监控配置》中的“NQA配置-原理描述”。

静态路由与NQA联动时仅采用ICMP测试例来检测源端到目的端的路由是否可达。

每条静态路由只可以绑定一个NQA测试例。

静态路由永久发布

静态路由永久发布可以为客户提供一种低成本、部署简单的链路检测机制,并提高与其他厂商设备的兼容性。在客户希望确定业务流量的转发路径,不希望流量从其它路径穿越时,静态路由永久发布可以通过Ping静态路由目的地址的方式来检测链路的有效性而达到业务监控的目的。

链路有效性直接影响网络的稳定性和可用性,因此链路状态的检测对网络维护具有重要意义。BFD作为一种常用方案,并不适合所有的场景。例如,在不同的ISP之间,客户更希望采用更简单、更自然的方式来达到这一目的。

配置永久发布属性后,之前无法发布的静态路由仍然被优选并添加到路由表中。具体可以分为以下两种情况:

静态路由配置出接口且出接口的IP地址存在时,无论接口状态是Up或Down,只要配置了永久发布属性,静态路由都会被优选并添加到路由表。

静态路由没有配置出接口时,无论静态路由是否能迭代到出接口,只要配置了永久发布属性,路由都会被优选并添加到路由表中。

这样,通过控制静态路由的优先级和前缀长度,使Ping数据包始终通过静态路由转发,就可以检测出链路的有效性。

该特性不判断路由是否可达而一直会将静态路由保留在IP路由表中,如果实际路径不可达,静态路由可能形成黑洞路由。

自适应向前纠错 A-FEC

A-FEC是什么技术:AdaptiveForward Error Correction的缩写,中文为自适应向前纠错,是一种在编码时通过增加冗余校验信息来降低误码率的一种技术;对于即时通讯类业务,推出自适应前向纠错方案;A-FEC策略需要在AC控制器中开启。

流量工程 TE

trafficengineering:A technology that is used to dynamically monitor the traffic of thenetwork and the load of the network elements, to adjust in real time theparameters such as traffic management parameters, route parameters and resourcerestriction parameters, and to optimize the utilization of network resources.The purpose is to prevent the congestion caused by unbalanced loads.

流量工程: 流量工程是指网络节点可以根据网络中的有效资源建立数据的转发路径,并具有为关键流量预留网络带宽的能力。通过动态监控网络的流量和网元的负载,实时调整流量管理参数、路由参数和资源约束参数等,优化网络资源的使用,避免负载不均导致的拥塞

边界网关协议BGP

2006年之后单播IPv4网络使用的版本是BGP-4,其他网络(如IPv6等)使用的版本是MP-BGP。

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(MulticastBGP)。

网络时间协议NTP

NTP(NetworkTime Protocol)定义了一种时间同步机制,用于在分布式时间服务器和客户端之间进行时间同步。

虚拟扩展局域网VXLAN

VXLAN(VirtualExtensible Local Area Network)采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualizaiton over Layer 3)中的一种网络虚拟化技术。


版权声明:本文为weixin_39768247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。