Loadbalancing traffic keluar saat menggunakan openbgpd di freebsd

8

Saya menggunakan openbgpd di freeBSD dengan 2 koneksi ISP. Saya memiliki nomor AS dan jaringan / 22 saya sendiri. Saat ini saya mengiklankan seluruh / 22 untuk kedua jaringan. Lalu lintas masuk masuk Tapi lalu lintas keluar saya berjalan melalui satu tautan.

Saya ingin mendistribusikan lalu lintas keluar saya melalui kedua tautan sehingga lalu lintas keluar juga memuat seimbang.

Bagaimana cara mengkonfigurasi ini menggunakan openbgpd di freebsd?

Konfigurasi openbgpd saya saat ini dilampirkan untuk referensi.

AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
  remote-as 11remoteas-1
  neighbor bb.bb.bb.1 {
   descr "ISP1"
   announce all  
  }
}
group "ISP2" {
  remote-as 22remoteas-2
  neighbor cc.cc.cc.37 {
   descr "ISP2"
   announce all  
  }
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37
Rajkumar S
sumber

Jawaban:

2

Saya sudah bertahun-tahun tidak menggunakan openbgpd, jadi, saya akan memberi Anda beberapa teori yang dapat Anda terapkan pada konfigurasi Anda.

Penyedia dapat mengirimi Anda rute. Biasanya mereka akan mengirim 'standar', 'pelanggan', atau 'penuh'. Rute default adalah hanya itu, 0.0.0.0/0 diumumkan kepada Anda dan Anda tahu untuk mencapai 0.0.0.0/0 (IP apa saja) melalui mereka. Situasi Anda membuatnya terdengar seperti kedua penyedia memberikan Anda rute default, dan kemungkinan besar, yang dengan ASN yang lebih rendah mendapatkan semua lalu lintas (ASN menjadi penghambat ketika sebuah paket dapat pergi ke beberapa tujuan dan jalur AS sama. panjang, dll.).

Umpan 'pelanggan' akan membuat mereka mengumumkan setiap rute yang terhubung langsung dengan mereka. Jika Anda memiliki penyedia seperti Level3, Anda mungkin akan melihat separuh internet melalui umpan ini. Jika penyedia Anda yang lain memiliki ASN yang lebih rendah, mereka akan mendapatkan lalu lintas apa pun yang tidak terhubung langsung dengan rekan yang mengumumkan rute pelanggan mereka kepada Anda.

Umpan 'lengkap' akan memiliki pengumuman rute untuk setiap situs yang diketahui penyedianya - bukan hanya yang terhubung langsung.

Anda harus dapat melakukan sesuatu seperti:

tampilkan ringkasan ip bgp (perintah IOS)

yang harus mencantumkan jumlah awalan yang diterima di suatu tempat.

Jika kedua penyedia Anda yang ada mengirimkan Anda rute default, maka koneksi Anda saat ini diatur untuk failover. Penyedia A turun, Anda kemudian akan merutekan ke Penyedia B. Jika Anda mengambil umpan pelanggan dari keduanya bersama dengan rute default, lalu lintas akan mengalir ke penyedia yang memiliki ASpath terpendek untuk mencapai alamat yang diberikan, dan akan kembali ke default rute jika tidak dapat menemukan alamat. Jika Anda mendapat umpan penuh dari keduanya, tergantung pada tumpang tindih antara penyedia, Anda akan mengirimkan lalu lintas keluar jalur 'terbaik' untuk masing-masing.

Pada salah satu router perbatasan kami, saya menunjukkan 310540 rute aktif, pastikan Anda memiliki cukup RAM dan telah mengkonfigurasi mesin untuk menangani rute dari kedua penyedia jika Anda mengambil rute penuh. Anda dapat bereksperimen dengan mengambil rute pelanggan dari keduanya hingga Anda merasa lebih nyaman. Atau ambil rute pelanggan dari penyedia yang lebih kecil dari keduanya dan lihat bagaimana perubahannya.

Ini masih tidak 'memuat saldo' atau membagi lalu lintas secara merata dan tergantung pada lalu lintas Anda. Anda mungkin menemukan bahwa satu penyedia masih mendapat bagian lalu lintas terbesar. Pada titik ini, Anda perlu melakukan beberapa awalan / peta rute untuk menyesuaikan lalu lintas untuk lebih memilih satu rekan atau yang lain.

Setelah Anda mengatur peta rute atau pencocokan ASN untuk menggeser lalu lintas Anda, jika situs tujuan turun, dan rute mereka dihapus dari penyedia itu, router Anda masih akan mengirim lalu lintas keluar dari koneksi lain. BGP agak menyembuhkan diri sendiri.

Apa yang kami lakukan adalah kami memiliki beberapa peta yang menentukan kecocokan berdasarkan ASN.

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

Juniper menjadikan ini lebih mudah daripada menggunakan komunitas, meskipun, Anda bisa melakukannya.

Daftar awalan kami melihat apakah tujuannya adalah ASN tertentu, dan jika itu, ia melewati peta _TO. Jika ASN tercantum dalam _THROUGH, ia akan lebih memilih penyedia itu. Karena salah satu penyedia kami memiliki koneksi langsung ke AT&T, PROVIDER_B_THROUGH cocok dengan 7018 | 7019 (dan beberapa ASN lainnya) sehingga lalu lintas AT&T default ke Penyedia B. Meskipun AT&T dapat dijangkau dari keduanya, kami lebih memilih untuk mengirimnya melalui Penyedia B .

Saya yakin openbgpd memiliki metode serupa.


sumber
3

BGP bukan protokol penyeimbangan beban.

Saya ulangi lagi, BGP BUKAN protokol load balancing.

Jika SEMUA lalu lintas keluar satu koneksi, tebakan pertama saya adalah bahwa Anda tidak mendapatkan umpan lengkap dari penyedia yang diabaikan. Routing sedemikian rupa sehingga diutamakan diberikan ke rute yang lebih spesifik, jadi jika Anda memiliki rute 192.168.0.0/23 pergi ke penyedia, dan dua rute 192.168.0.0/24 dan 192.168.1.0/24 pergi ke penyedia b, penyedia a akan sepenuhnya diabaikan. Saya tidak terbiasa dengan OpenBGP. Jadi saya tidak bisa memberi tahu Anda secara spesifik tentang cara memverifikasi beberapa hal tanpa melihat. Tetapi hal pertama yang perlu Anda lakukan adalah memvalidasi bahwa penyedia KEDUA memberi Anda umpan penuh dan bukan hanya rute default.

Jika itu masalahnya, maka Anda perlu melihat preferensi rute untuk lalu lintas keluar dan jalur padding untuk lalu lintas masuk. Pastikan untuk menunggu 24 hingga 48 jam di antara perubahan konfigurasi hanya untuk memastikan Anda memiliki set data yang cukup besar untuk menentukan efektivitas perubahan Anda.

Richard June
sumber
1

Bangun jembatan. Freebsd sebenarnya akan memuat keseimbangan pada fitur hulu dari awalan saat ini dan akan memuat keseimbangan dengan cukup baik. BGP tidak akan. Anda dapat menginstal kedua ISP upstream dan mengumumkan ke ISP per / 22 Anda dan kemungkinan akan menolak / 30 Anda dengan awalan tetapi iBGP akan mengambilnya. iBGP akan berjalan dengan baik di jembatan dan kemudian tidak ada kebutuhan nyata untuk OSPF. Anda sekarang memiliki penyetel beban dan pengaturan BGP sepenuhnya redundan. Kami memiliki beberapa Facebook dan menyukai mereka di link pertunjukan ke Internet.


sumber
1

Hal pertama yang perlu diperiksa adalah apakah kedua sesi BGP benar-benar berfungsi. menggunakan

bgpctl tampilkan ringkasan

Dan lihat apakah Anda memiliki pertukaran pesan dengan kedua rekan.

Dan Anda harus menghapus "announce all" kecuali Anda ingin rekan Anda merutekan traffic mereka melalui Anda, yang umumnya sebaliknya;

Cukup hapus pengumuman semua dan Anda harus baik-baik saja.

Bruno Mairlot
sumber