动态路由协议RIP、OSPF、IS-IS、BGP说明

路由器收到数据报文,查看报文目的地址并依据路由表将报文转发到下一个路由器。报文经过路由器多次转发后到达目的主机,路由器的转发路径就构成了路由的路径信息。由此可知,路由就是指网络将数据报文从源地址传输到目的地址的路径,最优路径将会以路由条目的形式存储在路由表中。路由过程发生在TCP/IP协议栈的网络层,将具有路由转发功能的网络设备统称为广义上的路由器,这些网络设备可以是路由器、三层交换机、防火墙等。

路由表
路由器如果想要实现数据报文的转发,需要借助于路由表和转发表。路由器根据路由表进行路径规划,通过转发表执行数据报文转发。路由表是指路由器中存储的一张路由信息表,路由表中存储着各种路由协议计算的路由信息。路由表中包含的关键项有目的地址、网络掩码、路由协议、管理距离、路由开销、下一跳IP地址以及转发接口。直连路由、静态路由和动态路由协议计算出的路由会存储于路由表中。在路由表中选择出最优路由路径后,路由表会将激活路由下发到转发表中,当数据报文到达路由器时,会通过查找转发表来进行数据报文的转发。

动态路由协议
为实现路由转发功能,路由器通过静态路由配置和动态路由协议两种方式来获取路由路径并维护路由表。面向当前日益变更的网络结构,静态路由具有较大的局限性。

静态路由配置的局限性
静态路由配置是指通过网络管理员手工配置固定的路由信息,由此实现数据报文的转发。静态路由配置方便,但每当网络拓扑结构发生变化,都需要重新手工配置其路由信息,不能自动适应于网络的更迭。因此静态路由配置适用于网络拓扑结构简单并且结构稳定的小型网络。静态路由配置的局限性如下所示:
● 配置和维护耗费时间和人力资源。
● 随着网络的扩展,维护工作会变得复杂。
● 配置过程容易出现差错,特别是对于一些大型且结构复杂的网络。
● 如果网络中某个网段出现错误,无法自适应的变更路径,将导致包含该条路由路径上的数据报文转发出错。

 动态路由协议
通过网络管理员配置静态路由会产生巨大的工作量,且后续维护工作也难以高效进行。为解决这个问题,动态路由协议应运而生。通过动态路由协议,路由器采用邻居间交换路由或链路状态信息通告的方式学习远方的路由,并保持动态更新。相比于静态路由配置,采用动态路由协议生成路由表信息的方式具有如下几点优势:
● 网络管理员只需要对动态路由协议执行配置和维护工作即可,相比于静态配置,工作量大大减少。
● 当网络拓扑结构发生变更时,动态路由协议会自适应地更新路由表信息。
● 配置过程不容易出现差错。
● 网络中出现链路故障时,动态路由协议将重新规划路线,绕开出错的网络。

动态路由协议分类
常见的动态路由协议包括RIP、OSPF、IS-IS、BGP。
按照作用范围分类:
● IGP(Interior Gateway Protocol,内部网关协议):在一个AS(Autonomous System,自治系统)内运行的协议,包括RIP,OSPF和IS-IS。
● EGP(Exterior Gateway Protocol,外部网关协议):在不同AS间运行的协议,有BGP。
IGP和EGP的关系示意图

按照路由计算算法分类:
● 距离矢量路由协议:协议包括BGP和RIP。
● 链路状态路由协议:协议包括OSPF和IS-IS。

常见的动态路由协议
RIP
在动态路由协议诞生初期,设备主要使用RIP(Routing Information Protocol,路由信息协议)。RIP是一种单播路由协议,应用于IPv4网络。RIPng(RIP Next Generation,下一代RIP)是RIP的扩展,应用于IPv6网络,两者在原理实现以及功能上相似度较高。运行RIP的设备之间通过交换路由信息,自动获得到达远程网络的路由。
RIP作为一种距离矢量路由协议,通过UDP(端口520)报文进行路由信息的交换,RIPng的UDP端口号为521。RIP使用跳数(Hop Count)作为其度量的单位来衡量到达目的网络的距离。该协议规定当前设备与直连网络的跳数为0,对于非直连网络,每经过一台路由设备跳数值加1,为限制收敛时间,RIP最多允许15跳。若大于15跳,则表示目的网络或主机不可达。基于此限制,使得RIP在大型网络中不适用。
由于RIP协议的简单易用,配置和维护工作量远低于OSPF和IS-IS,所以RIP路由协议在实际小型网络中仍有广泛应用,例如校园网以及结构简单的地区性网络。

OSPF
OSPF(Open Shortest Path First,开放式最短路径优选)是IETF组织开发的一个链路状态路由协议。目前针对IPv4协议使用的是OSPF Version 2(简称OSPFv2),OSPF Version 3(简称OSPFv3)是为了支持IPv6而对OSPF协议进行的扩展。
OSPF采用SPF(Shortest Path First,最短路径)算法。通过LSA(Link State Advertisement,链路状态通告)来转载和传输链路状态信息,以此来描述网络拓扑结构,并依据此网络拓扑结构生成SPT(Shortest Path Tree,最短路径树),由此计算出到达每一个目的地址的最短路径,并将该路径存储于路由表中。
OSPF具备如下特点:
● 网络拓扑结构变更时,路由器之间能够快速通告信息,并实现路由更新。
● 在SPF算法的作用下,路由器之间仅同步链路状态信息,然后生成路径,避免路由环路的产生。
● OSPF支持将网络拓扑划分为多个区域,有助于缓解大规模网络的计算压力。
● 将路由分为多种类型区别对待,支持灵活的控制策略。
● 支持等价路由。
● 支持报文认证,保障协议交互过程的安全。
● 支持以组播地址发送协议报文,可以避免干扰无关者和节省系统资源。
基于以上特点,OSPF广泛应用于规模适中的网络中,即最多可支持几百台路由器的网络,例如中小型企业的网络。

