Балансування нерівних витрат на Cisco BGP


9

Я намагаюся реалізувати у своїй мережі функцію збалансування завантаження нерівних витрат BGP. Відповідно до посібників cisco (довгий: http://www.cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html , короткий: https://ccieblog.co.uk / bgp / bgp-нерівний розподіл витрат-розподіл витрат ) Я створив таку чисту топологію:

чиста топологія

R1 - маршрутизатор, де я намагаюся реалізувати балансування навантаження для вихідного трафіку. natВикористовується таблиця VRF з ім'ям .

R2-R4 - NAT-сервери, на яких працює quagga, з маршрутом за замовчуванням до R5, спільним з R1, через eBGP.

Конфігурація R1

Версія R1 IOS: 12.2 (33) SXJ4 (s72033-adventerprisek9_wan-mz.122-33.SXJ4.bin)

Конфігурація R2 ( R3 , R4 тільки маршрутизатор-ідентифікатор і VLAN відрізняється)

У підсумку у мене є 3 різних маршрути за замовчуванням на R1 з однаковим підрахунком частки - 1/1 (1: 1: 1). Але пропорція 1: 2: 3 очікується:

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

Що я роблю неправильно? Відповідно до посібників, різні dmzlink bwзначення повинні спричиняти різну пропорцію розподілу навантаження, але насправді - це не так!


ОНОВЛЕННЯ 1 - запитується користувачем 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 вихід сусідів

R1# sh run

Інформація, що працює на конфігурації R1, маскується


1
Чи працює ваша конфігурація R1 bandwidth 50000для 'інтерфейсу Vlan3228'? Чи можете ви також додати висновок 'sh ip bgp <IP of R5>'?
Андрій Сапегін

1
Також у запущеній конфігурації, наскільки я зрозумів, пропускна здатність повинна бути 50 кбіт-100 кбіт-150 кбіт, а ваш вихід R1# sh ip bgp vpnv4 vrf nat 0.0.0.0показує 125 кбіт-250 кбіт-350 кбіт ...
Андрій Сапегін

1
@AndreySapegin sh ip bgp vpnv4 vrf nat 10.30.228.228відображає те саме, що і sh ip bgp vpnv4 vrf nat 0.0.0.0. Ви пропустили neighborsключове слово? Якщо це так, результат sh ip bgp vpnv4 vrf nat neighbors 10.30.228.228ви можете побачити в кінці R1 sh ip bgp вихід сусідів
Shamanu4

1
Посібник, про який ви згадали ( cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html ), розрізняє між собою neighbor dmzlink-bw, що лише дозволяє рекламу пропускної здатності для сусідів (представлений у вашому конфігурації) та bgp dmzlink-bw, що дозволяє пропорційно врівноважувати навантаження (і воно, здається, ВІДМОВЛЯЄТЬСЯ у вашому конфігурації). Чи можете ви спробувати помістити bgp dmzlink-bwу свій запущений конфігурацію?
Андрій Сапегін

1
@AndreySapegin. Так, я впевнений, що це maximum pathsповинно бути нижче address-family. Мені потрібна функція багатоповерховості в екземплярі vrf, але не в глобальній таблиці маршрутизації. Якщо я ставлю maximum pathsпід router bgp 100I отримує в результаті тільки один маршрут через R5 і ніяких маршрутів через R3 і R2. Той самий результат для ibgpсімейства адреси, оскільки всі сусіди зовнішні. Спадщина пропускної здатності на портовому каналі відповідає конфігурації. Я видалив цю лінію без ефекту. скоєння
Шаману4

Відповіді:


3

Ключова проблема, здається, відсутня bgp dmzlink-bwопція під сімейством адрес у конфігурації. Дозвольте, однак, підсумувати свої коментарі тут:

  1. bgp dmzlink-bwпід address-family. neighbor dmzlink-bwлише дозволяє рекламу пропускної здатності для сусідів, в той час як bgp dmzlink-bwдозволяє пропорційно врівноважувати навантаження.
  2. У Running-config bandwidth 50000відсутня опція для 'інтерфейсу Vlan3228'
  3. Як зазначено в цьому прикладі конфігурації , maximum-paths eibgp 3замість цього може знадобитися опціяmaximum-paths 3
  4. На додаток до sh ip bgp vpnv4 vrf nat 0.0.0.0та інших команд, згаданих у оригінальних посібниках (див. Питання), Shamanu4 та bangal, корисно перевірити, чи різняться кількість частки трафіку, якщо посилання збалансовані навантаження за допомогоюsh ip route vrf nat 0.0.0.0
  5. Перевірте, чи немає інших параметрів, які могли б перешкоджати налаштуванню балансування навантаження (наприклад, bandwidth inheritна Порт-каналі)

Як загальна порада, іноді дуже важко визначити проблему, коли у вас є великий запущений конфігуратор з великою кількістю варіантів. Якщо проблема не зникає, я створив би аналогічне налаштування з порожнім конфігурацією і спробував би там налаштувати лише відповідні параметри (Мінімальний робочий приклад), щоб побачити, чи працює він, і чи не заважає він іншим параметрам, спискам доступу (як, наприклад, вкрай малоймовірно у цьому конкретному випадку) тощо. Якщо у вас немає запасного обладнання, а ваш маршрутизатор виробляється, тому ви не можете безпосередньо експериментувати з порожньою конфігурацією на ньому, ви можете:

  • Використовуйте ПК / VM Linux з програмним забезпеченням для маршрутизації на зразок Quagga (згадане у запитанні)
  • Використовуйте симулятор від Cisco: Boson NetSim для CCNP підтримує BGP, проте я не впевнений, чи підтримуються сімейство адрес / VPN / VRF
  • Використовуйте віртуальні машини з IOS XRv від Cisco. Наскільки я пам’ятаю, він був доступний безкоштовно з обмеженням пропускної здатності 2 Мбіт / с, чого повинно вистачити для тестування. Знову ж таки, я не впевнений, чи підтримуються сімейство адрес / VPN / VRF: огляд маршрутизатора Cisco IOS XRv , посилання для завантаження VM
  • Використовуйте симулятор GNS3 ( http://www.gns3.com/ ). Для цього є зображення Cisco IOS, проте я не знаю, як їх отримати.
  • Нарешті, ви можете навіть спробувати придбати використане обладнання з таких місць, як ebay, як можна дешевше лише для тестування.

1
Досі не може підтвердити або спростувати цю теорію. IOS версія 15.1 (2) SY4a також не має варіантів розміщення dmzlink-bwпід address-family. Мені потрібен певний час, щоб розгадати суперечності cisco dok. З реальним життям.
Шаману4

Це дійсно дивно. Ви можете спробувати подивитися наступні документи: 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 / конфігурація /… , але я не бачу нічого у вашій конфігурації ...
Андрій Сапегін

Я збираюся придбати ліцензію cisco VIRL і спробую імітувати топологію там. Про будь-які результати я повідомлю пізніше. Дякуємо за допомогу.
Шаману4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.