Cisco BGP Bilanciamento del carico diseguale


9

Sto cercando di implementare la funzionalità BGP Unequal Load Load Balancing nella mia rete. Secondo i manuali di Cisco (lungo: http://www.cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html , breve: https://ccieblog.co.uk / bgp / bgp-disequal-load-cost-sharing ) Ho costruito una tale topologia netta:

topologia netta

R1 - router in cui sto cercando di implementare il bilanciamento del carico per il traffico in uscita. natViene utilizzata la tabella VRF con nome .

R2-R4 - Server NAT che eseguono quagga, con percorso predefinito a R5 condiviso con R1 su eBGP.

Configurazione R1

Versione IOS R1: 12.2 (33) SXJ4 (s72033-adventerprisek9_wan-mz.122-33.SXJ4.bin)

Configurazione R2 ( solo R3 R4 router-id e vlan differisce)

Di conseguenza ho 3 percorsi predefiniti diversi su R1 con lo stesso numero di condivisioni - 1/1 (1: 1: 1). Ma proporzione 1: 2: 3 con estensione:

R1# sh ip bgp vpnv4 vrf nat 0.0.0.0

Paths: (6 available, best #5, table nat)
Multipath: eiBGP
  Advertised to update-groups:
     2         
  65000
    10.30.227.227 from 10.30.227.227 (10.30.227.227)
      Origin IGP, localpref 100, valid, external, multipath
      Extended Community: RT:192.168.33.4:13
      DMZ-Link Bw 250 kbytes
  65000, (received-only)
    10.30.227.227 from 10.30.227.227 (10.30.227.227)
      Origin IGP, localpref 100, valid, external
      DMZ-Link Bw 250 kbytes
  65000
    10.30.228.228 from 10.30.228.228 (10.30.228.228)
      Origin IGP, localpref 100, valid, external, multipath
      Extended Community: RT:192.168.33.4:13
      DMZ-Link Bw 375 kbytes
  65000, (received-only)
    10.30.228.228 from 10.30.228.228 (10.30.228.228)
      Origin IGP, localpref 100, valid, external
      DMZ-Link Bw 375 kbytes
  65000
    10.30.225.225 from 10.30.225.225 (10.30.225.225)
      Origin IGP, localpref 100, valid, external, multipath, best
      Extended Community: RT:192.168.33.4:13
      DMZ-Link Bw 125 kbytes
  65000, (received-only)
    10.30.225.225 from 10.30.225.225 (10.30.225.225)
      Origin IGP, localpref 100, valid, external
      DMZ-Link Bw 125 kbytes

R1# sh ip cef vrf nat 0.0.0.0/0 internal

0.0.0.0/0, epoch 3, flags rib only nolabel, rib defined all labels, RIB[B], refcount 7, per-destination sharing
  sources: RIB, D/N, DRH
  feature space:
   NetFlow: Origin AS 0, Peer AS 0, Mask Bits 0
   Broker: linked
   IPRM: 0x00018000
  subblocks:
   DefNet source: 0.0.0.0/0
  ifnums:
   Vlan3225(231): 10.30.225.225
   Vlan3227(232): 10.30.227.227
   Vlan3228(233): 10.30.228.228
  path 541B7858, path list 53E3E0D8, share 1/1, type recursive nexthop, for IPv4, flags resolved
  recursive via 10.30.225.225[IPv4:nat], fib 5496C804, 1 terminal fib
    path 541B7BF8, path list 53E3E170, share 1/1, type adjacency prefix, for IPv4
    attached to Vlan3225, adjacency IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
  path 541B78CC, path list 53E3E0D8, share 1/1, type recursive nexthop, for IPv4, flags resolved
  recursive via 10.30.227.227[IPv4:nat], fib 54969B7C, 1 terminal fib
    path 541B7B10, path list 53E3E08C, share 1/1, type adjacency prefix, for IPv4
    attached to Vlan3227, adjacency IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
  path 541B7DC8, path list 53E3E0D8, share 1/1, type recursive nexthop, for IPv4, flags resolved
  recursive via 10.30.228.228[IPv4:nat], fib 54970EAC, 1 terminal fib
    path 541B79B4, path list 53E3E040, share 1/1, type adjacency prefix, for IPv4
    attached to Vlan3228, adjacency IP adj out of Vlan3228, addr 10.30.228.228 513F6560
  output chain:
    loadinfo 51283B80, per-session, 3 choices, flags 0003, 5 locks
    flags: Per-session, for-rx-IPv4
    15 hash buckets
      < 0 > IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
      < 1 > IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
      < 2 > IP adj out of Vlan3228, addr 10.30.228.228 513F6560
      < 3 > IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
      < 4 > IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
      < 5 > IP adj out of Vlan3228, addr 10.30.228.228 513F6560
      < 6 > IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
      < 7 > IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
      < 8 > IP adj out of Vlan3228, addr 10.30.228.228 513F6560
      < 9 > IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
      <10 > IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
      <11 > IP adj out of Vlan3228, addr 10.30.228.228 513F6560
      <12 > IP adj out of Vlan3225, addr 10.30.225.225 513F6B60
      <13 > IP adj out of Vlan3227, addr 10.30.227.227 513F66E0
      <14 > IP adj out of Vlan3228, addr 10.30.228.228 513F6560
    Subblocks:
     None

Che cosa sto facendo di sbagliato? Secondo i manuali, dmzlink bwvalori diversi dovrebbero causare diverse proporzioni di condivisione del carico, ma in realtà - non è così!


AGGIORNAMENTO 1 - richiesto dall'utente bangal

R1# show ip bgp all summary

For address family: IPv4 Unicast
BGP router identifier X.X.X.129, local AS number 41096
BGP table version is 22283352, main routing table version 22283352
34749 network entries using 4065633 bytes of memory
61661 path entries using 3206372 bytes of memory
8119/5337 BGP path/bestpath attribute entries using 1299040 bytes of memory
3752 BGP AS-PATH entries using 155474 bytes of memory
2990 BGP community entries using 138266 bytes of memory
146 BGP extended community entries using 5168 bytes of memory
53 BGP route-map cache entries using 1696 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 8871649 total bytes of memory
BGP activity 4716897/4682147 prefixes, 11331539/11269872 paths, scan interval 60 secs

# Here are bgp neighbours from global routing table. Not relevant to the question. IP addresses are hidden 

Neighbor     V       AS    MsgRcvd   MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
X.X.X.1      4       XX219    791704  760380 22283352    0    0 6d17h           1
X.X.X.33     4       XX219 112902498 1315655 22283352    0    0 6d17h           0
X.X.X.238    4       XX772    801422  762830 22283352    0    0 2w5d            0
X.X.X.206    4       XX540   2886112 1313917 22283352    0    0 4w4d         9641
X.X.X.70     4       XX772 188343075 1313853 22283352    0    0 6d14h       25881
X.X.X.78     4       XX772 148265282  941127 22283352    0    0 2w6d        26098

# Here are neighbours for vrf nat.

For address family: VPNv4 Unicast
BGP router identifier X.X.X.129, local AS number 41096
BGP table version is 824, main routing table version 824
1 network entries using 137 bytes of memory
6 path entries using 408 bytes of memory
1 multipath network entries and 3 multipath paths
8119/1 BGP path/bestpath attribute entries using 1299040 bytes of memory
3752 BGP AS-PATH entries using 155474 bytes of memory
2990 BGP community entries using 138266 bytes of memory
146 BGP extended community entries using 5168 bytes of memory
53 BGP route-map cache entries using 1696 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1600189 total bytes of memory
3 received paths for inbound soft reconfiguration
BGP activity 4716897/4682147 prefixes, 11331539/11269872 paths, scan interval 15 secs

Neighbor        V          AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.30.225.225   4       65000   11003   11443      824    0    0 3d18h           1
10.30.227.227   4       65000    9853   10293      824    0    0 3d18h           1
10.30.228.228   4       65000   10992   11432      824    0    0 3d18h           1

R1# sh ip route vrf nat

Routing Table: nat
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 10.30.228.228 to network 0.0.0.0

     10.0.0.0/24 is subnetted, 4 subnets
C       10.30.0.0 is directly connected, Vlan30
C       10.30.228.0 is directly connected, Vlan3228
C       10.30.227.0 is directly connected, Vlan3227
C       10.30.225.0 is directly connected, Vlan3225
B*   0.0.0.0/0 [20/0] via 10.30.228.228, 3d18h
               [20/0] via 10.30.227.227, 3d18h
               [20/0] via 10.30.225.225, 3d18h

R1# sh ip bgp vpnv4 vrf nat neighbors

R1 sh ip bgp output vicini

R1# sh run

R1 che esegue le informazioni sensibili di configurazione è mascherato


1
La tua configurazione corrente di R1 manca bandwidth 50000per "interfaccia Vlan3228"? Potresti collegare anche l'output di 'sh ip bgp <IP of R5>'?
Andrey Sapegin,

1
Anche in esecuzione-config, per quanto ho capito, le larghezze di banda dovrebbero essere 50kbs-100kbs-150kbs e la tua produzione di R1# sh ip bgp vpnv4 vrf nat 0.0.0.0spettacoli 125kbs-250kbs-350kbs ...
Andrey Sapegin

1
@AndreySapegin sh ip bgp vpnv4 vrf nat 10.30.228.228mostra lo stesso di sh ip bgp vpnv4 vrf nat 0.0.0.0. Hai perso la neighborsparola chiave? In tal caso, l'output di sh ip bgp vpnv4 vrf nat neighbors 10.30.228.228te può vedere alla fine dell'output dei vicini shp bgp
Shamanu4

1
La guida che hai citato ( cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html ) distingue tra neighbor dmzlink-bw, che consente solo la pubblicità della larghezza di banda ai vicini (presentata nella tua configurazione) e bgp dmzlink-bw, che consente il bilanciamento del carico proporzionale (e sembra essere MANCANTE nella configurazione). Potresti provare a mettere bgp dmzlink-bwnella tua configurazione di corsa?
Andrey Sapegin,

1
@AndreySapegin. Sì, sono sicuro che maximum pathsdovrebbe essere sotto address-family. Ho bisogno della funzione multipath nell'istanza vrf ma non nella tabella di routing globale. Se metto maximum pathssotto router bgp 100ottengo in risultato solo un percorso tramite R5 e nessun percorso tramite R3 e R2. Stesso risultato per la ibgpfamiglia di indirizzi secondari, perché tutti i vicini sono esterni. La larghezza di banda ereditata su Port-channel è coerente nella configurazione. Ho rimosso questa riga senza alcun effetto. commit
Shamanu4

Risposte:


3

Il problema chiave sembra essere bgp dmzlink-bwun'opzione mancante nella famiglia di indirizzi nella configurazione. Consentitemi, tuttavia, di riassumere i miei commenti qui:

  1. bgp dmzlink-bwsotto address-family. neighbor dmzlink-bwconsente solo la pubblicità della larghezza di banda ai vicini, mentre bgp dmzlink-bwconsente il bilanciamento del carico proporzionale stesso.
  2. Running-config bandwidth 50000mancava l'opzione per 'interfaccia Vlan3228'
  3. Come menzionato in questo esempio di configurazione , al maximum-paths eibgp 3posto di potrebbe essere necessaria l' opzionemaximum-paths 3
  4. Oltre a sh ip bgp vpnv4 vrf nat 0.0.0.0e altri comandi menzionati nelle guide originali (vedi la domanda), di Shamanu4 e bangal, è utile verificare se i conteggi delle condivisioni di traffico sono diversi per i collegamenti bilanciati sotto carico usandosh ip route vrf nat 0.0.0.0
  5. Controlla se non ci sono altre opzioni che potrebbero interferire con la configurazione del bilanciamento del carico (ad es. bandwidth inheritSu Port-channel)

Come consiglio generale, a volte è molto difficile identificare il problema, quando hai una grande configurazione in esecuzione con molte opzioni. Se il problema persiste, creerei un'impostazione simile con configurazione vuota e proverei a configurare lì solo le opzioni rilevanti (esempio di lavoro minimo), per vedere se funziona e non interferisce con altre opzioni, elenchi di accesso (proprio come esempio, è estremamente improbabile in questo caso particolare) ecc. Se non si dispone di hardware di riserva e il router è in produzione, quindi non è possibile sperimentare direttamente una configurazione vuota su di esso, è possibile:

  • Usa PC / VM Linux con software di routing come Quagga (menzionato nella domanda)
  • Usa il simulatore di Cisco: Boson NetSim per CCNP supporta BGP, tuttavia non sono sicuro che la famiglia di indirizzi / VPN / VRF sia supportata
  • Usa macchine virtuali con IOS XRv di Cisco. Per quanto mi ricordo, era disponibile gratuitamente con un limite di larghezza di banda di 2 Mbit / s, che dovrebbe essere sufficiente per il test. Ancora una volta, non sono sicuro che la famiglia di indirizzi / VPN / VRF sia supportata: panoramica del router Cisco IOS XRv , collegamento per il download di VM
  • Utilizzare il simulatore GNS3 ( http://www.gns3.com/ ). Ci sono immagini Cisco IOS per questo, tuttavia, non so come ottenerle.
  • Infine, potresti persino provare ad acquistare hardware usato da luoghi come ebay il più economico possibile solo a scopo di test.

1
Non posso ancora confermare o confutare questa teoria. IOS versione 15.1 (2) SY4a, inoltre, non hanno opzioni per posto dmzlink-bwsotto address-family. Ho bisogno di un po 'di tempo per svelare le contraddizioni dei documenti Cisco con la vita reale.
Shamanu4,

È davvero strano. Puoi provare a consultare i seguenti documenti: cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/… , cisco.com/c/en/us/td/docs/ios -xml / ios / iproute_bgp / configuration /… , ma non vedo nulla che manchi nella tua configurazione ...
Andrey Sapegin,

Ho intenzione di acquistare la licenza VIRL di Cisco e provare a simulare la topologia lì. Riferirò di eventuali risultati in post più tardi. Grazie per l'aiuto.
Shamanu4,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.