Два многоадресных кластера NLB в одной VLAN, обрабатывающие один и тот же трафик

У меня есть более старый кластер NLB на базе ISA2006, который я планирую перенести в новый кластер NLB TMG2010. Мне нужно, чтобы оба кластера были активны некоторое время во время миграции (конечно, с разными IP).

Оба кластера NLB работают в режиме многоадресной рассылки, и пакеты затопляются физической сетью на всех портах соответствующей VLAN, как это должно быть в случае NLB.

Вот обзор схемы логической сети:

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, когда я включаю NLB в новом кластере, он также обрабатывает трафик, предназначенный для активного в данный момент другого кластера NLB, даже если MAC-адрес назначения кадров ему не принадлежит. Это вызывает много головных болей, таких как пересылка дублированных пакетов (например, я получаю 4 ответа на один DNS-запрос) или загрузки журналов для пакетов в новом кластере, которые сбрасываются как TCP из состояния.

Обратите внимание на следующее: оба NLB активны, и узел A отправляет IP-пакет узлу B на другой стороне кластеров NLB. Вот что происходит:

  1. Хост A проверит свою таблицу маршрутизации и заметит, что должен переслать пакет на шлюз по умолчанию 192.168.1.6 (старый NLB)
  2. Узел A транслирует запрос ARP для IP, и на него отвечает соответствующий виртуальный NLB-MAC старого кластера.
  3. Хост A отправляет пакет с IP-адресом назначения B и MAC-адресом старого кластера на проводе
  4. Пакет затоплен на всех портах VLAN, поскольку MAC-адрес назначения нигде не изучен и является MAC-адресом назначения многоадресной рассылки, также нет отслеживания IGMP или чего-либо еще происходящего
  5. Кадр поступает, как и предполагалось, к элементам кластера старого NLB, они обрабатывают и пересылают его соответственно
  6. Кадр также поступает к членам кластера нового кластера NLB (потому что он затоплен), но вместо отбрасывания кадра на уровне 2, поскольку целевой MAC не соответствует ни одному из его собственных, он также обрабатывает тот же пакет и пересылает его

То же самое происходит с пакетами, исходящими из другой сети. Это действительно смущает меня, потому что я думал, что сетевой стек 2-го уровня ОС должен отбрасывать кадры сразу, прежде чем они будут перенаправлены на прикладной уровень.

Как только я отключу NLB в новом кластере, он остановит обработку трафика, предназначенного для другого кластера.
У кого-нибудь есть идеи о том, как я могу предотвратить такое поведение, или это действительно так?

0 ответов

Другие вопросы по тегам