Penyeimbang beban KEMP menggunakan UCARP (VRRP) - alamat MAC multicast tidak diambil

10

Baiklah - telah berjuang ini selama setidaknya 20 jam berturut-turut .. Maaf jika ini sepertinya kata-kata kasar yang panjang, atau posting blog, tapi saya sampai pada titik kelelahan.

Jadi, inilah kesepakatannya. Kami menggunakan penyeimbang beban KEMP, yang menggunakan UCARP (klon Linux dari CARP, yang merupakan klon VRRP) untuk kondisi detak jantung HA dan persisten. Kami ingin memanfaatkan IGMP di lingkungan kami untuk mencegah banjir melintasi pusat data.

Kami memiliki dua sakelar Dell PowerConnect 8124F yang menjalankan SW 5.1.1.7 yang bertindak sebagai yang terbaik. Keduanya terhubung ke pasangan Cisco 3750-X yang bertumpuk, yang merupakan inti kami.

Masalahnya dimulai ketika kami memutakhirkan ke PowerConnect 5.1.x, di mana mereka tampaknya default untuk membiarkan IGMP mengintai kecuali Anda memberi tahu sebaliknya. Dan lihat - penyeimbang beban kami masuk ke otak terbelah, menyebabkan segala macam kesenangan fuzzy hangat.

  • Jika saya menonaktifkan pengintaian IGMP pada VLAN di mana penyeimbang beban tidak melakukan multicast, multicast masih mati
  • Jika saya mengatur PIM IP pada inti kami, sakelar PowerConnect melihatnya pada VLAN yang sama, tetapi masih tidak ada lalu lintas multicast
  • Jika saya mengaktifkan banjir semua lalu lintas multicast yang tidak terdaftar, ia tetap tidak melakukan apa-apa.
  • Jika saya menonaktifkan pengintaian IGMP secara global pada sakelar PowerConnect, semua lalu lintas multicast berfungsi. Ini bekerja sangat baik, sehingga kita mendapatkan lalu lintas multicast membanjiri setiap port yang memiliki tag VLAN yang sama. Hebat.

Saya perhatikan beberapa entri alamat MAC yang aneh pada VLAN di inti kami:

coresw#sh mac address-table vlan 367 | include 5e00
 367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0

Dan saya pikir .. Bukankah itu alamat multicast? Mengapa ini tidak ada di "sh mac address-table multicast"?

coresw#sh mac address-table multicast vlan 367
Vlan    Mac Address       Type        Ports
----    -----------       ----        -----
coresw#

Dan kemudian saya membaca ini di panduan CLI PowerConnect:

Lalu lintas multicast adalah lalu lintas yang diperuntukkan bagi grup host. Grup host diidentifikasi oleh alamat MAC tujuan, yaitu kisaran 01: 00: 5e: 00: 00-01: 00: 5e: 7f: ff: ff: ff untuk lalu lintas multicast IPv4 atau 33: 33: xx: xx : xx: xx untuk lalu lintas multicast IPv6.

Sepertinya kita kehilangan "01" di awal alamat MAC, bukan? Entri MAC dinamis di atas dimulai dengan "00". Pada titik ini saya sedang berpikir untuk memanggil KEMP, dan memberi tahu mereka bahwa produk mereka salah konfigurasi. Tapi kemudian saya membaca RFC untuk VRRP - dan lihat:

Alamat MAC router virtual yang terkait dengan router virtual adalah Alamat MAC IEEE 802 dalam format berikut:

Kasing IPv4: 00-00-5E-00-01- {VRID} (dalam hex, dalam urutan bit standar Internet)

Baiklah - jadi switch biasanya tidak mengambil kisaran alamat mac multicast untuk VRRP. Baik, mari kita mengkonfigurasi grup host statis pada switch Dell. Nggak.

Input tidak valid: Alamat MAC Multicast harus dalam format 01XX: XXXX: XXXX

Oke kalau begitu .. Langkah selanjutnya, coba tambahkan entri mac statis:

osl-sys-swrack03(config)#mac address-table multicast ?

forbidden                forbid adding specific multicast addresses to
                         specific ports.

osl-sys-swrack03(config)#

