BGP基础概念

    特点:1. 基于TCP179端口封装报文

              2.支持跨跳建立邻居

              3.属于路径矢量路由协议,在通过BGP路由时,携带大量路由属性

                    1.控制路由传递     2.路由优选

              4.支持承载大量的路由

    一、BGP对等体

           IBGP对等体:同一个AS内部建立BGP对等体

           EBGP对等体:AS之间建立BGP对等体

    二、BGP报文

          Open报文:携带本端参数,用于协商建立对等体  

                       参数:版本、Router-ID、AS号、Hold-Time(180s)、扩展能力  

          Keepalive报文:首次发送用于表示协商成功,对等体建立成功

                                   后续周期性发送用于维护TCP连接、维护对等体关系

          Update报文:通告路由信息,携带路由属性信息

                               撤销路由信息,撤销路由时不需要携带路径属性信息

                        通告路由:NLRI(可达前缀/前缀长度)、Path attributes(属性列表)

                        撤销路由:Withdrawn routes(不可达前缀/前缀长度)

          Route-refresh报文:刷新路由,策略改变后发送该报文进行路由刷新

          Notification报文:用于通知对等体之间错误信息

           

   三、状态机

           Idle状态:BGP初始状态,BGP对等体建立失败

           Connect状态:BGP建立TCP连接

                                 1.建立超时,停留在Connect状态,一直尝试建立TCP连接

                                                    最终仍然建立失败,退回到Idle状态

                                 2.建立失败,进入Active状态

           Active状态:BGP尝试建立TCP连接

                                最大时间:180s,如果仍然未建立成功,则回退Connect,最后

                                回退到Idle状态

                *在Connect状态、Active状态如果TCP连接建立成功,进入OpenSent

           OpenSent状态:BGP发送Open报文,携带本端的参数进行协商

                                    参数:版本、Router-ID、AS号、Hold-Time(180s)、扩展能力

              接收对等体Open报文,检查报文携带的参数,参数合法则进入OpenConfirm状态

           OpenComfirm状态:BGP发送Keepalive报文,表示协商完成对等体建立成功

               接收对等体Keepalive报文,收到报文立马进入Established状态

           Established状态:表示对等体建立完成


       *BGP对等体建立过程

-------------------------------------------------------------------------------------------    

   


建立对等体时,更新源的区别

  1.使用物理接口建立对等体

        默认使用去往对等体最优路由的出接口IP地址作为更新源地址

        peer 10.1.13.3 as-number 300

  2.使用Loopback接口建立对等体

       必须手工指定更新源地址为本地的Loopback接口地址

       peer 172.16.1.4 as-number 300  

       peer 172.16.1.4 connect-interface LoopBack0  /*指定更新源地址*/

    *Loopback接口一旦创建,除非手工删除,否则接口状态一直为Up,可靠性更高  


  *建立BGP对等体时发送报文跳数

            默认建立EBGP对等体,建立对等体发送的报文的TTL:1

            默认建立IBGP对等体,建立对等体发送的报文的TTL:  255

    如果使用非直连接口建立EBGP对等体,必须配置EBGP多跳

            peer 172.16.1.2 ebgp-max-hop 2(跳数/TTL值)


*在建立EBGP对等体时,建立使用直连的物理接口地址建立对等体

  在建立IBGP对等体时,AS内部存在冗余链路使用Loopback建立对等体可靠性更高

BGP路由生成方式:

   默认BGP对等体建立后,不会产生任何路由

   1.network宣告:逐条路由宣告,宣告的路由必须在本地IP路由表中存在

         *建立对等体使用的Loopback0接口路由宣告后,对等体收到后视为无效路由

   2.import引入:将某个协议的所有路由引入到BGP,通常会对引入的路由进行过滤

   3.summary聚合

   注入本地BGP的路由会立马通告自身给所有的BGP对等体

   

BGP路由通告原则:

    1.仅发布有效且最优的路由

        *路由的下一跳可达则为有效路由

         peer 172.16.1.4 next-hop-local  /*强制修改路由的下一跳为本地更新源地址*/

    2.从EBGP对等体收到的路由可以通告给自身所有的BGP对等体(EBGP、IBGP对等体)

    3.从IBGP对等体收到的路由只能通告给自身的EBGP对等体,不能通告给自身IBGP

          对等体(IBGP水平分割:防止AS内部路由环路)

    4.IBGP和IGP协议同步

         从IBGP对等体收到的路由,必须在IGP协议路由表中存在,才能通告给自身的

         EBGP对等体,否则不通告(防止AS内部路由黑洞)(华为默认不遵循该原则)

      解决路由黑洞:IBGP全互联,在AS内部所有设备之间都需要建立IBGP对等体