1、实验拓扑:

 

bgp邻居是什么 bgp邻居表_网络



2 、实验目的:



    (1)掌握 BGP(EBGP、IBGP)邻居建立过程,BGP路由通告原则



     (2)EBGP邻居用 Loopback地址建立邻居的条件



    (3)掌握路由发布(静态、动态)



    (4)掌握 EBGP、IBGP路由传递下一跳问题



     (4)掌握其配置



3 、理论分析



    建立邻居:



       手动配置邻居,一对邻居地址间经 TCP三次握手建立TCP连接,在TCP连接建立好的基础上,互相发送Open报文,协商BGP参数,建立BGP邻居。



    EBGP:不同 AS间建立EBGP邻居;用于在AS之间传播路由。



           一般使用直连端口来建;



           使用 Loopback地址建邻居需满足以下条件:



           二端 IP能互相通信;需要使用ebgp-multihop 来修改TTL值,EBGP默认为1。



IBGP:同一 AS内建立IBGP邻居,一般使用Loopback建立邻居;IBGP TTL值默认为255。



Next-hop-self:



    (1) 向 EBGP邻居通告路由时,将下一跳改变为自己。



    (2) 默认情况下, IBGP路由传播不改变下一跳。(可以通过使用next-hop-self命令改变为自己)



    (3) 本地始发的路由下一跳为 0.0.0.0,向BGP邻居通告时,将下一跳改变为自己。



    (4) 默认情况下,多路访问介质上的 BGP路由传播不改变下一跳。(包括IBGP、EBGP)



 



4 、部分配置



       在R1、R2、R5、R6运行IGP协议实现全网连通,并在R1、R2上下发一条缺省路同给R5、R6



       (1) BGP邻居建立



R1(config)#  router bgp 10 
  
 
  
 
                               neighbor 10.10.0.2 remote-as 10    
  
 
  
                            neighbor 10.10.0.2 update-source loopback0  
   //建立IBGP邻居 指定更新源 
  
 
  
 
                               neighbor 10.10.13.2 remote-as 30  //指定EBGP邻居 默认从接口发送更新



       (2) 路由发布(静态路由注入)



R1(config)#



      

ip route 10.10.0.0 255.255.0.0 null0 
  
 
  
 
                               router bgp 10 
  
 
  
 
                               network 10.10.0.0 mask 255.255.0.0 
  
 
  
 
                               (半动态注入)



RT1(config)#



router bgp 10
 
  

    network 10.10.5.0 mask 255.255.255.0 
  
 
  

    network 10.10.6.0 mask 255.255.255.0



5 、分析



R1(config)#
 
  

    ip route 10.10.0.0 255.255.0.0 Null0 
  
 
  

    router bgp 10 
  
 
  

      
                 network 10.10.0.0 mask 255.255.0.0



//使用 BGP发布路由,只将全局路由表中存在的路由发布出去,路由表中不存在的路由即使发布了也不会生效。所以动态注入时应先配置一条下一跳指向Null0的路由。






R1#do show ip bgp
 
  
 
      Network          Next Hop            Metric LocPrf Weight Path 
  
 
  

    * i10.10.0.0/16 
        10.10.0.2                0    100      0 i 
  
 
  

    *> 
                     0.0.0.0                  0         32768 i 
  
 
  
*> 10.30.0.0/16     10.10.13.2               0             0 30 i
 
  
*>i10.40.0.0/16     10.20.24.2               0    100      0 40 i
 
  
*                   10.10.13.2                             0 30 40 i
 
  

      
  
 
  
R2#do show ip bgp
 
  
 
      Network          Next Hop            Metric LocPrf Weight Path 
  
 
  

    * i10.10.0.0/16 
        10.10.0.1                0    100      0 i 
  
 
  

    *> 
                     0.0.0.0                  0         32768 i 
  
 
  
*>i10.30.0.0/16     10.10.13.2               0    100      0 30 i
 
  
*                   10.20.24.2                             0 40 30 i
 
  
*> 10.40.0.0/16     10.20.24.2               0             0 40 i



            // 在R1 、R2 上关于10.30.0.0 的路由,R1 只有一个下一跳,而R2 有二个下一跳的原因是:R1 从R3 通过EBGP 收到这条路由,再发送给R2 而R2 又通过R4 收到一条经过了2 个AS 的10.30.0.0 这条路由, 根据AS-Path R2 选择从R1 收到的路由放入路由表。又根据水平分割,故不再氢10.30.0.0 传回给R1.   10.40.0.0 同理得到。



         IBGP 发送路由不改变下一跳,故在R2上收到的10.30.0.0下一跳为10.10.13.2而不是10.10.0.1






EBGP 、IBGP路由下一跳问题



R1(config)#



router bgp 10



通告邻居下一跳为本路由器



 



R1#show ip bgp 
  
 
  
 
      Network          Next Hop            Metric LocPrf Weight Path 
  
 
  

    * i10.10.0.0/16 
        10.10.0.2                0    100      0 i 
  
 
  

    *> 
                     0.0.0.0                  0         32768 i 
  
 
  

    *> 10.30.0.0/16 
        10.10.13.2               0             0 30 i 
  
 
  
*>i10.40.0.0/16  
       10.10.0.2 
 
  

    * 
                      10.10.13.2                             0 30 40 i 
  
 
  

      
  
 
  

    R2(config-router)#do show ip bg 
  
 
  
 
      Network          Next Hop            Metric LocPrf Weight Path 
  
 
  

    * i10.10.0.0/16 
        10.10.0.1                0    100      0 i 
  
 
  

    *> 
                     0.0.0.0                  0         32768 i 
  
 
  
*>i10.30.0.0/16     10.10.0.1 
 
  

    * 
                      10.20.24.2                             0 40 30 i 
  
 
  

    *> 10.40.0.0/16 
        10.20.24.2               0             0 40 i 
  
 
  
       // 
   通过next-hop-self 
   命令改变了从IBGP 
   学到的路由的下一跳



R1 R2 之间的线断开,出现了环路




R5#traceroute 10.40.4.1 source 10.10.5.1 
  
 
  

    Type escape sequence to abort. 
  
 
  

    Tracing the route to 10.40.4.1 
  
 
  

      
  
 
  

     1 10.10.1.5 372 msec 20 msec 52 msec 
  
 
  

     2 10.10.1.6 116 msec 116 msec 264 msec 
  
 
  

     3 10.10.1.5 104 msec 152 msec 128 msec 
  
 
  

     4 10.10.1.6 172 msec 136 msec 80 msec 
  
 
  

     5 10.10.1.5 452 msec 204 msec 216 msec 
  
 
  

     6 10.10.1.6 360 msec 272 msec 232 msec 
  
 
  

     7 10.10.1.5 228 msec 252 msec 236 msec 
  
 
  

     8 10.10.1.6 228 msec 376 msec 344 msec 
  
 
  

     9 10.10.1.5 296 msec 484 msec 304 msec


解决路由环路的方法:



1.   在RT1和RT2之间在增加一条链路,以保证路由的健壮性。



2.   AS 10 内的所有设备启动BGP,配置IBGP全网状互连。



3.   AS 10 内所有设备启BGP,配置路由反射器RR。



4.    AS 10内所有设备启动 MPLS,边界设备之间建立MPLS LSP。



5.   在RT1 RT2上,有选择地把部分BGP路由重发布至IGP



 



本实验采用第二种方案解决


转载于:https://blog.51cto.com/1069967/380452