《OSPF和IS-IS详解》一1.1 理解BGP的特性

1.1 理解BGP的特性

BGP设计与实现
在过去的几十年里,Internet经历了令人瞩目的增长。目前,Internet的BGP路由选择表已经拥有超过10万条的路由表项。许多企业也部署了BGP来互连他们自己的网络。如此广泛的部署证明了BGP对大型和复杂网络的支持能力。

BGP在今天的Internet中,之所以具有这样重要的地位,是因为它具有以下这些特性:

  • 可靠性;
  • 稳定性;
  • 可扩展性;
  • 灵活性。

以下将详细地描述每一种特性。

1.1.1 可靠性

可以从几个角度来考察BGP的可靠性:

连接的建立;
连接的保持;
路由选择信息的精确性。
BGP利用了传输控制协议(Transmission Control Protocol,TCP)提供的可靠传输服务。这消除了BGP实现更新数据包的分段、重传、确认和先后顺序问题的需要,因为TCP已经完成了这些功能。另外,任何TCP使用的认证方法也可以用于BGP。

会话建立之后,BGP就使用通常的保活(keepalive)消息来维护会话的完整性。Update消息也可以重置保持计时器(hold timer),这一计时器的典型的值是保活计时器(keepalive timer)的值的3倍。如果连续3次收不到Keepalive消息,也没有收到Update消息,那么BGP会话就会被关闭。

精确的路由选择信息是可靠转发的重要前提。BGP使用了几种方法来提高精确性。当路由器接收更新数据包时,为了检测环路,它将检查AS_PATH属性(一种BGP属性,列出了路由所经过的自治系统)。如果更新数据包来自于当前AS,或者已经经过了当前AS,那么它将被拒绝。入站过滤(inbound filter)可被应用于所有更新,以确保符合本地路由策略。在一条BGP路由被认为有效之前,路由器通常会验证下一跳的可达性。

为了维护路由选择信息的精确性,及时删除不可达的路由也是很重要的。当某些路由变得不可达时,BGP会迅速地从它的对等体中撤回这些不可达路由。

1.1.2 稳定性

路由选择协议的稳定性在一个大型网络中是十分关键的。例如在当今Internet这样大小的网络中,大量路由的震荡将会对网络产生灾难性的影响。

通过使用各种不同的计时器,BGP可以抑制网络上出现的接口或路由起/宕(Up/Down)事件所产生的影响。例如,一个BGP宣告者(speaker)只有到达最小的通告时间间隔(Minimal Advertisement Interval)后,才可以生成更新。Cisco IOS软件中,这个时间间隔对于外部BGP(eBGP)会话来说是30秒,对于内部BGP(iBGP)会话来说是5秒。此外,可以增加一些时间偏差抖动(jitter)来避免更新的同步问题。有关eBGP和iBGP对比的主题将在第2章“理解BGP的构件块”中讨论。

路由衰减(route dampening)是BGP抑制不稳定性的另一个特性。路由器可以跟踪一条路由的震荡历史纪录。不稳定的路由将会受到惩罚,并被抑制。路由衰减将在本书后面的相关章节中讲述。

在路由策略发生变化时,如果会话不是必须被重置,那么就会提升BGP的稳定性。例如第3章中讲述的温和重配置(soft reconfiguration)和路由刷新(route refresh)两个特性,它们对于不重置BGP会话而改变BGP策略是十分有用的。这两个特性使得路由器可以动态地请求或发送新的更新。

如果BGP会话必须被重置,那么所有与该会话相关的BGP路由选择和转发信息都会被清除。这在一个新的转发数据库被建造之前,有可能导致数据包的丢失。当这些会话正被重置的时候,不中断转发(Nonstop Forwarding,NSF)或优雅重启动(Graceful Restart)特性将允许路由器利用现有的信息(从原有会话保留下来的信息)继续转发数据包。第3章将详细讨论NSF。

收敛(convergence)是指网络中发生某种变化后,整个网络同步于相同的路由选择信息的过程。没有收敛的网络可能会导致数据包的丢失或转发环路。但是,如果网络一直处于不断收敛的状态,那么也会降低稳定性。在稳定性和收敛之间达成适当的平衡,可能依赖于网络所提供的服务。例如,当在一个共享的多协议标签交换(Multiprotocol Label Switching,MPLS)网络上,使用BGP来提供虚拟专用网(Virtual Private Network,VPN)服务时,更应该注重收敛性。第10章将会对这一主题做详细的讨论。第3章详细地讨论了BGP收敛的调整。

1.1.3 可扩展性

你可以从两个方面来评估BGP的可扩展性:对等会话(peer session)的数量和路由的数量。基于路由器的配置、硬件性能(CPU和内存)以及Cisco IOS软件的版本,BGP已经被证明可以支持数百个对等会话,并能很好地维护超过10万条的路由。

