1 BGP简介

1 .1BGP概述

  • BGP(Border Gateway Protocol)是一种自治系统间的动态路由发现协议。早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),当前使用的版本是BGP-4(RFC1771)。BGP-4适用于分布式结构,并支持无类域间路由CIDR(Classless Inter-Domain Routing)。BGP-4做为事实上的Internet外部路由协议标准,被广泛应用于ISP,数据中心,跨国公司。

    BGP特性描述如下**:

    BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。 不同AS间BGP路由通过携带AS路径信息解决路由循环问题,同一个AS间BGP路由,通过IGP解决路由环路。BGP使用TCP作为其传输层协议,提高了协议的可靠性。
    路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。 出于管理和安全方面的考虑,每个自治系统都希望能够对进出自治系统的路由进行控制,BGP-4提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。 BGP-4易于扩展,能够适应网络新的发展。
    BGP在路由器上以下列两种方式运行,IBGP(Internal BGP) EBGP(External BGP) 当BGP运行于同一自治系统(AS)内部时,被称为IBGP;当BGP运行于不同自治系统之间时,称为EBGP。
    BGP的消息类型 **

        BGP的运行是通过消息驱动的,BGP使用以下消息类型:******
        Type 1(OPEN):TCP连接建立后发送的第一个消息,用于建立BGP对等体间的连接关系  
        Type 2(UPDATE):BGP系统中最重要的信息,用于在对等体之间交换路由信息,它最多由三部分构成:不可达路由(unreachable)、路径属性(path attributes)、网络可达性信息NLRI(Network Layer Reachability Information)。 
        Type 3(NOTIFICATION):错误通告消息。 
        Type 4(KEEPALIVE):用于检测连接有效性的消息。
        Type 5(ROUTE-REFRESH):用于通知对等体自己支持路由刷新能力。  其
        中,前四种消息的定义可以在RFC1771中找到,而Type 5的消息则是在RFC2918(Route Refresh Capability for BGP-4)中定义的。**

    1.2 BGP的路由机制

            BGP初次启动时,路由器发送整个BGP路由表与对等体交换路由信息,之后只交换更新消息(update message)。运行过程中,通过接收和发送keep alive消息检测相互之间的连接是否正常。  发送BGP消息的路由器称为BGP发言人(speaker),它接收或产生新的路由信息,并发布(advertise)给其它BGP发言人。
            当BGP发言人收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给自治系统内所有其它BGP发言人。 相互交换消息的BGP发言人之间互称对等体(peer),若干相关的对等体可以构成对等体组(group)。 

    1. BGP发布路由的策略
    在VRP的实现中,BGP发布路由时采用如下策略: 有多条可选路径时,BGP发言人只选择最优的使用;
    BGP发言人只把自己使用的路由通告给对等体;
    BGP发言人从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP对等体和IBGP对等体);
    BGP发言人从IBGP获得的路由不向它的IBGP对等体通告;
    BGP发言人从IBGP获得的路由通告给它的EBGP对等体(VRP中,BGP与IGP不同步);
    连接一旦建立,BGP发言者将把自己所有BGP路由通告给新对等体。
    2. BGP选择路由的策略
    在VRP的实现中,BGP选择路由时采取如下策略:
    首先丢弃下一跳(Next hop)不可达的路由;
    优选最高本地优先级(Local-preference)的路由;
    优选本路由器始发的路由;
    优选经过AS(AS-Path)最少的路由;
    优选起点类型(Origin)最低的路由; 优选MED值最低的路由;
    优选从EBGP学来的路由;
    如果配置了负载分担,并且有多条到达同一AS或AS联盟的外部路由,则根据配置的路由条数选择多条路由进行负载分担;
    优选BGP ID最低的路由器发布的路由。

    2. MBGP概述

     传统的BGP-4只能管理IPv4的路由信息,对于使用其它网络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。  为了提供对多种网络层协议的支持,IETF对BGP-4进行了扩展,形成MBGP。
     目前的MBGP标准是RFC2858(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)。  MBGP向后兼容,即,支持BGP扩展的路由器与不支持BGP扩展的路由器可以互通。  

    2.1. MBGP的扩展属性

             BGP-4使用的报文中,与IPv4相关的三条信息都由Update报文携带,这三条信息分别是:NLRI(Network Layer Reachability Information,网络层可达性信息)、路径属性中的Next_Hop(下一跳的IP地址)、路径属性中的Aggregator(该属性中包含形成聚合路由的BGP发言者的IP地址)。 

    为实现对多种网络层协议的支持,BGP-4需要将网络层协议的信息反映到NLRI及Next_Hop。
    MBGP中引入了两个新的路径属性: MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。
    用于发布可达路由及下一跳信息。 MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
    这两种属性都是可选非过渡(optional non-transitive)的,因此,不提供多协议能力的BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。

    2.2. 地址族

    BGP采用地址族(Address Family)来区分不同的网络层协议,关于地址族的一些取值可以参考RFC1700(Assigned Numbers)。

    VRP实现多种MBGP扩展应用,包括对组播的扩展、对×××的扩展等,不同的扩展应用在各自的地址族视图下配置。

    转载:https://www.wendangxiazai.com/b-96312f650b1c59eef8c7b426.html