`
tiantian911
  • 浏览: 225077 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BGP协议【转载自51cto】

阅读更多
刚才看streaming的paper,发现自己欠缺的太多了。

边界网关协议(Border Gateway Protocol,BGP)是Internet的路由协议。BGP本身并不太复杂,但初次涉足这一领域的人可能会对这个隐藏在基于自治系统路由背后的概念感到陌生。我们希望借助本文你能简要了解BGP的工作原理,以及它所产生和能够解决的问题。

通过上一期对Internet路由的讲座,你应该认识到Internet中的路由分为两部分:由内部网关协议(IGP)如OSPF所控制的自治系统内部路由,以及将各自治系统(AS)互相连接起来的边界路由(现在是使用BGP)。

Internet上每个ISP都至少拥有一个唯一的AS号,并且通过BGP向其对等互联伙伴广播其网络信息。BGP是一种路径向量协议,因为它所广播的是到达某一特定目的地所需的路径信息。BGP并不会告诉我们数据包是如何在自治区域内传送的,也不会象OSPF那样知道整个网络的情况。BGP也可以被称之为一种距离向量协议,因为除了几个不大的变化,其它都与距离向量协议类似。

BGP本身是一种第4层协议,运行在TCP协议之上。因为BGP无需关心TCP要处理的事情,所以要比OSPF简单得多。无论如何,BGP是以连接为导向的,它需要两个手动配置路由器的对等互联伙伴,而这两个伙伴分别配置自己的路由器,然后交换路由信息。通过BGP对等互联的两端(邻居)通常直接相连,不过也有一些受虐狂喜欢在多跳对等互联伙伴之间建立BGP会话,这也完全没有问题,因为BGP使用TCP端口179,并且不依赖广播或本地链路多点传送。

BGP-4(BGP-3不支持无类别域间路由CIDR)更新数据包中包含以下信息:一个网络、一个子网,还有一些属性。我们根据属性值(主要是AS -Path)做出路由决策,比如BGP更新数据包可能会说:“我可以经由号码为8、19、2000和5的AS到达地址为1.1.1.0/12的网络。” 关于BGP非常重要的一点是,AS-Path本身采用一种防止产品路由循环的机制,路由器不会导入任何已经在AS-Path属性中所包含的路由。

对路由器来说,如果你导入一条路由,然后想把它告诉对等互联关系中的一个伙伴,你就必须在宣布这条路由之前,首先把自己的AS号追加到这条AS- Path中。无疑,随着这条路由的信息被传播得越来越远离源AS,它就提供了一条可行的到达源AS的“路径”。路由器通常(而不是总是)会选择距离AS最短的路径。BGP仅仅是根据它所收到的更新信息知道这些路径的。与同为距离向量协议的RIP不同,BGP并不发布整个路由表。在引导之时,你的对等互联伙伴会移交其整个路由表,不过在此之后一切就要靠所收到的更新信息了。

路由更新信息储存在路由信息库(RIB)中。路由表只为每个目的地存储一条路由,而RIB通常包含通往一个目的地的多条路径信息。至于将哪条路由存储到路由表中,也就是实际会用到哪条路径,则取决于该路由器,当某条路由被撤消时,可以从RIB中取出另一条通往同一目的地的路由。RIB仅用于记录我们可能用到的路由,我们决不会把一条未被使用的路由告知对等互联的伙伴,因为那可能是条错误信息。我们只会发布路由表中存在的路由。如果RIB收到了某条路由被撤消的信息并且该路由仅存在于RIB中,那么我们就无需向对等互联的伙伴发送更新信息,而只需要把它从RIB中悄悄删除。RIB的路由条目永远不会过期,它会一直保留直到我们确定该路由已经无效。

在Internet上有大量路由是基于策略的。有时你会购买一条昂贵的链路,仅当必要时候才会使用;或者你会有一条只向特定对象发送数据的链路。 BGP的“Community”属性很多时候被用于识别一组路由。如果你想让你的邻居知道关于某条路由的秘密信息,你可以在导出这些路由之前设置一个 Community号,这些号码完全是随意的,所以不管你发送什么,都必须事先和伙伴商定好这个号码所具有某种特殊意义。

BGP另外一个重要属性是多出口标识(Multi-Exit Discriminator,MED)。该属性用于告知远程AS说,我们喜欢一个指定的出口点,尽管我们可能有很多出口点,这对iBGP非常重要。 iBGP是BGP协议的内部网络协议版本,我们将在下一期知识讲座中介绍。

要想真正理解BGP的工作原理,我们要花点时间讲讲困扰着Internet的一些问题,这很重要。

首先,我们会遇到一个关于路由表快速增长的大问题。如果有人决定将一个原来的16位网络分解为许多更小的的网络,他们可能会先广播数百条新路由。这时Internet上每台路由器都会获得每条新路由。人们常常会迫于压力将多条路由汇总或合并一次发布出去。但汇总路由并不总是行得通的,特别是你想把一个19位网络分解成两个地理位置上分离的20位网络。目前路由表内的路由数将近200,000条,并且曾经一度以指数级速度增长。

其次,我们总会担心有人会“向Internet广播”。如果某个大型ISP客户突然决定把它所有信息都广播出去,并且ISP接收了这些路由,那么 Internet上所有数据都会被发送到ISP客户的小型AS上。对此有一个简单的解决方案,称为路由过滤。设置路由器易如反掌,这样你的路由器就不会接收那些不请自来的路由了,但是很多大型ISP还是会接收来自对等互联伙伴的“缺省”路由,而这些伙伴似乎并不能提供通路互联服务。

最后,我们来谈谈路由翻动(flapping)。BGP有一种机制可以限制那些看起来不太正常的路由。翻动(即出现又消失)的路由通常不够可靠,如果路由翻动频繁,Internet上所有路由的负载就会增加,因为路由每次消失又重新出现时都要花时间更新。路由翻动抑制(Dampening)使BGP 对等互联的伙伴忽略所有的来自于正处于翻动状态的对等互联路由器的更新信息。这个路由器被忽略时间随每一次翻动呈指数级增加。链路有缺陷是很恼人的,很多 Internet站点有可能要花一个多小时才能进入,不过这非常必要。

这次我们非常扼要地阐述了BGP的原理,这些知识足够让你正确地理解该协议,不过还是根本不够全面。如果你的工作是操作BGP路由器,那就花点时间阅读RFC文档,你的同等互联伙伴会很感激你的。

小结

BGP是路径向量协议,在Internet上通过其AS-Path属性提供自治系统的路由信息。

对等互联伙伴通过手动配置路由器来交换路由信息,这将建立一个TCP连接并且采用BGP协议来对话。BGP没有什么秘密。

中型企业采用BGP通常是为了让其整个网络成为真正的多宿主(multi-homing)网络。
分享到:
评论

相关推荐

    BGP协议实验PPT

    BGP协议实验 BGP协议分析实验 BGP状态转换分析实验 BGP路由聚合实验 BGP路由属性实验 BGP路由策略和路由过滤实验 共64张幻灯片

    魏伟BGP协议04

    【标题】"魏伟BGP协议04"指的是网络领域中的边界网关协议(Border Gateway Protocol)的一个教学系列,由专家魏伟讲解的第四部分。这个系列可能详细探讨了BGP这一复杂路由协议的核心概念、功能和应用。 【描述】...

    bgpd.rar bgp协议

    **BGP(Border Gateway Protocol)协议详解** BGP,即边界网关协议,是互联网上的一种核心路由协议,用于在不同的自治系统(AS)之间交换路由信息。BGP的主要功能是确保数据包能够正确地在互联网上的不同网络之间...

    魏伟BGP协议0303

    【标题】:“魏伟BGP协议0303”指的是由网络专家魏伟讲解的关于BGP(边界网关协议)的系列课程或教程中的第三部分。BGP是互联网上的一种核心路由协议,用于在不同的自治系统(AS)之间交换路由信息,确保数据包能够...

    BGP协议原理及配置

    **BGP协议原理及配置** BGP(Border Gateway Protocol,边界网关协议)是互联网上的一种核心路由协议,主要用于在不同的自治系统(AS)之间交换路由信息。BGP的设计目标是确保路由的稳定性和可扩展性,以适应大规模...

    伟BGP协议\BGP协议

    伟BGP协议\BGP协议

    BGP协议介绍

    华为BGP协议培训胶片。包括BGP协议的介绍、配置以及排错。希望对学习BGP协议的童鞋有帮助。

    魏伟BGP协议.rar

    魏伟BGP协议.rar 魏伟BGP协议.rar 魏伟BGP协议.rar 魏伟BGP协议.rar

    bgp协议原理及交互

    **BGP(边界网关协议)原理及交互详解** BGP,全称为Border Gateway Protocol,是互联网上的一种路径矢量协议,主要用于在不同的自治系统(AS)之间交换路由信息。BGP是Internet上的核心协议之一,它使得网络能够...

    BGP协议.docx

    **边境网关协议(BGP)详解** **一、引言** _Border Gateway Protocol_(BGP)是一种在互联网上实现自治系统(Autonomous System, AS)之间路由选择的协议。由K. Lougheed提出的RFC 1163文档,连同其配套的RFC-...

    BGP协议_华为网络技术培训经典视频

    【BGP协议_华为网络技术培训经典视频】 BGP(Border Gateway Protocol)是互联网上用于自治系统(AS)之间交换路由信息的一种外部网关协议。它在互联网的路由选择中扮演着至关重要的角色,尤其在大型网络和互联网...

    基于SNMP的BGP协议监测(开题报告)

    【标题】:基于SNMP的BGP协议监测 【描述】:本研究主要探讨如何利用SNMP协议对BGP协议进行监测,以优化网络管理,目前日版OS下的格式需要进一步调整。 【标签】:SNMP,BGP,MID,开题报告 【正文】: SNMP(Simple...

    BGP路由协议原理、配置与排错实验(中文版1.1)宣贯.pdf

    BGP 路由协议原理、配置与排错实验 本文档旨在介绍 BGP 路由协议的原理、配置和排错实验。BGP(Border Gateway Protocol)是一种自治系统之间的路由协议,用于在 Internet 中进行路由选择。实验环境使用了四台 ...

    基于OSPF和BGP协议的拓扑发现系统研究与实现.nh

    基于OSPF和BGP协议的拓扑发现系统研究与实现 基于OSPF和BGP协议的拓扑发现系统研究与实现 基于OSPF和BGP协议的拓扑发现系统研究与实现

    BGP绝杀图(BGP协议详细剖析)

    【BGP绝杀图】是针对BGP(边界网关协议)进行深度解析的一个资源集合,作者通过原创的图表方式,详细阐述了BGP协议的关键概念、配置命令以及实际操作中的应用。BGP作为互联网上的一种核心路由协议,用于在不同的自治...

    使得ns2支持BGP协议

    使得ns2支持BGP协议 ns2 是一个广泛应用于网络模拟的开源工具,它提供了一个灵活的平台来模拟各种网络协议和应用场景。然而,默认的 ns2 并不支持 BGP 协议,这限制了它在网络模拟中的应用场景。为了扩展 ns2 的...

    bgp协议

    **BGP(边界网关协议)详解** BGP,全称Border Gateway Protocol,是互联网上的一种核心路由协议,用于在不同的自治系统(AS,Autonomous System)之间交换路由信息。AS是网络运营者自主管理的一组路由器,拥有独立...

Global site tag (gtag.js) - Google Analytics