Jadi - tidak ada cara untuk mengkonfigurasi entri MAC multicast statis. Jika saya mencoba melakukan hal yang sama dengan entri MAC statis biasa, saya hanya dapat mengikatnya ke satu port - cluster penyeimbang beban ini berjalan di 4 port 10 gig yang berbeda.

Pembaruan : Tampaknya ada beberapa kebingungan mengenai alamat MAC. 172.30.1.0/24 adalah jaringan loadbalancer yang menghadap ke depan. 172.30.1.6 adalah VIP bersama default untuk kluster, .7 adalah IP manajemen untuk penyeimbang beban pertama dan .8 untuk penyeimbang beban kedua. Semua alamat lain (30, 40, 70, 80 dll) semuanya VIP dengan layanan berbeda. Ketika failover terjadi, semua VIP mengubah alamat MAC mereka ke alamat MAC fisik LB kedua. Alamat multicast di tabel bawah tidak berubah.

coresw#sh ip arp vlan 367
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.30.1.6             78   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.40           204   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.80           167   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.70            38   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.66            12   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.35           185   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.60            97   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.30            80   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.61            33   0050.56b4.5004  ARPA   Vlan367    <- VIP - Loadbalancer1 physical MAC
Internet  172.30.1.7             27   0050.56b4.5004  ARPA   Vlan367    <- Management - Loadbalancer1 physical MAC
Internet  172.30.1.8             21   0050.56b4.08c2  ARPA   Vlan367    <- Management - Loadbalancer2 physical MAC

osl-sys-coresw#sh mac address-table dynamic vlan 367
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0   <- multicast HA mac (UCARP)
 367    0050.56b4.08c2    DYNAMIC     Po13   seq_no:0   <- Loadbalancer1 physical MAC
 367    0050.56b4.5004    DYNAMIC     Po13   seq_no:0   <- Loadbalancer2 physical MAC

Dan begitulah ceritanya. Apa yang akan saya lakukan dengan ini?

pauska
sumber
What on earth am I going to do with this?<- Tequila. Banyak sekali.
voretaq7
Anda mengacaukan alamat multicast yang digunakan antara "router virtual" (untuk memberi tahu siapa di sana dan siapa masternya), dan alamat unicast yang digunakan untuk router virtual itu sendiri (yaitu MAC untuk IP virtual.)
Ricky Beam
@ RickyBeam Bisakah Anda sedikit lebih spesifik? Alasan mengapa ada dua alamat mac dalam daftar di atas adalah karena kami memiliki dua pasang loadbalancers, masing-masing dengan ID mereka sendiri (01 dan 02 di akhir) - jika itu yang Anda pikirkan?
pauska
1
Tidak, Anda masih bingung tentang MAC unicast yang terkait dengan IP router virtual - itulah yang digunakan host MAC untuk berbicara dengan layanan load seimbang mereka. Alamat multicast adalah yang digunakan penyeimbang beban untuk mengetahui siapa yang bertanggung jawab. (baca bagian 5.1.1)
Ricky Beam
@ RickyBeam Maaf, tidak masuk akal bagi saya. Alamat MAC unicast untuk setiap penyeimbang beban (00:56, vmware) benar-benar berbeda dari 0000.5e00.0101 yang saya lihat ketika saya menonaktifkan pengintaian IGMP.
pauska

Jawaban:

5

Saya bisa menyelesaikan masalah ini. Pada Kemp (dengan pasangan HA) Anda memiliki opsi untuk menggunakan "Alamat MAC Virtual". Jika kotak ini tidak dicentang, maka MAC dari load balancer VIP adalah antarmuka fisik unit Kemp yang aktif. Jika kotak ini dicentang, maka alamat MAC VIP adalah MAC VRRP. Seperti yang Anda sebutkan di atas VRRP RFC menyatakan bahwa MAC "00:00" {blah} dengan oktet terakhir menjadi Router ID. ID default Kemp HA [router] adalah 01. Pada Powerconnects saya menggunakan Firmware 5.1.xx Saya tidak menggunakan VRRP tapi saya menjalankan beberapa jejak dan menetapkan bahwa Powerconnect akan menjatuhkan frame VRRP jika ID router sama seperti itu sendiri. Mereka melakukan ini BAHKAN jika VRRP tidak dikonfigurasi dan dalam mode itu mereka default ke 01. Jadi mengubah ID router Kemp HA ke sesuatu seperti 22 (0x16) menghasilkan semuanya berfungsi.