有几种方法可以用来增强BGP的可扩展性。这些方法或者可以减少被维护的路由/路径的数量,或者可以减少所生成的更新的数量。

作为距离矢量(distance vector)协议的一种形式,BGP仅仅把它使用的路径去更新它的对等体。换句话说,BGP只会通告最佳路径给它的对等体。当最佳路径发生变化时,新的路径将会被通告,这样就可以使对等体被告知使用新的最佳路径去替换早先的最佳路径。这是一个对早先通告的最佳路径的隐含撤回动作。

当BGP被用来在同一个AS内部交换路由可达性信息时,需要所有的BGP宣告者全连接(fully meshed)。全连接的网络往往会限制BGP的可扩展性,这是因为每一台路由器可能会维护大量的会话,而且可能会生成大量的更新。路由反射和联盟是增强BGP网络的可扩展性的两种方法。第7章、第8章和第10章详细讨论了这两种方法。

路由聚合是BGP使用的另一个工具,可以用来减少通告的前缀数量和增加BGP的稳定性。事实上,根据第6章中的讨论,Internet需要适当的路由聚合。

减少生成更新的数量,就能够减少对CPU的利用率,并加快网络的收敛速度。在IOS中,具有相同出站策略的对等体可以被编组到同一个对等体组(peer group)或更新组(update group)。这样只需要生成一份更新,就可以为整个组而被复制。第3章将详细讨论使用更新分组机制来增强网络性能的主题。

1.1.4 灵活性

BGP是路径矢量(path vector)协议,它是距离矢量协议的一种形式,BGP为每一个目的地构造了一个基于自治系统的概要图。BGP的灵活性可以通过路径属性的数量来说明,这些路径属性是用来定义路由策略并描述BGP前缀的特性的参数。正是由于这些属性才使BGP成为一种独特的路由选择协议,因此,整本书都将讨论它们。

你可以定义两种类型的BGP策略:路由选择(routing)策略和管理(administrative)策略。这两种类型的策略在功能上经常是重叠的。

你既可以为入境(inbound)方向,也可以为出境(outbound)方向定义BGP路由选择策略,来影响路由或者路径的选择。例如,可以定义一个入境路由过滤策略,用于仅仅接受那些始发于直接上游服务提供商的路由和该服务提供商的客户的路由。通过适当地设置某些属性,可以使一条路径变得比其他路径更优先。本书后面的章节将会提供设置路由选择策略的详细例子。

BGP管理策略对进入或离开AS的路由定义了管理控制策略。例如,一个AS可能希望通过限制允许自己接收的最大前缀数目,来保护它的边界路由器。作为另一个例子,在出境方向上,一个多宿主(multihomed)AS的边界路由器可以选择通过这样一种方式来设置它的属性——就是只通告本地始发的路由。

为了执行策略,BGP使用了3个步骤:

1.输入策略引擎(input policy engine);

2.路径选择(path selection);

3.输出策略引擎(output policy engine)。

图1-1演示了这个处理过程。

当从对等体接收到更新数据包时,路由器会把这些更新数据包存储到路由选择信息库(Routing Information Base,RIB)中,并指明是来自哪个对等体的(Adj-RIB-In)。这些更新数据包被输入策略引擎过滤后,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径,第2章将详细讨论这种算法。

得出的最佳路径被存储到本地BGP RIB(Loc-RIB)中,然后被提交给本地IP路由选择表(IP-RIB),以用作安装考虑。第2章将讨论IP-RIB的路由安装过程。

如果启用了多径(multipath)特性,最佳路径和所有等成本路径都将被提交给IP-RIB考虑。

除了从对等体接收来的最佳路径外,Loc-RIB也会包含当前路由器注入的(被称为本地发起的,locally sourced),并被选择为最佳路径的BGP前缀。Loc-RIB中的内容在被通告给其他对等体之前,必须通过输出策略引擎。只有那些成功通过输出策略引擎的路由,才会被安装到输出RIB(Adj-RIB-Out)中。

这里对RIB的讨论仅仅是概念上的概括描述。实际的更新处理过程依赖于BGP的软件实现和配置而变化。在Cisco IOS软件中,BGP表或BGP RIB(命令show ip bgp的输出内容)包含了所有输入策略引擎所允许的路由,这其中包括了那些没有被选择为最佳路径的路由。如果启用了入站温和重置(inbound soft reset)的IOS特性(温和重配置,soft reconfiguration),那么,那些被输入策略引擎所拒绝的路由也会被保留(被标记为“仅仅接收”,receive only),但不会被路径选择过程所考虑。温和重配置的使用将在第3章中讨论。

时间: 2024-08-02 12:58:04

《OSPF和IS-IS详解》一1.1 理解BGP的特性的相关文章

百度Deep Voice详解分析:快速理解语音合成流程(Part I)

更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍 Dhruv Parthasarathy:MIT毕业,曾经就职于Udacity,带领人工智能.自动驾驶.深度学习以及机器学习项目:目前就职于Athelas,研发副总裁. 领英:http://cn.linkedin.com/in/dhruv-parthasarathy Twitter: https://twitter.com/dhruvp 博客:https://blog.athelas.com/@dhruvp M

xcode工程配置文件详解,需要深入理解

http://www.cocoachina.com/ios/20150601/11969.html   project.pbxproj,最熟悉的"陌生人" http://www.bubuko.com/infodetail-1025831.html iOS程序支持64位以及project.pbxproj文件的介绍

PHP 5.3 新版特性分析详解

一.mysql教程驱动mysqlnd 一直以来,php教程都是通过mysql客户端连接mysql,而现在mysql官方已经推出php版的mysql客户端,而这个mysqlnd有效降低内存的使用以及提高性能.具体可以看: http://dev.mysql.com/downloads/connector/php-mysqlnd/ http://forge.mysql.com/wiki/PHP_MYSQLND   从图中可以看出,使用mysqlnd少了从mysql驱动中复制数据到php扩展这一步.my

android Handler机制之ThreadLocal详解

概述 我们在谈Handler机制的时候,其实也就是谈Handler.Message.Looper.MessageQueue之间的关系,对于其工作原理我们不做详解(Handler机制详解). Message:Handler发送.接收和处理的消息对象 Looper:每个线程只能拥有一个Looper.它的looper()方法负责循环读取MessageQueue中的消息并将读取到的消息交给发送该消息的handler进行处理. MessageQueue:消息队列,它采用先进先出的方式来管理Message.

Android菜单详解——理解android中的Menu

Android菜单详解--理解android中的Menu 前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu&qu

OSPF OE2和OE1外部路由的详解

从OSPF的ASBR重分发的外部路由,会生成OE1和OE2的两类路由在OSPF区域中进行传递. cisco默认的外部路由的类型是OE2.默认的metric=20,不会根据链路的cost进行累加. 而OE1必须要经过手工指定以后才能在OSPF区域内进行传递.在该文档中会把OE1和OE2通过实验都详细验证一次,然后看看区别在哪里,最后还有一个关于OE2路由的问题是forward metric,这个知识点很少用到,但是需要了解.算是一个高级知识点吧. 好了,下面来看看OE1和OE2的区别. 下面是实验

《OSPF和IS-IS详解》一第1章 链路状态路由协议之由来

第1章 链路状态路由协议之由来 OSPF和IS-IS详解 本书的开篇方式极为特别.只要读者愿意,第1章可略过不读.若读者只准备了解OSPF和IS-IS技术方面的内容,请直接阅读第2章.本章不涉及技术内容,为非必读章节.作者之所以非要在这里说一说与链路状态路由协议有关的历史故事,理由很简单,那就是作者对某些事物的关注程度甚至还要超过网络技术,而历史正是其中之一.研究历史不但能帮助我们以正视听,而且还能使我们免遭满嘴谎言的奸商.政客以及其他奸诈小人的蒙蔽.专注于技术,通晓某些网络协议的运作方式固然是

《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择

1.5 ARPANET内的路由选择 OSPF和IS-IS详解 1983年,在ARPANET内,人们展开了把网络协议从NCP切换成TCP/IP的割接工作.当时,有两拨研究人员同时都在使用ARPANET,分别来自军方和非军方(大学或企业).就人数而论,第二拨人要多得多,有很多大学生也在学着掌握或使用计算机网络,这反过来又对整个计算机行业产生了影响.此外,还有很多人出于非研究性的目的而使用计算机网络,比如,玩网络游戏.由于使用网络的用户群日渐庞大,美国国防部开始考虑网络的安全性问题,并将军用节点都迁移

《OSPF和IS-IS详解》一6.1 OSPF数据库同步

6.1 OSPF数据库同步 OSPF和IS-IS详解 读至本章,读者想必知道,OSPF协议是一种结构性很强的路由协议.既然读者都清楚OSPF数据库同步的可靠性和精确性是如此重要,那么也就不会对用来管理OSPF数据库同步过程的状态机(名为邻居状态机)的复杂程度感到惊讶了.简而言之,在数据库同步过程中,邻居状态机会驱动(OSPF路由器)采取以下"行动". 1.当相邻的两台路由器决定彼此建立邻接关系时,会进行分工:一台起"主导"作用,另外一台会进行"配合&quo