Недавно сталкивался с одной проблемой, связанной с недоконфигурацией NLB. Исходные данные: каждый сервер имеет два сетевых адаптера, помещённых в одну подсеть/вилан. Один из сетевых адаптеров используется для обработки клиентского трафика, второй для коммуникации между узлами NLB-кластера. На базе второго адаптера строится NLB-кластер, дефолтный шлюз прописан, соответственно, на адаптере для обработки клиентского траффика. Примерная схема может выглядеть так:
В этой схеме, начиная с Windows Server 2008 мы будем иметь следующее:
- связь с кластерным ip-адресом из той же сети, где расположены узлы NLB, будет работать без каких-либо проблем
- связь с кластерным ip-адресов из внешней сети (клиент обращается через маршрутизатор) будет отсутствовать
- если мы переносим дефолтный шлюз с клиентского адаптера на кластерный, то связь с кластерным ip-адресом появляется
Внешний клиент пытается попасть на кластерный адаптер, но так как шлюза на нём не прописано, то пакет отбрасывается. Связано это с тем, что IP forwarding, включенный по умолчанию в Windows 2003 Server, позволявший отвечать клиенту через дефолтный шлюз, начиная с Windows Server 2008 выключен по умолчанию. А раз он выключен, то надо его включить. Например через netsh:
netsh interface ipv4 set interface "Cluster NIC" forwarding=enabled
или сразу через ключ в реестре:
Key name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Value Name: IpEnableRouter Data Type: REG_DWORD Value: 1
Полезные ссылки:
Balancing Act: Dual-NIC Configuration with Windows Server 2008 NLB Clusters
Добрый день! Это для Unicast или Multicast?
Добрый, это для Unicast-режима.