Балансири навантажень KEMP, що використовують UCARP (VRRP) - MAC-адреса багатоадресної передачі не вибирається


10

Гаразд - боровся з цим щонайменше 20 годин поспіль. Вибачте, якщо це здається довгим розпустом чи публікацією в блозі, але я добираюся до виснаження.

Отже, ось угода. Ми використовуємо балансири навантаження KEMP, який використовує UCARP (клон Linux CARP, який є клоном VRRP) для серцебиття та стійких станів HA. Ми хочемо використовувати IGMP у нашому середовищі, щоб запобігти затопленню через центр обробки даних.

У нас є два вимикачі Dell PowerConnect 8124F, які працюють з SW 5.1.1.7, які діють як топ-стійки. Ці два підключені до складеної пари Cisco 3750-X, яка є нашим ядром.

Проблеми почалися, коли ми оновили до PowerConnect 5.1.x, де вони, мабуть, дефолтом залишили IGMP переслідування, якщо ви не скажете це інше. І ось - наші балансири навантажень перейшли в розвідний мозок, викликаючи всілякі нечіткі забави.

  • Якщо я відключу прослуховування IGMP на VLAN, де балансири навантажень роблять багатоадресну передачу, нічого не відбувається, багатоадресна передача все ще мертва
  • Якщо я встановив IP PIM на нашому ядрі, перемикачі PowerConnect бачать його на одній і тій же VLAN, але все ще немає трафіку для багатоадресної передачі
  • Якщо я дозволю затоплення всього незареєстрованого багатоадресного трафіку, він все одно нічого не робить.
  • Якщо я відключу прослуховування IGMP глобально за допомогою перемикачів PowerConnect, весь трафік багатоадресної передачі працює. Він працює настільки чудово, що ми отримуємо багатопотоковий трафік затопленим до кожного порту, який має однакові теги VLAN. Чудовий.

У нашій ядрі я помітив деякі дивні записи MAC-адреси у VLAN:

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

І я думаю .. Хіба це не адреса багатоадресної передачі? Чому це не в "sh mac адресному столовій таблиці"?

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

А потім я прочитав це у посібнику з програми CLC PowerConnect:

Багатоадресний трафік - це трафік, призначений для групи хостів. Групи хостів ідентифікуються за адресою MAC призначення, тобто діапазоном 01: 00: 5e: 00: 00: 00-01: 00: 5e: 7f: ff: ff: ff для багатоадресного трафіку IPv4 або 33: 33: xx: xx : xx: xx для багатоадресного трафіку IPv6.

Здається, нам не вистачає "01" на початку MAC-адреси, ні? Динамічний запис MAC вище починається з "00". На даний момент я думаю про те, щоб зателефонувати в KEMP і дати їм знати, що їхній продукт жахливо не налаштований. Але потім я іду читати RFC для VRRP - і ось:

MAC-адреса віртуального маршрутизатора, пов'язана з віртуальним маршрутизатором, є MAC-адресою IEEE 802 у наступному форматі:

Корпус IPv4: 00-00-5E-00-01- {VRID} (у шістнадцятковій версії, у Інтернет-стандартному порядку біт)

Гаразд - так комутатори зазвичай не підбирають діапазон адрес для багатоадресних адрес для VRRP. Добре, давайте налаштуємо статичну групу хостів на комутаторах Dell. Ні.

Неправильний вхід: MAC-адреса багатоадресної пошти повинна мати формат 01XX: XXXX: XXXX

Добре, тоді .. Наступний крок, спробуйте додати статичну мак-запис:

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

forbidden                forbid adding specific multicast addresses to
                         specific ports.

osl-sys-swrack03(config)#

Отже - жодного способу налаштувати статичний MAC запис бездротового зв'язку. Якщо я спробую зробити те ж саме з регулярним статичним записом MAC, я можу прив’язати його лише до одного порту - цей кластер, що врівноважує навантаження, працює через 4 різні порти 10 Gig.

Оновлення : Здається, існує деяка плутанина щодо MAC-адрес. 172.30.1.0/24 - це фронтальна мережа врівноважувача. 172.30.1.6 є спільним VIP для кластера, .7 - IP управління для першого балансира навантаження, а .8 - для другого балансира навантаження. Усі інші адреси (30, 40, 70, 80 тощо) - це VIP, які мають різні послуги. Коли виникає помилка, всі VIP змінюють свою MAC-адресу на фізичну MAC-адресу другого LB. Адреса багатоадресної передачі в нижній таблиці не змінюється.

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

І це історія. Що я маю з цим робити?


What on earth am I going to do with this?<- Текіла. Багато цього.
voretaq7

Ви плутаєте адресу багатоадресної передачі, яка використовується між "віртуальними маршрутизаторами" (щоб сказати, хто там і хто майстер), і одноадресною адресою, що використовується для самого віртуального маршрутизатора (тобто MAC для віртуального IP.)
Ricky Beam

@RickyBeam Чи можете ви бути трохи більш конкретними? Причина, чому в списку вище було (було) дві мак-адреси, це те, що у нас є дві пари балансирів, кожен з яких має свій ідентифікатор (01 та 02 в кінці) - якщо це те, про що ти думаєш?
pauska

