随着路由器数量的增大,传统的距离向量算法是无法在如此大量的路由器中收敛的。同时每隔ISP管理着自己的路由器网络,希望按照自己的意愿运行路由器,而不是互联网中所有的路由器都运行一种路由选择协议。这些都可以通过自洽系统(Autonomous System)解决。
(1)自洽系统
- 通常一个ISP中的路由器和互联链路组成一个AS,某些ISP可以将网络划分为多个AS。
- 一个自洽系统由其全局唯一的AS号标识。
- 在相同AS中的路由器都运行相同的路由选择算法。
1. 因特网自洽系统内部的路由选择
在一个AS内运行的路由选择算法叫做自洽系统内部路由选择协议。
1.1 开放最短路径优先(OSPF)
OSPF是一种公众可用的链路状态协议。
(1)定义
-
使用洪泛链路状态信息:路由器向自洽系统内所有其他路由器广播路由信息。
①一条链路状态发生变化。
②周期型广播链路状态。 -
使用Dijkstra最低开销路径算法:每个路由器在本地运行Dijkstra算法,确定以自身为根节点的到其他子网的最短路径树。
-
OSPF报文直接封装在IP数据报中
(2)优点
- 安全:只有被信任的路由器才能参与一个AS内的OSPF协议。
- 允许使用多条相同费用路径:无需仅选择一条路径承载所有流量。
- 对单播和多播路由选择的综合支持
-
支持在单个AS中的层次结构
①主干区域包含AS中所有区域边界路由器,它的主要作用是为AS内部区域之间提供路由选择。
②区域边界路由器负责为流向区域以外的分组提供路由选择。
③AS边界路由器负责连接其他AS。
2. 因特网自洽系统间路由选择
在AS内部的分组选路完全遵循AS内部路由选择协议,如OSPF。当分组跨越多个AS路由时,需要AS间路由选择协议,如BGP。
在因特网中,所有AS运行相同的AS间路由选择协议:边界网关协议BGP(Border Gateway Protocol)。
2.1 边界网关协议(BGP)
BGP是众多ISP的粘合剂。作为所有AS都运行的AS间路由选择协议,它有以下作用:
-
从邻居AS获得可达性信息:BGP协议允许AS向其它AS通告它的存在,通过BGP报文的传递获得可达性信息。
-
选择到达前缀的最优路径:在BGP中,分组是被路由到CIDR化的前缀。因为源到目的地可能有多条AS序列,可以通过BGP路由选择协议选择一条最优路径。
(1)问题:为什么采用不同的AS内与AS间路由协议?
策略
- inter-AS:希望能够管理控制流量如何被路由。
- intra-AS:单一管理,无需策略决策。
规模
- 层次路由节省路由表大小,减少路由更新流量。
- 适应大规模互联网。
性能
- inter-AS:策略主导
- intra-AS:侧重性能
2.1.1 通告BGP路由信息
BGP允许AS向其他AS发送BGP报文,通告它的可达性信息。因此对于任意一个AS可以从它的邻居节点收到BGP报文获得可达性信息。那么BGP报文是如何从一个AS传递到它的邻居AS中的呢?
首先,在每个AS中,路由器被划分为两种类型:
-
网关路由器(gateway router):与其他AS中的网关路由器和所在AS的内部路由器相连。
-
内部路由器(internal router):仅与所在AS内部的路由器相连。
AS正是通过路由器间发送报文实现通告BGP可达信息。在BGP中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息。每条TCP连接以及通过该连接发送的BGP报文,称为BGP连接。BGP连接可以根据建立连接的两个路由器所在的AS划分为两种类型:
- 外部BGP(eBGP):跨越两个AS的BGP连接。AS向邻居AS发送可达性信息。
- 内部BGP(iBGP):相同AS中两个路由器间的BGP连接。向AS内部所有路由器发送的可达性信息。
这样AS通过eBGP将BGP报文传送到相邻AS中。相邻AS再通过iBGP将BGP报文传送到AS内所有路由器。按照上述步骤反复执行下去,直到通告完成所有AS。
由上文所述我们可以归纳出BGP通告的两个特征:
- 基于TCP连接:BGP通告本质上是基于TCP连接的路由器间信息传递。
- 通告包含到达不同目的的前缀和经过的AS路径。
- BGP报文:
①OPEN:与peer建立TCP连接,并认证发送方。
②UPDATE:通告新路径(或撤销原路径)。
③KEEPALIVE:在无UPDATE时,定期发送保持BGP会话的TCP连接。也用于对OPEN请求的确认。
④NOTIFICATION:报文先前报文的差错。也用于关闭连接。
因为在真实网络中,给定源到目的地可能有多条路径。我们不可能将这些路径都加入路由器的转发表中。因此需要通过BGP路由选择获得最好的路径。
2.1.2 BGP路由选择
在介绍BGP路由选择之前,先介绍以下BGP路由的结构。BGP路由由两个部分组成,路由=前缀+BGP属性:
- 前缀
-
BGP属性
①AS-PATH(AS路径):前缀通告经过的AS序列。还可以用于防止通告环路。
②NEXT-HOP(下一跳):是AS-PATH起始路由器的IP地址。
下面,我们将介绍最简单的热土豆算法,和在更复杂的路由选择算法下的三条准则。
(1)热土豆算法
从名字不难看出,热土豆算法应该是一种自私的算法,就是将烫手的山芋赶快扔出去。因此热土豆算法的思想如下:
-
思想:选择具有最小开销的NEXT-HOP的路由。
①理解:热土豆路由选择会使用到AS内部选择协议(OSPF),用于计算最低开销路径。当存在多条最低开销路径时,就会根据NEXT-HOP的开销选择路由。
-
缺点:忽略了在AS间端到端的开销(时延)。
①因为自私的只考虑了AS内部的开销,而忽略了AS间的开销。
在更复杂的BGP路由选择算法中,会依据三条准则逐个判断,是一种基于决策的路由选择算法。
(2)三条准则
-
本地偏好:本地偏好是一种策略属性,完全由AS网络管理员设置。具有最高本地偏好值的路由被选择。
①路由器只为客户提供路由。因此B不会向C通告路径BAW。
②X不会转发B到C之间的路由。 -
最短AS-PATH:对于具有相同本地偏好值得路径,将选择具有最短AS-PATH的路由。
-
最近NEXT-HOP:在前面两个条件满足后,在根据热土豆算法选择具有最小NEXT-HOP开销的路由。文章来源:https://www.toymoban.com/news/detail-531330.html
根据上述准则,BGP路由算法不再是一个自私的算法。它会考虑端到端的时延,先选择最短AS-PATH的路由。文章来源地址https://www.toymoban.com/news/detail-531330.html
到了这里,关于计算机网络(十四)——因特网的路由选择的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!