none
Вопросы по работе MS NLB RRS feed

  • Вопрос

  • Добрый день!
    Есть пара вопросов, ответов на которые не могу найти:
    1. У меня сейчас nlb-кластер работает в unicast-режиме. Каждый хост в кластере шлёт броадкастом heardbeat. Если я переведу кластер в режим multicast или multicast igmp, heardbeat'ы начнут отправляться multicast'ом? Или так и будут флудить броадкастом?
    2. Согласно документации в режиме unicast запросы от клиентов на виртуальный ip кластера должны отправляться на все порты коммутатора, потому что коммутатор не добавляет в mac-таблицу запись "mac nlb -> порт". Но когда я смотрю фаершарком трафик на других хостах этого широковещального домена, я эти запросы не вижу. Почему так?
    Спасибо!
    • Изменено podolskiy 3 марта 2021 г. 13:36
    3 марта 2021 г. 13:34

Все ответы

  • 1. Предполагаю, что будет multicast, т.к. у каждого хоста в кластере будет свой мак, который в свою очередь попадёт в arp и нет необходимости использовать broadcast.

    2. Потому что траффик от клиента будет отправляться на все узлы кластера, а не на все узлы широковещательного домена. 

    3. Не хотите рассмотреть более гибкий и надежный haproxy вместо wnlb?

    3 марта 2021 г. 14:29
  • 2. А как коммутатор узнает на каких портах висят машины кластера?

    Согласно документации по NLB (которой на самом деле не очень то и много), каждой машине в кластере выделяется одинаковый виртуальный mac-адрес. Коммутатор же не может привязать один MAC на несколько портов и него бы съехала крыша, если бы он увидел одинаковый source mac на нескольких портах. Поэтому каждому кластерному интерфейсу назначается еще один виртуальный MAC, теперь уже уникальный. И именно он указывается как source mac в исходящих от кластерных машин пакетах. А общий mac адрес фигурирует только в arp-ответах, когда клиент спрашивает mac-адрес виртуального ip кластера.

    Итого, получается, клиент спрашивает какой mac адрес соответствует ip адресу кластера. Ему отдают общий виртуальный mac. Он отправляет пакет. Пакет приходит на коммутатор. Коммутатор смотрит свою CAM таблицу. Не находит там записи для кластерного MAC'а. Поэтому он должен отправить этот пакет на все порты.

    3. Спасибо за наводку, рассмотрю. Но в работе NLB разобраться тоже нужно.

    9 марта 2021 г. 12:17