1
Ні, ви все ще плутаєтеся щодо єдиного MAC, пов’язаного з IP-адресом віртуального маршрутизатора - ось MAC-хости використовують для спілкування зі своїм сервісом збалансованого завантаження. Адреса багатоадресної передачі - це те, що використовували балансири навантажень, щоб знати, хто відповідає. (читайте розділ 5.1.1)
Рікі Бім

@RickyBeam Вибачте, це не має для мене сенсу. Неодноразова MAC-адреса для кожного балансира навантаження (00:56, vmware) абсолютно відрізняється від 0000.5e00.0101, який я бачу, коли відключаю прослуховування IGMP.
pauska

Відповіді:


5

Мені вдалося вирішити проблему. На Kemp (з парою HA) у вас є можливість використання "Virtual MAC Address". Якщо це поле не встановлено, то MAC VIP-балансира навантаження - це фізичний інтерфейс активного блоку Kemp. Якщо це поле встановлено, MAC-адреса VIP - це MAC VRRP. Як ви вже згадували вище, VRRP RFC стверджує, що MAC "00:00" {blah}, останній октет - ідентифікатор маршрутизатора. За замовчуванням ідентифікатор HA [маршрутизатора Kemp - 01. У моїх Powerconnects за допомогою прошивки 5.1.xx я не використовую VRRP, але я пропустив деякі сліди і визначив, що Powerconnect скине кадр VRRP, якщо ідентифікатор маршрутизатора такий самий. Вони роблять це ВСІМО, якщо VRRP не налаштовано, і в такому режимі вони за замовчуванням становлять 01. Отже, зміна ідентифікатора маршрутизатора Kemp HA на щось на зразок 22 (0x16) призвело до того, що все працює.


Ти мій герой. Дякую, що нарешті це зрозуміли! Надзвичайно бідне формулювання частини KEMP - вони повинні дати вам опис, який насправді говорить про те, що це означає ідентифікатор маршрутизатора VRRP.
pauska

2

Ви шукаєте адресу багатоадресної розсилки 224.0.0.18 [mac: 01005e.000012]. Це канал управління для всіх вузлів VRRP. [редагувати] Якщо KEMP не змінить код, CARP (UCARP) створює трафік за допомогою однобічного MAC VRRP [00005e.0001xx] - саме там комутатор природним чином дізнається його.

Якщо у вас немає запиту в мережі (імовірно, у кожному сегменті), то ваші комутатори врешті-решт забудуть, які групи перебувають, - хости не надсилають періодичні члени, якщо не запитують. [редагувати: Залежно від конфігурації, комутатор може скидати невідомі багатоадресні повідомлення, проти заливання.] Це може бути виділений запит (він надсилає пакет, він не хвилює жодних відповідей) або частіше маршрутизатор багатоадресної передачі у вашій інфраструктурі . У цьому простому випадку потрібен запит, оскільки повідомленням VRRP заборонено перетинати сегменти.

Я не знайомий з комутаторами Dell, тому не знаю, які команди cli потрібні.

[ОНОВЛЕННЯ]

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

Це не багатоадресна версія Mac. Це єдине джерело MAC багатоадресного трафіку. Багатоадресна версія mac не відображатиметься в таблиці адрес mac. Це в груповій таблиці групи. Cisco IOS має show mac-address-table multicast(не показує нічого на моєму маршрутизаторі) і show ip igmp groups(показує 3 групи). Цей маршрутизатор встановлений у режимі pim у розрідженому режимі; перемикачі nortel і cisco вважають це запитом.

А метод KEMP має глибокі недоліки, використовуючи хост NIC MAC для віртуальних адрес. У вашому випадку 5004 належить ніку. Коли 5004 зникає, усі все ще матимуть "IP: 6 == MAC: 5004" у своїх таблицях; вони продовжуватимуть намагатися поговорити з мертвим господарем, поки цей запис не буде замінено. КЕМП, очевидно, грає в безоплатний арп, який шанує все в мережі. HSRP, VRRP, і OpenBSD призначений короп все використовувати віртуальний MAC саме з цієї причини. (вони, здається, не змогли зламати UCARP, щоб використовувати nic mac замість VRRP віртуального mac при передачі багатоканального трафіку.)

З огляду на те, що вони зловживають UCARP, ви впевнені, що він навіть використовує багатоадресну передачу?


Я вже встановив маршрутизатор PIM в нашій ядрі на тій же VLAN - чи не повинно це усунути потребу в запиті?
pauska

1
Теоретично, так. Переконайтесь, що комутатори бачать запит. ( show ip igmp snooping querier vlan 367для cisco)
Рікі Бім

Вони не бачать жодного запиту, але вони бачать mrouter (sh ip igmp snooping mrouter). Чи повинен я мати запит І співач? Я думав, що останній витіснив перший ...
pauska

1
Я не знаю, що Dell ставиться до цього. Мої перемикачі cisco, hp та adtran показують мультиплеєр PIM як запит, але вони не мають (або не налаштовані) для підтримки PIM.
Рікі Бім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.