Ed Smith
sumber
Kamu adalah pahlawanku. Terima kasih karena akhirnya mengetahui ini! Kata-kata KEMP yang sangat buruk - mereka harus memberi Anda deskripsi yang benar-benar memberitahu Anda bahwa ini diterjemahkan ke ID router VRRP.
pauska
2

Alamat multicast yang Anda cari adalah 224.0.0.18 [mac: 01005e.000012]. Itu adalah saluran kontrol untuk semua node VRRP. [sunting] Kecuali KEMP mengubah kode, CARP (UCARP) berasal lalu lintas menggunakan VRRP unicast MAC [00005e.0001xx] - di situlah sebuah saklar secara alami akan mempelajarinya.

Jika Anda tidak memiliki querier di jaringan (mungkin di setiap segmen), maka switch Anda pada akhirnya akan lupa di mana grup berada - host tidak mengirim keanggotaan berkala kecuali diminta. [edit: Bergantung pada konfigurasi, sebuah saklar dapat menjatuhkan multicast yang tidak diketahui, vs. flooding.] Itu bisa menjadi querier khusus (mengirimkan paket, tidak peduli dengan jawaban apa pun), atau lebih umum router multicast dalam infrastruktur Anda . Dalam kasus sederhana ini, querier adalah semua yang diperlukan karena pesan VRRP dilarang melintasi segmen.

Saya tidak terbiasa dengan switch Dell, jadi saya tidak tahu apa perintah cli yang Anda butuhkan.

[MEMPERBARUI]

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
367    0000.5e00.0101    DYNAMIC     Po13   seq_no:0   <- multicast HA mac (UCARP)

Itu bukan mac multicast. Itulah sumber MAC unicast dari lalu lintas multicast. Mac multicast tidak akan muncul di tabel alamat mac. Itu dalam tabel grup multicast. Cisco IOS memiliki show mac-address-table multicast(tidak menunjukkan apa pun di router saya) dan show ip igmp groups(menunjukkan 3 grup). Router itu diatur ke mode jarang; switch nortel dan cisco melihatnya sebagai querier.

Dan metode KEMP sangat cacat dengan menggunakan host NIC MAC untuk alamat virtual. Dalam kasus Anda, 5004 milik nic. Ketika 5004 menghilang, semua orang masih akan memiliki "IP: 6 == MAC: 5004" di tabel mereka; mereka akan terus mencoba berbicara dengan tuan rumah yang mati sampai entri itu diganti. KEMP jelas-jelas berjudi untuk mendapatkan penghargaan gratis dari semua yang ada di jaringan. HSRP, VRRP, dan CARP yang dirancang OpenBSD semuanya menggunakan MAC virtual karena alasan ini. (mereka tampaknya gagal meretas UCARP untuk menggunakan nic mac daripada VRRP virtual mac saat mentransmisikan lalu lintas multcast.)

Mengingat mereka peretasan dari UCARP, apakah Anda yakin itu menggunakan multicast?

Ricky Beam
sumber
Saya sudah menyiapkan router PIM pada inti kami pada VLAN yang sama - bukankah itu menghilangkan kebutuhan querier?
pauska
1
Secara teori, ya. Konfirmasikan sakelar melihat querier. ( show ip igmp snooping querier vlan 367untuk cisco)
Ricky Beam
Mereka tidak melihat querier, tetapi mereka melihat mrouter (sh ip igmp snooping mrouter). Apakah saya seharusnya memiliki querier DAN mrouter? Saya pikir yang terakhir menggantikan yang pertama ..
pauska
1
Saya tidak tahu bahwa Dell memperlakukannya. Sakelar cisco, hp, dan adtran saya menunjukkan komputer PIM sebagai querier, tetapi mereka tidak (atau tidak dikonfigurasikan untuk) PIM mendukung diri mereka sendiri.
Ricky Beam