Перейти к основному содержанию

Windows Server — самостоятельная смена типа сети

Windows Server

В Windows Server разных версия встречается проблема, при которой после загрузки сервер неверно определяет тип сети и может, к примеру, вместо доменной Domain сменить её на общедоступную Public. Такое поведение может привести к недоступности сервера или его служб в сети, поскольку, в другом типе сети могут (и должны!) действовать другие правила доступа в Firewall.

В Интернете пишут, что к таким последствиям может привести неверное определение состояния сервера в момент загрузки, когда DNS сервер не отвечает. Однако, проблема наблюдалась и на контроллерах домена, где DNS — локальная служба на том же сервере. Непонятно. Но устранять проблему приходится вручную.

Если к серверу есть доступ через KVM консоль, можно просто выключить и включить сетевой адаптер. Если у вас доступ по RDP, то так сделать не получится, вы отключите доступ себе и не сможете его включить. Тогда перезапускаем сетевые адаптеры через PowerShell:

Get-NetAdapter -Physical | Where-Object { $_.Status -eq "Up" } | Restart-NetAdapter

Этот PowerShell-скрипт выполняет перезагрузку (перезапуск) всех физических сетевых адаптеров, которые находятся в состоянии "Включено" (Up). На время перезапуска адаптера (обычно 2–5 секунд) пропадет сетевое соединение на всех интерфейсах, которые перезапускаются. Если скрипт выполняется удаленно — сессия может оборваться. Некоторые адаптеры (например, Wi-Fi или сотовые модемы) могут не полностью восстановить соединение автоматически.

Альтернативный вариант, перезапустить определённый сетевой адаптер по его имени:

Restart-NetAdapter -Name "Ethernet0"

В простых системах можно так попробовать:

ipconfig /release && ipconfig /renew

Сталкивался с такой проблемой, когда полностью отключали электричество, а после его включения контроллеры домена загружались в одно и то же время. В этом случае необходимо настроить задержку при загрузке контроллеров домена, чтобы они запустились в разное время. Для виртуальных серверов это можно сделать через систему виртуализации.

Если у вас аппаратные контроллеры домена, то можно поставить разный таймаут при выборе варианта загрузки:

bcdedit /copy {current} /d "Duplicate record"
bcdedit /timeout 300

А ещё я когда-то давно написал скрипт для передёргивания сети, когда серверы-сателлиты не пингуются, иногда может пригодиться.

BAT скрипт для передергивания сети на сервере Windows Server 2012 R2

Для устранения проблемы, связанной с долгим запуском службы DNS, можно через планировщик запускать скрипт, который передёрнет сеть после старта DNS.

powershell.exe -ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -command "do {$status = (Get-Service dns)} until ($status.Status -eq 'Running'); Get-NetAdapter -Physical | Restart-NetAdapter"

Теги

 

Похожие материалы