NLB: Access denied. Error connecting to server
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В минувший раз я вам подробно описал, как я смог сохранить свои данные на IPad при неудачной попытке обновить его и ошибках 4013, 2009 и 5. Сегодня я хочу вам показать интересную ошибку которую вы можете встретить на NLB участнике при попытке обратиться к его партнеру, ошибка звучит так "Access denied. Error connecting to server". Давайте смотреть в чем дело и как поправить.
Описание ошибки доступа на NLB
И так у меня есть кластер NLB на базе Windows Server 2016. Мне потребовалось провести обслуживание данных хостов, я по очереди перевел их в состояние "Suspend" и перезагрузил. После перезагрузки первого он получил статус "Enable" и вступил в работу, далее я провел то же самое и со вторым участником. Зайдя на первой ноде NLB кластера в оснастку "Network Load Balancing Cluster" я обнаружил ошибку:
Если локально на данном сервере запустить оболочку PowerShell в режиме администратора и выполнить команду:
То у меня выскочила ошибка:
At line:1 char:1
+ Get-NlbClusterNode
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (Microsoft.Netwo...tNlbClusterNode:GetNlbClusterNode) [Get-NlbClusterN
ode], UnauthorizedAccessException
+ FullyQualifiedErrorId : Access denied.,Microsoft.NetworkLoadBalancingClusters.PowerShell.GetNlbClusterNode
Как устранить ошибку Access denied на NLB
- 1️⃣Первое, что вы должны сделать, это посмотреть журналы безопасности на обоих нодах NLB. На сервере, где я получал ошибку доступа, я в журнале безопасности (security) нашел событие ID4648:
A logon was attempted using explicit credentials.
Subject:
Security ID: PYATILISTNIK\sema
Account Name: sema
Account Domain: PYATILISTNIK
Logon ID: 0xCE7A8A
Logon GUID: {bbaa4115-406b-fc70-ba47-010254f7ad10}
Account Whose Credentials Were Used:
Account Name: test_nlb
Account Domain: PYATILISTNIK
Logon GUID: {00000000-0000-0000-0000-000000000000}
Target Server:
Target Server Name: app2.PYATILISTNIK.org
Additional Information: app2.PYATILISTNIK.org
Process Information:
Process ID: 0x308
Process Name: C:\Windows\System32\svchost.exe
Network Information:
Network Address: 10.xx.xxx.28
Port: 135
This event is generated when a process attempts to log on an account by explicitly specifying that account’s credentials. This most commonly occurs in batch-type configurations such as scheduled tasks, or when using the RUNAS command.
В событии я вижу, что была предпринята попытка входа с текущего сервера на удаленный сервер NLB по протоколу epmap по 135 порту, который обязательно должен быть открыт. Проверить порт можно по инструкции.
Еще очень важное поле, это используемые учетные данные, у меня тут откуда-то используется непонятная учетная запись test_nlb, которой уже даже в домене я не нашел. ЭТО уже есть понимание, что я оказывается делаю попытку подключения не от учетной записи администратора домена, а из под некой тестовой.
Перейдем на сервер, к которому не удается получить доступ и посмотрим логи журнала безопасности там, единственное сделайте фильтр по "audit failure"
В результате чего я отфильтровал события, среди которых я обнаружил ID 4625:
An account failed to log on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: test_nlb
Account Domain: PYATILISTNIK
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xC000006D
Sub Status: 0xC0000064
Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): -
Key Length: 0
Из полезного тут:
- Logon Type: 3 - Тип входа сетевой (Пользователь или компьютер вошли в систему на данном компьютере через сеть.)
- Account Name: test_nlb - Учетная запись от которой была попытка входа
- Status: 0xC000006D - Статус, что не так (Причиной является неправильное имя пользователя или сведения о проверке подлинности.) Учетку я не нашел в домене, вот и причина.
- Authentication Package: NTLM
Еще зайдя в группу локальных администраторов, я обнаружил две учетные записи в виде SID, что говорит нам, о том, что их уже нет в Active Directory или текущий сервер их не может прочитать.
- 2️⃣Найдя виновника, вам нужно указать актуальные данные для доступа к другому участнику NLB, это должна быть учетная запись обладающая административными правами на всех участниках NLB кластера. Запустите оснастку "Network Load Balancing Cluster" и найдите меню "Options - Credentials".
Указываем тут учетную запись имеющую доступ.
Так же вы можете добавить нужный хост через контекстное меню, выбрав пункт "Add Host to Cluster"
После чего укажите его DNS-имя и попытайтесь подключиться, у вас будет так же запрошены учетные данные для этого.
- 3️⃣Попробуйте отключить на недоступном Windows Server функцию UAC. Для этого вызовите в пуске "UserAccountControlSettings.exe"
- 4️⃣На время выключите антивирусные решения и брандмауэр, если соединения до сих пор нет.
- 5️⃣Убедитесь, что есть сетевая связанность. например через утилиту PING и то, что DNS имя разрешается.
Как посмотреть статус NLB службы
NLB — это драйвер, поэтому вы не увидите его с помощью оснастки службы mmc. Вы можете использовать командную строку «sc query wlbs» для проверки состояния драйвера. Я
считаю, что служба должна иметь возможность зависеть от драйвера. Вы можете попробовать
Куст реестра NLB
Когда вы включаете NLB на сервере, записи реестра по умолчанию создаются в разделе:
На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.
Дополнительные ссылки
- https://learn.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4625
- https://www.serverbrain.org/administration-practice-2003/nlb-cluster-management.html
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/network-load-balancing-concept-notes