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
        
EBGPIBGP路由下一跳问题
R1(config)#
router bgp 10
neighbor 10.10.0.2 next-hop-self //通告邻居下一跳为本路由器
 
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                0    100      0 40 i
*                   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                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
                                   //通过next-hop-self命令改变了从IBGP学到的路由的下一跳
 
R1R2之间的线断开,出现了环路
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
 
本实验采用第二种方案解决