77范文网 - 专业文章范例文档资料分享平台

BGP基本原理与案例 - 图文

来源:网络收集 时间:2019-08-31 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

BGP基本原理

随着网络规模的不断扩大以及网络拓扑的复杂变化,网络管理者需要对自制系统间的路由加强控制,于是BGP协议应运而生了,目前BGP的版本是BGP-4,是运行在Internet上的唯一域间路由协议。

一、BGP基本概述

BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其重点关心的不在于发现和计算路由,而在与AS之间传递路由信息以及控制优化路由信息。

BGP是一种“距离矢量”路由协议,其路由信息中携带了所经过的全部AS路径列表。这样,接收该路由信息的BGP路由器可以明确的知道此路由信息是否源于自己的AS。如果路由源于自己的AS,BGP路由会丢弃此条路由,这样就可从根本上避免了AS之间产生环路的可能性。

为了保证BGP协议的可靠传输,其使用TCP协议来承载,端口号位179。通过TCP协议天然的可靠传输机制、重传、排序等机制来保证BGP协议消息交互的可靠性。

在邻居关系建立后,BGP路由器会将自己的全部路由信息通告给邻居;此后,如果路由表有变化,则只将增量部分发送给邻居。这样可以大大减少BGP传播路由所占用的带宽,以利于Internet上传播大量的路由信息,并降低路由器CPU与内存资源的消耗。

处于不同AS的BGP对等体的EBGP对等体(或者EBGP邻居)。尽管BGP连接是基于TCP的,但通常情况下,协议要求建立EBGP连接的路由器之间具有直连的物理链路。如果路由器之间不是物理直达,则可以配置BGP以允许它们之间经过物理多跳而建立EBGP连接。

BGP发言者从EBGP对等体获得路由后,会向所有的BGP对等体(包括EBGP和IBGP对等体)通告这些路由;与此同时,为了防止环路,它不会将学习到的路由再向原发布者发布。

处于同一AS的BGP对等体为IBGP(或者IBGP邻居)。IBGP对等体不一定是物理直连,但是一定要TCP可达。

为了防止产生环路,BGP协议规定,BGP发言者从IBGP获得的路由不向其他的IBGP对等体发布;另外,为了防止产生路由黑洞,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与是否同步相关。

TCP的可靠传输机制和滑动窗口机制可以确保承载于TCP之上的BGP可以可靠地传递大量路由。但是,TCP连接是以点到点的单播方式来进行报文传输的,因此BGP连接只能是基于点到点的连接。同时,BGP是一种距离矢量型的路由协议,为了防止产生路由环路,协议规定BGP发言者从IBGP对等体获得的路由不能向其他的IBGP对等体发布。这样,运行了BGP协议的AS内,为了确保所有BGP路由器的路由信息相同,则需要使所有的IBGP路由器保持全连接。

通过合理的网络规划来避免“转发黑洞”。除此之外,BGP协议本身还提供了避免机制,就是BGP同步功能。

BGP同步是指IBGP和IGP之间的同步,目的是为了防止在某种情况下转发“黑洞”的出现。BGP启用同步功能后,BGP发言者在接收到IBGP邻居发布的路由后,会查看该路由是否已经在IGP路由表中。只有当IGP路由表中有这条路由时,BGP路由表才会将这条路由置为有效并发布;如果IGP路由表中没有该路由,则BGP将此条路由置为无效,并不向自己的对等体发布。

虽然开启BGP同步可以避免转发“黑洞”的情况发生,但是如果能够确保报文转发路径上有相应的IGP路由,则没有必要开启BGP同步功能。如:当AS内路由器间建立了IBGP全连接时,所有的路由器都有物理直达的IBGP连接,不会产生个别路由器缺少某些BGP路由信息的情况,因此并不需要配置BGP同步。注意:MSR路由器默认关闭BGP同步。

二、BGP基本原理

1、BGP消息

BGP所有的消息的格式都是“消息头+消息体”,其消息头的长度为19个字节。

? Open消息:Open消息是TCP连接建立后发送的第一个消息,用

于建立BGP对等体之间的连接关系并进行参数协商。内容包括使用的BGP版本号、自己所属的AS号、路由器ID、Hold Time值、认证信息等信息。 ? Keepalive消息:BGP会周期性的向对等体发出Keepalive消息,

主要作用是让BGP邻居知道自己的存在,保持邻居关系的稳定性;还有一个作用是对收到Open消息的回应。其消息格式中只包含消息头,没有附加其他任何字段。长度为19字节,消息中只有标记、长度、类型,不包括数据域。

? Update消息:Update消息用于在对等体之间交换路由信息。它

既可以发布可达路由信息,也可以撤销不可达路由信息;一条Update消息可以通告一类具有相同路径属性的可达路由,同时Update消息还可以携带多跳不可达路由。 ? Notification消息:Notification消息的作用为错误通知。BGP

发言者如果检测到对方发过来的消息有错误或者主动断开BGP连接,都会发出Notification消息来通知BGP邻居,并关闭连接且回到idle状态;如果收到邻居发来的Notification消息,也会将连接状态变为idle。Notification消息的内容包括错误代码和错误子代码及错误数据等信息。

