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