Некоторые администраторы сталкиваются с такой конфигурацией виртуальной инфраструктуры, когда управляющий сервер VMware vCenter оказывается за NAT или сетевым экраном относительно части хостов VMware ESXi:
В этом случае получается добавить хосты ESXi в vCenter, но через примерно одну минуту они уходят в офлайн, при этом успешно пингуются. Также в течение этой минуты, пока они видны в vCenter, хосты не могут синхронизировать свою конфигурацию. Причина такого поведения проста - в агент vCenter на хостах ESXi (он же vpxa) прописывается внутренний адрес vCenter для связи со стороны ESXi.
Эти хартбиты идут на целевой порт 902 TCP/UDP (источник варьируется):
Если погуглить, то можно найти статью KB 1010652, где сказано, что такая конфигурация не поддерживается со стороны VMware.
Но есть обходной путь, который вполне работает у многих пользователей. Нужно открыть 902 порт на вашем фаерволе/NAT, а также поменять в файле конфигурации агента vCenter
/etc/vmware/vpxa/vpxa.cfg
строчку:
<serverIp>10.0.0.1</serverIp> на внешний IP-адрес вашего NAT-маршрутизатора. Также нужно добавить следующий параметр в этот файл, чтобы указанный IP не поменялся назад:
<preserveServerIp>true</preserveServerIp>
Перед редактированием файла vpxa.cfg нужно поменять права доступа командой:
chmod 744 /etc/vmware/vpxa/vpxa.cfg
а после редактирования вернуть их назад:
chmod 444 /etc/vmware/vpxa/vpxa.cfg
По окончании процедуры надо перезапустить management agents на хостах ESXi командой:
services.sh restart
И надо понимать, что данная конфигурация хоть и работает, но не поддерживается со стороны VMware. Официально для размещения vCenter за NAT workaround не существует.