注:RFC 2918中定义了BGP第五种消息Route-refresh,该消息用来要求对等体重新发送指定地址族的路由信息。 2、BGP协议状态机

BGP协议有限状态机共包含6个状态,他们之间的转换过程实际上描述了BGP对等体关系建立的过程:

? Idle状态(空闲状态):此状态为初始状态,不接受任何BGP连

接,等待start事件的产生。如果有start事件产生则系统开启ConnectRetry定时器向邻居发起TCP连接,将状态变为Connect。 ? Connect状态(连接状态):在Connect状态,系统会等待TCP连

接建立完成。如果TCP状态为Established,则拆除ConnectRetry定时器,并发送Open消息,将状态变为OpenSent;如果TCP连接失败则重置ConnectRetry定时器并转为Active状态;如果ConnectRetry timer expired(重传定时器)超时,则重新连接,仍处于Connect状态。

? Active状态(活跃状态):如果已经有启动事件但TCP连接未完

成则处于Active状态。在Active状态系统会响应ConnectRetry timer expired事件,重新进行TCP连接,同时重置ConnectRetry定时器,变为Connect状态;如果与对方的TCP连接成功建立则发送Open消息,将状态变为OpenSent,并清除ConnectRetry定时器,重置HoldTime定时器。

? OpenSent状态(Open消息已发送):此状态表明系统已经发出

Open消息,在等待BGP邻居发给自己的Open消息。如果收到BGP邻居发来的Open消息,且没有错误的话则转向OpenConfirm状态,同时将Hold Time定时器的值置为协商值,发送Keepalive消息并置Keepalive定时器;如果有错误则发送Notification消息并断开连接。

? OpenConfirm状态(Open消息确认):此状态表明系统已经发出

Keepalive消息,并等待BGP邻居的Keepalive消息。如果收到Keepalive消息则转向Established状态并重置HoldTime定时器;如果Keepalive定时器超时则重置并发送Keepalive消息;如果收到Notification消息,则断开连接。

? Established状态(连接建立):如果处于Established状态,则

说明BGP连接建立完成,可以发送Update消息交换路由信息;如果Keepalive定时器超时则重置Keepalive定时器并发送Keepalive消息;如果收到Keepalive消息则重置HoldTime定时器;如果检测到错误或收到Notification消息则断开连接。 另外,在除了Idle状态意外的其它五个状态出现任何错误的时候,BGP状态就会退回到Idle状态。 3、BGP路由属性

BGP路由属性是路由信息所携带的一组参数,它对路由进行了进一步的描述,表达了每一条路由的各种特性。

路由属性是BGP协议区分其他协议的重要特征。BGP通过比较路由携带的属性,来完成路由选择、环路避免等工作。

BGP的每个属性都有特定的含义,具有不同的用途并可以灵活的应用;并且路由属性是基于“TLV”架构的,易于扩展。这些特性是的BGP的功能十分强大。

BGP路由属性包含四类: ? 公认必遵(Well-known mandatory):所有BGP路由器都必须能够

识别这种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。其包含:Origin、AS_Path、Next_hop。

AS_Path属性:

AS_Path属性为公认必遵属性,该属性域指示出该路由更新信息经过了那些AS路径,主要作用是保证AS之间无环路。

AS_Path属性按一定次序记录了某条路由从本地到目的地址所经过的所有AS号。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在AS_Path列表的最前面。收到此路由的BGP路由器根据AS_Path属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在最前面,其他AS号按顺序依次排列。

使用AS路径属性的目的是保证无路由环路。通常情况下,当一个路由更新到达一个AS的边界路由器时,如果边界路由器发现这个AS号码在路由的AS路径属性中已经存在,边界路由器会丢弃这个路由。

同时,AS_Path属性也可以用于路由的选择和过滤。在其他因素相同的情况下,BGP会优先选择AS_Path最短的路由(选择路径最短)的路由。

BGP发言者在向EBGP邻居发送路由更新时修改AS_Path属性,向IBGP邻居发送时不修改该属性。

在某些应用中,可以使用路由策略来人为地增加AS路径的长度,以便更灵活的控制BGP路径的选择。

Next_Hop属性:

下一跳(Next_Hop)属性是公认必遵属性,它为BGP发言者指示了去往目的地的下一跳。BGP的下一跳属性和IGP的有所不同,不一定就是邻居路由器的IP地址。下一跳性取值情况分为以下几种(有点像OSPF中的ABR和ASBR的概念!!!!):

? BGP发言者把自己产生的路由发给所有邻居时,将把该路由

信息下一跳属性设置为自己与对端连接的接口地址;

? BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并

不改变路由信息的下一跳属性,将从EBPG得到的路由的Next_Hop直接传递给IBGP对等体。

? BGP发言者把接收到的路由发给EBGP对等体时,将把该路由

信息的下一跳属性设置为本地与对端连接的接口地址。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库BGP基本原理与案例 - 图文在线全文阅读。

BGP基本原理与案例 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/718594.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: