IBGP水平分割:从IBGP学习到的路由绝不对再传播给其它的IBGP邻居(可以传给EBGP邻居)。IGP中的RIPIGRP是基于端口的水平分割;而IBGP是基于邻居的水平分割。

IBGP水平分割主要是为了防止在AS内部产生路由环路!(而对于EBGP的水平分割主要有AS-PATH控制!)

解决办法:1full mesh(大型的网络中不现实)

          2、路由反射器

          3、联邦

这里我们这里就详细的讨论路由反射器。

1、路由反射器:C/S模型,在一个AS内,其中一台路由器作为路由反射器RR(Route Reflector),其它路由器做为客户机(Client)。客户机与路由反射器之间建立IBGP连接。路由反射器和它的客户机组成一个集群(Cluster)

2、工作原理:

  1)从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。

  2)从客户机学到的路由,发布给此RR的所有非客户机和其他客户机

  3)EBGP对等体学到的路由,发布给所有的非客户机和客户机。

  RR只需要在反射器上配置客户机不需要知道自己是客户机。(所以在选RR的时候要根据拓扑选择最合适的路由器,不然达不到效果!!

3、路由反射器的两个可选非传递属性Originator_IDCluster_List。都是为了防止环路的。

ORIGINATOR_ID是本地AS中路由发起方的Route ID,如果发起方发现接收到的路由的Originator_ID是自己Route ID,就知道出现了路由环路,因而忽略该路由

CLUSTER_LIST是由一串由路由传递所经过的路由反射簇(clusterID,如果RR发现其本地簇ID在其所接收到得路由的Cluster_list中,那么就知道出现了环路。

实验拓扑:


IBGP水平分割——路由反射器_路由反射器

R1

interface Loopback100

 ip address 100.1.1.1 255.255.255.0

!

interface FastEthernet0/0

 ip address 11.1.1.1 255.255.255.0

!

router bgp 100

 no synchronization

 bgp log-neighbor-changes

 network 100.1.1.0 mask 255.255.255.0

 neighbor 11.1.1.2 remote-as 200

!

 

R2:

interface Loopback1

 ip address 2.2.2.2 255.255.255.0

!

interface FastEthernet0/0

 ip address 12.1.1.1 255.255.255.0

!

interface FastEthernet1/0

 ip address 11.1.1.2 255.255.255.0

!

router rip

 version 2

 network 2.0.0.0

 network 12.0.0.0

 no auto-summary

!

router bgp 200

 no synchronization

 bgp router-id 2.2.2.2

 bgp log-neighbor-changes

 neighbor 3.3.3.3 remote-as 200

 neighbor 3.3.3.3 update-source Loopback1

 neighbor 3.3.3.3 next-hop-self

 neighbor 11.1.1.1 remote-as 100

!   

 

R3:

interface Loopback1

 ip address 3.3.3.3 255.255.255.0

!

interface FastEthernet0/0

 ip address 13.1.1.1 255.255.255.0

!

interface FastEthernet1/0

 ip address 12.1.1.2 255.255.255.0

 duplex half

!

router rip

 version 2

 network 3.0.0.0

 network 12.0.0.0

 network 13.0.0.0

 no auto-summary

!

router bgp 200

 no synchronization

 bgp router-id 3.3.3.3

 bgp log-neighbor-changes

 neighbor 2.2.2.2 remote-as 200

 neighbor 2.2.2.2 update-source Loopback1

 neighbor 4.4.4.4 remote-as 200

 neighbor 4.4.4.4 update-source Loopback1

!

 

R4:

interface Loopback1

 ip address 4.4.4.4 255.255.255.0

!

interface FastEthernet0/0

 ip address 14.1.1.1 255.255.255.0

 duplex half

!

interface FastEthernet1/0

 ip address 13.1.1.2 255.255.255.0

 duplex half

!

router rip

 version 2

 network 4.0.0.0

 network 13.0.0.0

 no auto-summary

!

router bgp 200

 no synchronization

 bgp router-id 4.4.4.4

 bgp log-neighbor-changes

 neighbor 3.3.3.3 remote-as 200

 neighbor 3.3.3.3 update-source Loopback1

 neighbor 3.3.3.3 next-hop-self

 neighbor 14.1.1.2 remote-as 300

 

R5:

interface Loopback30

 ip address 30.1.1.1 255.255.255.0

!

router bgp 300

 no synchronization

 bgp log-neighbor-changes

 network 30.1.1.0 mask 255.255.255.0

 neighbor 14.1.1.1 remote-as 200

!

 

R3#sh ip bg

BGP table version is 9, local router ID is 3.3.3.3

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path

*>i30.1.1.0/24      4.4.4.4                  0    100      0 300 i

*>i100.1.1.0/24     2.2.2.2                  0    100      0 100 i

 

R2#sho ip bg

BGP table version is 8, local router ID is 2.2.2.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path

*> 100.1.1.0/24     11.1.1.1                 0             0 100 i

 

R4#sh ip bg 

BGP table version is 6, local router ID is 4.4.4.4

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path

*> 30.1.1.0/24      14.1.1.2                 0             0 300 i

由上看到R2R4都将学到了路由传给了R3,但是由于IBGP水平分割问题,R3不会转发给其邻居。

R3配做路由反射器:

R3(config)#router b 200

R3(config-router)#neighbor 2.2.2.2 route-reflector-client

03:21:59: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Down RR client config change

R3(config-router)#neighbor 4.4.4.4 route-reflector-client

03:22:15: %BGP-5-ADJCHANGE: neighbor 4.4.4.4 Down RR client config change

R3(config-router)#

03:22:25: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up

R3(config-router)#

03:22:41: %BGP-5-ADJCHANGE: neighbor 4.4.4.4 Up

可以看到R3R2R4重新建立了邻居关系。

R3#sho ip bg neighbors

BGP neighbor is 2.2.2.2,  remote AS 200, internal link

  BGP version 4, remote router ID 2.2.2.2

  BGP state = Established, up for 00:02:57

  Last read 00:00:56, hold time is 180, keepalive interval is 60 seconds

  Neighbor capabilities:

    Route refresh: advertised and received(old & new)

    Address family IPv4 Unicast: advertised and received

  Message statistics:

    InQ depth is 0

    OutQ depth is 0

                         Sent       Rcvd

    Opens:                  8          8

    Notifications:          0          0

    Updates:               10         12

    Keepalives:           300        300

    Route Refresh:          2          1

    Total:                320        321

  Default minimum time between advertisement runs is 5 seconds

 

 For address family: IPv4 Unicast

  BGP table version 29, neighbor version 29

  Index 1, Offset 0, Mask 0x2

  Route-Reflector Client  //RR可以看到R2R4client

                                 Sent       Rcvd

  Prefix activity:               ----       ----

    Prefixes Current:               1          1 (Consumes 36 bytes)

    Prefixes Total:                 1          1

    Implicit Withdraw:              0          0

    Explicit Withdraw:              0          0

    Used as bestpath:             n/a          1

    Used as multipath:            n/a          0

 

!

!

SRTT: 197 ms, RTTO: 984 ms, RTV: 787 ms, KRTT: 0 ms

minRTT: 4 ms, maxRTT: 300 ms, ACK hold: 200 ms

Flags: higher precedence, nagle

         

Datagrams (max data segment is 536 bytes):

Rcvd: 9 (out of order: 0), with data: 7, total data bytes: 199

Sent: 13 (retransmit: 0, fastretransmit: 0), with data: 7, total data bytes: 213

         

BGP neighbor is 4.4.4.4,  remote AS 200, internal link

  BGP version 4, remote router ID 4.4.4.4

  BGP state = Established, up for 00:02:43

  Last read 00:00:43, hold time is 180, keepalive interval is 60 seconds

  Neighbor capabilities:

    Route refresh: advertised and received(old & new)

    Address family IPv4 Unicast: advertised and received

  Message statistics:

    InQ depth is 0

    OutQ depth is 0

                         Sent       Rcvd

    Opens:                  8          8

    Notifications:          0          0

    Updates:                9         14

    Keepalives:           300        300

    Route Refresh:          2          3

    Total:                319        325

  Default minimum time between advertisement runs is 5 seconds

 

 For address family: IPv4 Unicast

  BGP table version 29, neighbor version 29

  Index 2, Offset 0, Mask 0x4

  Route-Reflector Client

                                 Sent       Rcvd

  Prefix activity:               ----       ----

    Prefixes Current:               1          1 (Consumes 36 bytes)

    Prefixes Total:                 1          1

    Implicit Withdraw:              0          0

    Explicit Withdraw:              0          0

    Used as bestpath:             n/a          1

    Used as multipath:            n/a          0

!

!

!

iss: 3706214856  snduna: 3706215070  sndnxt: 3706215070     sndwnd:  16171

irs:  807270701  rcvnxt:  807270901  rcvwnd:      16185  delrcvwnd:    199

 

SRTT: 186 ms, RTTO: 1079 ms, RTV: 893 ms, KRTT: 0 ms

minRTT: 4 ms, maxRTT: 352 ms, ACK hold: 200 ms

Flags: higher precedence, nagle

         

Datagrams (max data segment is 536 bytes):

Rcvd: 7 (out of order: 0), with data: 5, total data bytes: 199

Sent: 10 (retransmit: 0, fastretransmit: 0), with data: 6, total data bytes: 21