Cisco BGP Penyeimbangan Beban Biaya yang Tidak Sama

9

Saya mencoba menerapkan fitur Balancing Beban Beban BGP yang Tidak Sama di jaringan saya. Menurut manual cisco (panjang: http://www.cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html , pendek: https://ccieblog.co.uk / bgp / bgp-unequal-load-cost-sharing ) Saya telah membangun topologi bersih seperti itu:

topologi bersih

R1 - router tempat saya mencoba menerapkan load balancing untuk lalu lintas keluar. Tabel VRF dengan nama natdigunakan.

R2-R4 - Server NAT menjalankan quagga, dengan rute default ke R5 dibagikan dengan R1 melalui eBGP.

Konfigurasi R1

R1 versi iOS: 12.2 (33) SXJ4 (s72033-adventerprisek9_wan-mz.122-33.SXJ4.bin)

Konfigurasi R2 ( hanya R3 R4 router-id dan vlan berbeda)

Sebagai hasilnya, saya memiliki 3 rute default yang berbeda pada R1 dengan jumlah share yang sama - 1/1 (1: 1: 1). Tetapi proporsi 1: 2: 3 diekspos:

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

Apa yang saya lakukan salah? Menurut manual, dmzlink bwnilai yang berbeda harus menyebabkan proporsi pembagian beban yang berbeda, tetapi pada kenyataannya - tidak!


PEMBARUAN 1 - diminta oleh pengguna 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 keluaran tetangga

R1# sh run

R1 menjalankan informasi sensitif config disembunyikan

Shamanu4
sumber
1
Apakah Anda menjalankan konfigurasi R1 bandwidth 50000untuk 'antarmuka Vlan3228'? Bisakah Anda juga melampirkan output 'sh ip bgp <IP of R5>'?
Andrey Sapegin
1
Juga dalam running-config, sejauh yang saya mengerti, bandwidth harus 50kbs-100kbs-150kbs, dan output R1# sh ip bgp vpnv4 vrf nat 0.0.0.0acara Anda 125kbs-250kbs-350kbs ...
Andrey Sapegin
1
@AndreySapegin sh ip bgp vpnv4 vrf nat 10.30.228.228menampilkan sama dengan sh ip bgp vpnv4 vrf nat 0.0.0.0. Sudahkah Anda melewatkan neighborskata kunci? Jika demikian, output sh ip bgp vpnv4 vrf nat neighbors 10.30.228.228Anda dapat melihat pada akhir R1 sh ip bgp tetangga keluaran
Shamanu4
1
Panduan yang Anda sebutkan ( cisco.com/c/en/us/td/docs/ios/12_2s/feature/guide/fsbgplb.html ) membedakan antara neighbor dmzlink-bw, yang hanya memungkinkan iklan bandwidth ke tetangga (disajikan dalam konfigurasi Anda) dan bgp dmzlink-bw, yang memungkinkan penyeimbangan beban proporsional (dan tampaknya MISSING di konfigurasi Anda). Bisakah Anda mencoba memasukkan bgp dmzlink-bwkonfigurasi berjalan Anda?
Andrey Sapegin
1
@AndreySapegin. Ya saya yakin itu maximum pathsharus di bawah address-family. Saya perlu fitur multipath dalam contoh vrf tetapi tidak dalam tabel routing global. Jika saya letakkan di maximum pathsbawah, router bgp 100saya mendapatkan hasil hanya satu rute melalui R5 dan tidak ada rute melalui R3 dan R2. Hasil yang sama untuk ibgpkeluarga alamat di bawah, karena semua tetangga eksternal. Bandwidth inherit pada Port-channel konsisten dalam konfigurasi. Saya menghapus baris ini tanpa efek. commit
Shamanu4

Jawaban:

3

Masalah utama tampaknya menjadi bgp dmzlink-bwopsi yang hilang di bawah keluarga alamat dalam konfigurasi. Biarkan saya, bagaimanapun, merangkum komentar saya di sini:

  1. bgp dmzlink-bwdi bawah address-family. neighbor dmzlink-bwhanya memungkinkan iklan bandwidth ke tetangga, sementara bgp dmzlink-bwmemungkinkan penyeimbangan beban proporsional sendiri.
  2. Running-config memiliki bandwidth 50000opsi yang hilang untuk 'interface Vlan3228'
  3. Seperti yang disebutkan dalam contoh konfigurasi ini , opsi maximum-paths eibgp 3bisa diperlukan alih-alihmaximum-paths 3
  4. Selain sh ip bgp vpnv4 vrf nat 0.0.0.0dan perintah lain yang disebutkan dalam panduan asli (lihat pertanyaan), oleh Shamanu4 dan bangal, penting untuk memeriksa apakah jumlah pembagian lalu lintas berbeda untuk tautan yang dimuat dengan menggunakan keseimbangansh ip route vrf nat 0.0.0.0
  5. Periksa apakah tidak ada opsi lain yang dapat mengganggu konfigurasi load balancing (mis., bandwidth inheritPada saluran-Port)

Sebagai saran umum, kadang-kadang sangat sulit untuk mengidentifikasi masalah, ketika Anda memiliki konfigurasi berjalan yang besar dengan banyak opsi di dalamnya. Jika masalah tetap ada, saya akan membuat pengaturan serupa dengan konfigurasi kosong dan mencoba untuk mengonfigurasi hanya opsi yang relevan di sana (Contoh Pengerjaan Minimal), untuk melihat apakah itu berfungsi dan tidak mengganggu opsi lain, mengakses daftar (seperti misalnya, itu sangat tidak mungkin dalam kasus khusus ini) dll. Jika Anda tidak memiliki perangkat keras cadangan, dan router Anda sedang dalam produksi, sehingga Anda tidak dapat bereksperimen dengan konfigurasi kosong di atasnya secara langsung, Anda dapat:

  • Gunakan Linux PCs / VMs dengan perutean perangkat lunak seperti Quagga (disebutkan dalam pertanyaan)
  • Gunakan simulator dari Cisco: Boson NetSim untuk CCNP mendukung BGP, namun, saya tidak yakin apakah alamat-keluarga / VPN / VRF didukung
  • Gunakan mesin virtual dengan IOS XRv dari Cisco. Sejauh yang saya ingat, itu tersedia secara gratis dengan batas bandwidth 2 Mbit / s, yang seharusnya cukup untuk pengujian. Sekali lagi, saya tidak yakin apakah alamat-keluarga / VPN / VRF didukung: Ikhtisar router Cisco IOS XRv , tautan unduhan VM
  • Gunakan simulator GNS3 ( http://www.gns3.com/ ). Ada gambar Cisco IOS untuk itu, namun, saya tidak tahu bagaimana cara mendapatkannya.
  • Akhirnya, Anda bahkan dapat mencoba membeli perangkat keras bekas dari tempat-tempat seperti ebay semurah mungkin untuk keperluan pengujian saja.
Andrey Sapegin
sumber
1
Masih tidak dapat mengkonfirmasi atau membantah teori ini. IOS versi 15.1 (2) SY4a juga tidak memiliki opsi untuk ditempatkan di dmzlink-bwbawah address-family. Saya perlu waktu untuk mengungkap kontradiksi cisco docs dengan kehidupan nyata.
Shamanu4
Ini sangat aneh. Anda dapat mencoba melihat dokumen berikut: 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 / ... , tapi saya tidak melihat ada yang hilang di konfigurasi Anda ...
Andrey Sapegin
Saya akan membeli lisensi cisco VIRL dan mencoba mensimulasikan topologi di sana. Saya akan melaporkan hasil apa pun di pos nanti. Terimakasih atas bantuannya.
Shamanu4