We rise up for the things we believe in over and over again

В качестве системы десктопной виртуализации теперь отрабатывает VirtualBox. Его допилили до вменяемого состояния. Цель - NLB под Windows 2012 в гостевом домене. Стандартный сетап - две ноды по два интерфейса на ноду: один для управления, второй для кластера.
Читаем: начиная c Windows 2008 необходимо включать передачу трафика с одного сетевого интерфейса на другой (forwarding), или прибегать к multi-homed конфигурации, что не совсем хорошо. Уж лучше форвард, потому что все утверждают, что без этого работать ничего не будет. Не вопрос. Поднимаем обе ноды, ставим на них службы NLB, выдаем адреса сетевым адаптерам:
Node 1 - Management NIC: 192.168.1.11/24, GW: 192.168.1.254
Node 1 - NLB NIC: 192.168.10.1/24
Node 2 - Management NIC: 192.168.1.12/24, GW: 192.168.1.254
Node 2 - NLB NIC: 192.168.10.2/24
Поскольку у нас пара сетевых адаптеров на каждой ноде - выбираем режим работы кластера Unicast.
Развешиваем NLB кластер на NLB-адаптеры, даем ему адрес 192.168.1.20, включаем форвард. И... не выходит каменный цветок.
Меняем режим кластера на Multicast. Не работает.
Ладно, где наша не пропадала. Выбираем более легкий вариант - сетап с одним сетевым адаптером на ноду. Приводим настройки к начальному виду, убираем форвард (ибо в случае с одной сетевой картой он не нужен). Отключаем NLB NIC на обеих нодах. Развешиваем кластер на Management NIC, переключая кластер в Multicast, потому что с одной нодой работать можно только так. Не работает.
Курим. Оказалось, что сам VirtualBox в плане работы с NLB весьма прихотлив. На том адаптере, который будет заниматься обработкой кластерного трафика, в настройках виртуальной машины нужно включить т.н. "неразборчивый режим" сетевой карты. Включаем. Все взлетает.
Прокуриваем еще немного страниц в сети. Снова берем случай с двумя сетевыми картами на ноду, но адреса раздаем вот так:
Node 1 - Management NIC: 192.168.1.11/24, GW: 192.168.1.254
Node 1 - NLB NIC: 192.168.1.21/24
Node 2 - Management NIC: 192.168.1.12/24, GW: 192.168.1.254
Node 2 - NLB NIC: 192.168.1.22/24
То есть все 4 адаптера будут находиться в одной сети.
Снова развешиваем Multicast-кластер на NLB-адаптерах, включаем форвардинг, включаем "неразборчивость" сетевых карт. Работает. Интереса ради вырубаем форвард - работает. Еще ради интереса вырубаем "неразборчивость". Работает! Плюнув на все переключаем кластер в Unicast, поскольку в случае с двумя сетевыми предпочтительнее работать именно в нем. НЕ работает.
Вывод - VirtualBox может нормально общаться только с NLB Multicast-кластерами. Печально, но уж ничего не поделаешь. А вот то, что все работало вплоть до отключения Multicast... я могу только вспомнить старое доброе:
НУ ПОЧЕМУ ОНО РАБОТАЕТ?!
Хотя я и догадываюсь, почему оно даже без форварда работает в таком случае. Всему виной единая подсеть и долбанный on-link маршрут, который мне как-то очень сильно попортил крови. Впрочем, это уже другая история.