IS-IS
IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)路由选择协议最初是为CLNP(Connectionless Network Service,无连接网络服务)而设计。随着TCP/IP协议栈成为主流,IETF组织对IS-IS进行了修改,使其能够同时适用于TCP/IP和OSI双协议栈,改造后的IS-IS称为Integrated IS-IS或Dual IS-IS。
IS-IS与OSPF一样,采用SPF算法,根据网络拓扑结构生成SPT,计算出到达目的地址的最短路径。为了支持大规模网络,IS-IS采用两级的分层结构,并将一个大的路由域被划分为两个或者多个区域,划分的区域被分成Level-1和Level-2两类,SPF算法分别独立运行于Level-1和Level-2中。且根据区域划分定义了三种路由器角色。
● L1路由器:用于管理区域内的路由。
● L2路由器:用于管理区域间的路由。
● L1/L2路由器:同时属于Level-1和Level-2的路由器。
IS-IS组网分为Level-1和Level-2,如图3-1所示,各区域及相应设备间的关系如下:
● 同一区域内的设备交换信息的结点组成Level-1,区域内的所有设备都知道整个区域的网络拓扑结构,负责区域内的路由交换。任意一个L1路由器与同区域内的L1路由器、L1/L2路由器形成Level-1邻居关系,维护当前所处Level-1的链路状态数据库。
● L1/L2路由器是不同区域的边界设备,用于提供区域连接,L1路由器必须通过L1/L2路由器才能连接至其他区域。任意一个L1/L2路由器可以与同区域的L1和L1/L2路由器形成Level-1邻居关系,也可以与同区域或其他区域的L1/L2路由器、L2路由器形成Level-2邻居关系。L1/L2路由器维护Level-1和Level-2两个链路状态数据库。
● 区域之间通过L2路由器相连接,任意一个L2路由器与同区域或其他区域的L2、L1/L2路由器形成Level-2邻居关系,维护当前所处Level-2的链路状态数据库。所有的L2路由器与L1/L2路由器一同组成路由域的骨干网,负责不同区域间的通信。
IS-IS层次结构图

 

IS-IS具备OSPF特点的同时,在扩展性方面,通过路由器扩展网络路由支撑能力,即采用划分区域来构造两级层次化的网络拓扑结构,并在区域之间使用路由汇总来减少路由器的负担。IS-IS广泛应用于大规模网络的互通。

BGP
为便于管理网络,网络被分割为多个AS。在早期的互联网中,AS间动态交换路由信息使用的是EGP(Exterior Gateway Protocol,外部网关协议),EGP是一种简单的网络可达性协议,只适用于树状拓扑网络,无法满足日渐复杂的网络管理需求,因此EGP最终被BGP(Border Gateway Protocol,边界网关协议)取代。BGP可以实现环路避免和路由优选,在路由传输功能上更为高效,并提供了更好的扩展性。
BGP是一种在AS间自动交换无环路路由信息的动态路由协议。BGP经历了不同的发展阶段,早期发布过三个版本,分别是BGP-1(RFC 1105)、BGP-2(RFC 1163)以及BGP-3(RFC 1267)。目前使用的版本BGP-4(RFC 4271)作为当前AS间的标准路由协议被广泛应用。
在每个AS内运行BGP协议并发送BGP报文的设备称为BGP Speaker(BGP发言者)。相同AS内的BGP Speaker之间的邻居关系,称为IBGP(Internal BGP,内部边界网关协议)邻居,从IBGP邻居学习到的路由称为IBGP路由,IBGP用于完成路由信息在本AS内的过渡。不同AS间的BGP Speaker之间的邻居关系,称为EBGP(External BGP,外部边界网关协议)邻居,从EBGP邻居学习到的路由称为EBGP路由,EBGP用于完成不同AS间路由信息的交换。
动态路由协议之间的优先级顺序为EBGP高于IGP,而IGP又高于IBGP。
BGP协议的特性如下:
● 不同于RIP、OSPF、IS-IS等IGP着重于计算路由,BGP重点在于在AS间选择最佳路由和控制路由的传输,适用于承载大规模路由的网络。
● BGP使用TCP协议作为传输协议,通过TCP协议的可靠传输机制保证BGP传输的可靠性。
● BGP作为距离矢量路由协议,将本地选取的最优路由传输给邻居路由器,避免环路的产生。
BGP是为处于不同AS间的路由器实现路由信息交换提供保障,但并不是所有情况都需要运行BGP。
需要使用BGP的情况如下:
● BGP的应用场景如图所示,当设备或主机需要同时连接两个或者多个ISP(Internet Service Provider,互联网服务提供商)时,ISP需要向设备或主机提供完整或者部分Internet路由,此时,需要通过BGP来决定选择哪个ISP的AS来到达目的地址更具经济性。
● 设备或主机之间需要传输AS间的路由。
● 设备或主机需要通过三层VPN传输私网路由。
● 设备或主机需要传输组播路由,构造组播拓扑。
BGP应用场景图

 

不需要使用BGP的情况如下:
● 设备或主机只与一个ISP相连。
● ISP不需要向设备或主机提供Internet路由。
● AS间使用了缺省路由进行连接。

总结 
为实现不同网络间的数据报文转发,路由器、路由表以及路由协议缺一不可。在路由表中保存着各种路由信息,用于指导路由器转发。动态路由协议用于计算路由、学习路由,并将路由信息加入路由表。动态路由协议的产生解决了静态路由配置的局限性,面对不同的网络场景,需要应用不同的动态路由协议,从而实现效益最大化。

ICP备案号:晋ICP备18007549号-1
站长微信:15534641008