BGP--笔记02

本文深入讲解BGP配置细节,包括BGP邻居关系建立、路由通告原则、基本配置、邻居源IP地址选择、eBGP多跳问题、下一跳行为、Peer-Group应用、路由通告方法及汇总技巧等内容。

BGP--笔记02

BGP
1,BGP邻居关系 
     Peers = Neighbors
BGP邻居:
          首先建立TCP连接,并通过该TCP连接来交换BGP路由信息

  1)eBGP(External BGP):外部BGP邻居
    建立邻居关系的路由器位于不同的AS中
    通常认为【eBGP邻居】是【直连】,因此在发送BGP消息给eBGP邻居时,【缺省】的TTL值为【1】IP报文的TTL

 2)iBGP(Internal BGP):内部BGP邻居
    建立邻居关系的路由器位于相同的AS中
    通常认为iBGP邻居是【非直连】, 因此在发送BGP消息给iBGP邻居时,【缺省】的TTL值为【255】  

2,iBGP全互连问题
 在Transit AS中,为了避免出现路由黑洞,则存在以下2种解决方案:
       1)将BGP路由重分发到IGP中,一般不建议使用

       2)中转Transit AS中的【所有路由器】运行BGP,并且形成【全互联iBGP】邻居
             --[在末节AS中完全没有必要,只要在出口的部分配置BGP就足够了]--



3,BGP路由通告的原则
    1)从iBGP邻居学习的路由,不能通告给iBGP邻居(水平分割原则)--[避免在 【AS内部】 形成环路]

                                            AS_PATH--[避免在 【AS之间】 形成环路,外部会改变]

                  eBGP------iBGP-----X---->iBGP

    2)从eBGP邻居学习的路由,可以通告给iBGP邻居或eBGP邻居

 3)从iBGP邻居学习的路由,能否通告给eBGP邻居?
                   a)若【开启同步原则
         则这条通过iBGP学习的BGP路由,通过IGP也必须能够学习到(即满足同步条件),可以;
                               否则 本路由器不会使用该路由,并且不可以发送给eBGP邻居
         
      b)若【关闭同步原则】(为了避免该AS中的路由黑洞,在iBGP邻居【全互联】时可以安全的关闭"同步原则")
         可以

    注:能够通告给BGP邻居的路由应该都是本路由器认为【最优】的路由!


BGP路由通告的原则
     i) 从iBGP邻居学习的路由, 不能通告给iBGP邻居(水平分割原则)          iBGP  ---X---> iBGP
     ii)从eBGP邻居学习的路由, 可以通告给iBGP邻居或eBGP邻居               eBGP  ------->iBGP or eBGP
     iii)从iBGP邻居学习的路由, 能否通告给eBGP邻居?                                iBGP  -------> ? eBGP   
     a)若开启同步 synchronization On 原则
    则这条能通过iBGP学习的BGP路由,通过IGP也必须能够学习到(既满足同步条件)
                     ---可以
    否则本路由器不会使用该路由,并且---不可以---发送给eBGP邻居! 
       
                             自己使用和发给邻居的表明都是最优路由
             b)若关闭同步原则(为了避免路由黑洞,在iBGP邻居全互联时可以安全的关闭"同步原则")
                   ---可以


4,BGP的基本配置
  1)进入BGP路由协议的配置模式
     router(config)#router bgp 65000(本路由器所属的AS号)
               ---该配置并没有启动BGP,只是进入到该模式,【邻居配置完成】建立好后 才算启用BGP
                                   【一般1个路由器只能运行1个BGP进程】
  2)配置BGP邻居
  Router(config-router)#neighbor x.x.x.x remote-as 邻居所属的AS号
               ---对于eBGP和iBGP配置是通用的
  
     ** 暂时关闭邻居关系:
      Routere(config-router)#neighbor ip-address | peer-group-name 【shutdown
                  若想暂时关闭邻居关系,建议采用shutdown而不是前面加no ,
                  因为neighbor后的配置带有参数情况下,no neighbor xxxx     会将相关参数都删除,恢复起来配置繁琐!
     
      **恢复邻居关系:     
      Routere(config-router)#【no】neighbor ip-address | peer-group-name 【shutdown】
   



5,BGP邻居建立时的【源IP地址】问题
        一个BGP路由器收到BGP消息时,将检查该BGP消息的源IP地址,如果该源IP地址不在我的BGP邻居列表中,则忽略该BGP消息!

        因此在建立BGP邻居时,若BGP邻居间存在多条路径可达,则为了提高邻居的可靠性,同时为了不必建立过多的邻居关系,
        通常通过【loopback接口】来建立邻居。

 配置1:
        RouterA:
                 router bgp 65102
                 neighbor 10.2.2.4 remote-as 65102
                          路由器A如何和路由器D建立BGP邻居?
                  BGP消息: 源IP为? 目标IP为? 10.2.2.4
                          此时的源IP地址会根据路由器A的路由表中去往10.2.2.4的下一跳若为10.3.3.3,
                           则RouterA发送BGP消息的源IP地址为10.3.3.1
                           因此RouterD收到后,由于10.3.3.1不在RouterD的邻居列表中,RouterD将忽略该BGP消息

       RouterD:
                 router bgp 65102
                 neighbor 10.1.1.1 remote-as 65102
=========================
 配置2:【推荐】
        RouterA:
                 router bgp 65102
                 neighbor 4.4.4.4 remote-as 65102
                 neighbor 4.4.4.4 update-source loopback 0

       RouterD:
                 router bgp 65102
                 neighbor 1.1.1.1 remote-as 65102
              neighbor 1.1.1.1 update-source loopback 0
   
         注:使用IGP可以保证loopback接口可达




