目录
4.1 RIP(Routing Information Protocol)
4.2 OSPF(Open Shortest Path First)
4.4 BGP(Border Gateway Protocol)
参考
华为的技术支持网站(公开的,作者也是百度查询学习。)
1 什么是核心网
核心网是通信网络的三大组成部分之一(接入网、承载网、核心网),位于网络子系统内,主要负责管理数据,对数据进行分拣,并指示数据应该去往哪里。(核心网一般是有线网络,网络节点不具备自主移动性。)
这种对数据的处理和分发,本质上就是“路由交换”,是核心网的核心功能。
具体关于核心网的定义,感兴趣的小伙伴可以去搜搜别的帖子,本篇不做过多说明。
2 核心网路由协议的分类
核心网的路由协议可以分为如下几类:
![](https://img-blog.csdnimg.cn/direct/c4b023f5c4464a4a836c029620ee83d2.png)
2.1 静态路由
静态路由是指,网络管理员在系统安装时手工配置的,网络结构发生变化后由网络管理员手工修改路由表。
静态路由的优势如下:
-
无需进行路由交换,节省带宽、CPU利用率和路由器内存
-
较高安全性,所有连接到网络的路由器都需在邻近路由器上设置相应路由
-
适用于网络结构简单的小规模网络
静态路由的劣势如下:
-
拓展性差
-
不适合网络拓扑动态变化的网络,配置繁琐
2.2 动态路由
动态路由是指,路由器根据路由算法得到数据传输的最佳路径,建立、更新和维护动态路由表。
动态路由协议又可以根据计算原理,分为基于距离矢量(Distance Vector)和基于链路状态(Link State)的协议。
(1)基于距离向量的协议
原理是Bellman-Ford算法,使用跳数/向量确定从一个节点到另一个节点的距离,不考虑每条链路的速率,路由器将部分或全部路由表传递给邻居路由表。
示例:RIP,BGP,IGRP
(2)基于链路状态的协议
原理是Dijkstra算法,没有跳数限制,基于图论知识,路由器将链路状态信息传递给同一区域的所有路由器,只广播改变的网络拓扑信息。
示例:OSPF,IS-IS
3 核心网路由实现
在核心网中,网络节点一般被分割为多个子网或自治系统(Autonomy system, AS)。每个自治系统有16位的AS自治号,由IANA组织管理与分发,公有自治号位1~64511,私有自治号位64512~65535。
基于自治系统,核心网的路由协议又可以分为自治系统内部和自治系统间的协议,即IGP(Interior gateway protocols)和EGP(Exterior gateway protocols)。
IGP是指,单一AS内发现和计算自治系统内的路由信息,包括:RIP,OSPF,IS-IS,EIGRP。
EGP是指,控制AS间路由的传播,进行路径选择,目前仅有BGP协议。
4 常见的几种路由协议
4.1 RIP(Routing Information Protocol)
RIP协议是一种基于距离矢量算法的协议,使用跳数作为度量来衡量到达目的网络的距离,通过UDP报文进行路由信息的交换,使用端口号520。
节点通过发送请求,向邻居获得可用路由信息,以形成自己的路由表。
![](https://img-blog.csdnimg.cn/direct/65caafe4a03b4606b0ea84609cb0f20b.png)
![](https://img-blog.csdnimg.cn/direct/950d0bc8d8234a71bf4c1b0338cd96ba.png)
为了防止RIP路由在网络中被无限泛洪使得跳数累加到无穷大,同时也为了限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。
由于实现较为简单,在配置和维护方面远比OSPF和IS-IS容易,RIP多用于规模较小的网络,如校园网或结构简单的地区性网络。
路由环路:从邻居处获得可用路由信息这样的方法,存在路由环路的问题。如果设备不具有出发更新的功能,则链路出现中断时,错误的路由信息会被邻居拿走,从而形成环路。
![](https://img-blog.csdnimg.cn/direct/574b0c4512194a3082dadca1af873d8e.png)
SwitchC发现网络故障之后,需要等待更新定时器超时。在等待过程中,如果SwitchB的更新报文传到了SwitchC,SwitchC就会学到SwitchB的去往网络10.4.0.0的错误路由。这样SwitchB和SwitchC上去往网络10.4.0.0的路由都指向对方,从而形成路由环路。
毒性反转:RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。
![](https://img-blog.csdnimg.cn/direct/018908b64cf843aabf58c74d4d4fbbda.png)
4.2 OSPF(Open Shortest Path First)
OSPF协议是一种基于链路状态的路由协议。
步骤1:每台路由器根据自己的网络拓扑结构,生成链路状态通告LSA(Link State Advertisement),并通过更新报文将LSA发送给网络中的其它路由器。
步骤2:每台路由器收集其他路由器发来的LSA,所有LSA放在一起组成了链路状态数据库(Link state database, LSDB),以此来掌握全网的拓扑结构。
LSA是对路由器周围网络拓扑结构的描述,LSDDB则是对整个自治系统的网络拓扑结构的描述。
步骤3:路由器将LSDB转换成一张带权有向图,反映整个网络的真实拓扑结构。在网络拓扑稳定的情况下,各个路由器得到的有向图是完全相同的。
![](https://img-blog.csdnimg.cn/direct/247a97d4943a4ae8bfe25d66d11077d0.png)
步骤4:路由器根据最短路径优先(Shortest path first)算法计算得到到达目的网络的路径。每台路由器根据有向图,使用SPF算法计算出一颗以自己为根的最短路径树,这棵树给出自治系统中各节点的路由。
![](https://img-blog.csdnimg.cn/direct/57e46caf9ce540408facb07b1bef48ba.png)
相对于RIP,OSPF极大地提升了路由器的自主选路能力,使得路由器不再依靠路由通告进行选路。
同时,RIP交互的是路由,路由器的选路依赖于邻居路由器的路由信息,不论路由信息是否正确;OSPF交互的是链路状态信息,路由器的选路是通过SPF算法得到的一种自主行为,LSA只是选路的参考信息。
4.3 IS-IS
IS-IS协议也使用SPF(Shortest path first)算法进行路由计算,收敛速度快,拓展性强,运行在数据链路层,抗攻击能力强,可以实现大规模网络的互通。
IS-IS协议在路由域内采用两级的分层结构,即一个大的Domain(域)可以被分为多个Areas(区域)。一般通过2层路由设备实现路由转发。
![](https://img-blog.csdnimg.cn/direct/b5383ed23d5749acbb3f8cae13a70270.png)
下面给出OSPF和IS-IS协议的性能对比:
OSPF | IS-IS | |
协议类型 | IP层协议 | 数据链路层协议 |
协议扩展性 | 通过扩展LSA type应对新的需求,拓展性一般。比如对IPv6的支持,需要新的OSPFv3 | 由于本身的TLV的报文结构,决定了其超强的扩展性。比如对IPv6的支持,仅需扩展TLV |
适用范围 | 规模适中,最多可支持几百台设备,中小型企业 | 规模较大的网络,如大小ISP |
路由算法 | 采用最短路径SPF算法。通过链路状态通告LSA描述网络拓扑,依据网络拓扑生成一棵最短路径树SPT,计算出到网络中所有目的地的最短路径 | 采用最短路径SPF算法。依据网络拓扑生成一棵最短路径树SPT,计算出到网络中所有目的地的最短路径。 在IS-IS中,SPF算法分别独立的在Level-1和Level-2数据库中运行。 |
收敛速度 | 较快,小于1s | 较快,小于1s |
区域划分 | 基于接口 | 基于路由器 |
4.4 BGP(Border Gateway Protocol)
BGP是一种在自治系统之间交换网络层可达性信息的路由选择协议。其运行方式分为IBGP和EBGP。IBGP是指BGP运行在同一AS内,EBGP是指BGP运行于不同AS之间。
![](https://img-blog.csdnimg.cn/direct/550b8359e81c4f709810b8808c6a5289.png)
BGP是通过将节点划分为作为Speaker的控制节点和作为peer的成员节点来实现的。具体实现包含了较为复杂的报文交换和状态机变换,有需要的小伙伴可以去看协议内容。
5 杂记
目前现有的路由协议种类繁多,部署复杂,且拓展性不足。
在作者学习这部分内容的时候,看到很多的一个词汇就是Segment Routing,这也是未来核心网路由的研究重点方向之一,SR有两种实现,分别是基于MPLS和基于IPv6去实现的。
目前市面上还没有应用特别广泛的SR案例。感兴趣的伙伴可以去看看华为或者思科相关专家写的书,如《Segment Routing详解》、《SRv6网络编程:开启IP网络新时代》。