Сегодня поговорим о таком актуальном вопросе, вызванной переходом на новую версию серверной ОС от Microsoft, как миграция старого dhcp сервера на новую платформу Windows Server 2012.
Обычно в продуктивной службе DHCP настроено множество параметров, в том числе огромные списки dhcp резерваций для клиентов (это всевозможные принтера, сендеры, компьютеры), поэтому о ручном переносе DHCP на новый Windows Server 2012 думать даже не хочется. К счастью существует возможность экспорта/импорта конфигурации DHCP сервера.
Нас интересуют два сценария переноса DHCP со старого сервера на Windows Server 2012:
1) Миграция DHCP сервера с Windows 2008/2008 R2
2) Миграция DHCP сервера с Windows 2003/ 2003 R2
Разберем оба эти сценария более подробно.
Миграция DHCP сервера с Windows 2008 на Windows Server 2012
Предположим, у нас имеется старый сервер с развернутой ролью DHCP, работающий под управлением Windows Server 2008 / 2008 R2 (пусть его имя srv-dhcp2008) и новый сервер с Windows 2012 (srv-dhcp2012), на который планируется осуществить перенос службы DHCP со всеми настройками.
На новом сервере с Windows Server 2012 установим роль DHCP с помощью команд Powershell:
Import-Module ServerManager
Add-WindowsFeature -IncludeManagementTools dhcp
Обратите внимание на параметр «IncludeManagementTools«, без которого роль DHCP будет установлена, но без соответствующей консоли управления.
Следующий шаг – авторизация нового DHCP сервера в Active Directory. Эту операцию также выполним с помощью Powershell :
Add-DhcpServerInDC -DnsName srv-dhcp2012.winitpro.ru -IPAddress 192.168.10.22
В Windows Server 2012 появились специальные PowerShell командлеты, позволяющие осуществить импорт/экспорт любых параметров DHCP сервера. Отметим, что Microsoft максимально упростило всю процедуру, и нам необходимо будет выполнить всего две команды PowerShell: Export-DhcpServer и Import-Dhcpserver, которые могут работать и в удаленном режиме.
Итак, для экспорта настроек DHCP сервера, всех зон и резерваций с сервера под управление Windows Server 2008/R2, в консоли powershell на новом сервере (srv-dhcp2012) выполните следующую команду:
Export-DhcpServer -ComputerName srv-dhcp2008.winitpro.ru -File C:\DHCP\w2008dhcpconfig.xml -verbose
Конфигурация старого сервера экспортируется в XML формате в файл w2008dhcpconfig.xml. Отключите службу DHCP на сервере srv-dhcp2008:
Stop-Service DHCPserver
Затем запускаем команду импорта:
Import-Dhcpserver –ComputerName srv-dhcp2012.winitpro.ru -File C:\DHCP\w2008dhcpconfig.xml -BackupPath C:\ DHCP\backup\ -verbose
Удостоверимся, что все dhcp зоны, резервации и мигрированы на новый сервер.
Если нужно импортировать только часть dhcp-зон, команда импорта будет выглядеть так:
Import-Dhcpserver –ComputerName srv-dhcp2012.winitpro.ru -File C:\DHCP\w2008dhcpconfig.xml -BackupPath C:\ DHCP\backup\ -verbose –ScopeId 10.1.1.0, 10.1.2.0
Перенос DHCP с Windows Server 2003 на Windows 2012
К сожалению, прямой перенос настроек базы DHCP из Windows 2003 в Windows Server 2012 невозможен, т.к. Powershell-модуль экспорта не совместим со старыми версиями Windows Server, а команда netsh dhcp не поддерживается в Windows 2012 (функционал netsh dhcp был перенесен в PoSh ), так что в этом случае придется сначала перенести базу DHCP на Windows 2008, а затем уже с помощью Powershell мигрировать ее в Windows Server 2012. Как мигрировать базу из Windows 2003 в Windows 2008 R2 описано ниже.
Перенос базы DHCP из Windows Server 2003 в Windows 2008
Допустим, у нас есть DHCP сервер, работающая под управлением ОС Microsoft Windows Server 2003. Экспортируем базу данных DHCP в бинарный файл командой:
netsh dhcp server export C:\dhcp_conf2003.dat all
В результате, в корне диска C:\ появится бинарный файл dhcp_conf2003.dat, содержащий все настройки старого DHCP сервера. Для предотвращения dhcp конфликтов в сети, остановим службу DHCP на старом сервере:
net stop "dhcp server"
Затем зайдем на сервер с Windows Server 2008 (на котором предварительно развернутся роль DHCP сервера, авторизованная в домене) и импортируем конфигурацию со старого сервера:
netsh dhcp server import \\win2003dhcp\c$\dhcp_conf2003.dat all
После этого нужно перезапустить службу DHCP на новом сервере с Windows 2008:
restart-service dhcp
Полезно, спасибо , пригодиться когда купят лицензию на сервер 🙂
Ps: добавил блог в избранное
Это неправда:
прямой перенос настроек базы DHCP из Windows 2003 в Windows Server 2012 невозможен, т.к. Powershell-модуль экспорта не совместим со старыми версиями Windows Server, а команда netsh dhcp не поддерживается в Windows 2012 (функционал netsh dhcp был перенесен в PoSh )
Статья построена на ошибочном предположении, что 2012 windows не поддерживает netsh dhcp.
Windows 2012 прекрасно поддерживает dhcp netsh, просто даёт предупреждение, что netsh dhcp может быть убран в следующих версиях виндус.
Конечно ошибочное. Совершенно без проблем можно воспользоваться средствами миграции и таки совершить невозможное: перенести настройки с 2003 на 2012 без наличия 2008.
По вашей инструкции перенес DHCP сервер с Windows Server 2003 на Windows 2008 R2 — всего 4 команды и вуаля! Очень просто и быстро! Спасибо!
Спасибо за статью. Для экспорта настроек DHCP-сервера на Windows Server 2000 команда немного другая netsh DHCP server dump, вывод команды прекрасно загружается на DHCP-сервер Windows Server 2008 R2.
Еще нужно не забыть про добавление учетной записи нового сервера DHCP в группу DnsUpdateProxy во всех доменах леса, для которых новый DHCP-сервер будет регистрировать клиентов в DNS.
Подскажите пожалуйся. Виртуальный сервер на базе 2012 R2. Но с недавнего времени IP адреса перестали раздаваться. Нашел проблему. Меняется IP адрес сетевой карты, которая смотрит в локалку и на которую собственно настроен DHCP. Адрес вручную стоит 192.168.2.5. Но в командной строке ipconfig выдает 169.254.121.74. При этом в свойствах сетевой стоит 192.168.2.5. Помогала команда «netsh interface ip set address name=»FASTNET» static 192.168.1.42 255.255.255.0 192.169.1.1 1″ но сегодня и она перестала действовать. И адрес со 169.254 никак не меняется.
Я бы проверил систему на предмет скрытых сетевых карт (случайно не мигрировали этот сервер из физики в виртал через P2V?). В диспетчере оборудования в меню включите отображение скрытых устройств.
Как я понял у сервера несколько сетевых интерфейсов?
вот рабочая вариант. как по мне намного прозрачней. проверено мною работает. перешел с 2003 r2 на 2012 r2.
Спасибо, за ссылку. Действительно еще не удалена у 2012r2 функциональность Netsh для DHCP Server, не хотелось давно забытый 2008-й поднимать.
Для 2003 — 2016
Устанавливаем DHCP роль — настраиваем, но не авторизовываем и не запускаем скоп.
В оснастку dhcp на 2016 добавляем серв dhcp 2003
ПКМ на Арендованных — экспорт — получаем список.
Используем powershell
Import-Csv -Path "Reservations.csv" | Add-DhcpServerv4Reservation -ComputerName "dhcpserver.contoso.com"
Reservations.csv должен иметь вид:
ScopeId,IPAddress,Name,ClientId,Description
10.10.10.0,10.10.10.10,Computer1,1a-1b-1c-1d-1e-1f,Reserved for Computer1 20.20.20.0,20.20.20.11,Computer2,2a-2b-2c-2d-2e-2f,Reserved for Computer2 30.30.30.0,30.30.30.12,Computer3,3a-3b-3c-3d-3e-3f,Reserved for Computer3
* Description — не обязательный параметр — соответственно убрать и Reserved for Computer
В экселе доводим до нужного состояния свой текстовик
для преобразования Маков :
ексель формула =ПСТР(RC1;1;2) — см справку…. следующие ячейки меняем 1/3/5/9/11 — и протягиваем по всем макам
Копирование результатов в блокнот/ворд — замена табуляции на минусы
PS
Предыдущий пост — всё проделывать на 2016!
Не забудьте:
Авторизовать серв и запустить скопы
Запрететь и удалить старый
Спасибо за коммент, вполне годный способ миграции DHCP резервации с WS2003.
При вводе Import-Module ServerManager пишет: Исключение при вызове «Translate» с «1» аргументами: «Некоторые или ссылки на свойства нельзя преобразовать.»
C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ServerManager\ServerManager.psm1:32 знак:21. В чем может быть причина?
Какая версия Windows Server?
В современных версиях вроде не нужно импортировать этот модуль, просто пропустите этот шаг
при такой вашей команде Export-DhcpServer -ComputerName srv-dhcp2008.winitpro.ru -File C:\DHCP\w2008dhcpconfig.xml -verbose
значения lease не экспортируются.
необходимо использовать ключ -lease
Ну, вот, не знаю, перенёс DHCP с 2003 на 2012 с помощью netsh
Перенес область при помощи dhcp failover.
Добавил сервер партнер.
Перенес на него нагрузку 100%.
После истечения всех аренд пользователей просто на сервере патрнере удалил отработку отказа. На первом сервере автоматически удалилась область.
Потом только отношения осталось удалить и все.
Не знаю насколько это правильно. Но у меня сработало