6,eBGP邻居的多跳问题

           eBGP缺省情况下是直连的,实际中并非直连
    --当eBGP邻居不是直连时,必须配置eBGP多跳参数,调整其TTL值,使得BGP消息能够正常发送到邻居路由器

        Router(config-router)#neighbor x.x.x.x ebgp-multihop 跳数 (修改为能够让BGP消息正常到达对端路由器即可)
           
       步骤
              1)配置静态路由.保证建立邻居关系的二个loopback接口的路由是可达的
         eg, ip route 1.1.1.1 255.255.255.255 192.168.1.34--(去往环回接口的主机路由)

              2)创建eBGP邻居
         loopback接口并非直连接口,所以报文至少经过2个路由器才可到达对方
         eg,
                     router bgp 65102
                     neighbor 1.1.1.1 remote-as 65101
                     neighbor 1.1.1.1 update-srouce loopback 0
                     neighbor 1.1.1.1 ebgp-multihop 2

    注: 
                 如果是(1)非直连的路由器
             或
                    通过(2)环回接口           来建立的邻居关系的时候一定要指定多跳的参数,跨路由器来建立eBGP邻居关系





7,下一跳行为
    默认情况下,路由器A发送BGP更新给【eBGP邻居】(路由器B)时,该路由的下一跳地址将【修改】为路由器A的某个IP地址 
         (注:具体的IP地址为路由器A与路由器B建立BGP邻居关系的IP地址)

          路由器A发送BGP更新给【iBGP邻居】(路由器B)时,该路由的下一跳地址将【保持不变】!

   在iBGP邻居学习BGP路由时,为了保证下一跳是可达的,可以强制更改下一跳地址
     *****主要针对 i BGP邻居进行更改
    
    Router(config-router)#neighbor x.x.x.x next-hop-self
               表示发送BGP路由更新给x.x.x.x这个邻居时,将路由的下一跳地址更改为本路由器与x.x.x.x建立BGP邻居关系的IP地址




8,Peer-Group(对等体组)
 要求:
        配置在同一个peer-group中的BGP邻居必须拥有相同的出口(outbound)策略,但是入口策略可以不同
  优点:
            1)简化BGP邻居的配置
    2)提高 BGP更新报文 产生的效率



9,BGP中的路由通告
   Router(config-router)#network x.x.x.x [mask y.y.y.y]

         
    1)BGP用来通告某条路由,

    2)只要在本路由器的路由表存在该路由,BGP就可以将它通告出去
                            network 192.168.1.0 mask 255.255.255.0  -----通告24位掩码路由
                            network 192.168.1.0 mask 255.255.255.128 ----通告25位掩码路由

-----------------------------------------------------           
      与IGP中的network对比
                1)用来确定本路由器的哪些接口启动该IGP协议

     2)network后的网段肯定是与本路由器的接口IP对应
-----------------------------------------------------


   若BGP中的network未添加掩码,分为以下2种情况:
       1)自动汇总开启
      假设在BGP路由协议下配置:
              router(config)#router bgp 65000
              router(config)#network 172.16.0.0
                只要该路由器上存在172.16.0.0路由  或者
                                               它的任何一个子网路由,----->则该路由器将会通告172.16.0.0/16,不会通告子网路由


       2)关闭自动汇总(新版本都是关闭的,network后面的网络号+掩码 必须能够在路由表精确匹配,才可以通告该路由信息)
            Router(config)#router bgp 65000
            Router(config-router)# no auto-summary
          假设在BGP路由协议下配置:
              router(config)#router bgp 65000
              router(config)#network 172.16.0.0
                                             **只有该路由器上存在172.16.0.0/16时,才会通告172.16.0.0/16;

              router(config)#network 172.16.1.0  mask 255.255.255.128
                                            **只有该路由器上存在172.16.0.0/25时,才会通告172.16.0.0/25.
注:可以将IGP学习到的路由直接重分发到BGP中。




10.BGP中如何进行【路由汇总】?

  1)【使用network命令进行汇总】
         a)首先手工配置一种汇总路由,【指向NULL0 】

                   b)使用network命令,网络号+掩码为 汇总的路由

 例如:R1的路由表中存在以下路由:
            172.16.0.0/24
    172.16.1.0/24
            172.16.2.0/25
            172.16.3.0/24

     R1(config)#ip route 172.16.0.0 255.255.252.0 null 0

        R1(config)#router bgp 65000
        R1(config-router)#network 172.16.0.0 mask 255.255.252.0


    2)使用【aggregate-address】命令

   注:该命令会自动产生一条 null0 的路由

            172.16.0.0/24
    172.16.1.0/24
            172.16.2.0/25
            172.16.3.0/24
    R1(config)#router bgp 65000
   R1(config-router)#network 172.16.0.0 mask 255.255.255.0
 R1(config-router)#network 172.16.1.0 mask 255.255.255.0
 R1(config-router)#network 172.16.2.0 mask 255.255.255.128
 R1(config-router)#network 172.16.3.0 mask 255.255.255.0

  R1(config-router)#aggregate-address 172.16.0.0 255.255.252.0 [summary-only]--- 该参数只通告汇总路由,明细路由不通告
  :
  R1(config)#router bgp 65000(假设以上IGP路由是通过OSPF学习到的)
  R1(config-router)#redistribute ospf 1
  R1(config-router)#aggregate-address 172.16.0.0 255.255.252.0 [summary-only]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值