Миграция DHCP-сервера 2003-2012

Миграция службы DHCP с старого 2003 сервера на новый 2012R2 в целом не вызывает сложностей. Всего то нужно:

  • установить роль DHCP на новом сервере
  • создать нужную область (Scope), настроить ее параметры по образу и подобию старого сервера.
  • перенести на новый сервер зарезервированные IP-адреса с их уникальными параметрами (если они есть)
  • выключить службу на старом сервера
  • авторизовать и включить службу на новом сервере.

Основная проблема, с которой придется столкнуться, это перенос резервированных IP адресов.

Особенно это коснется тех, кто предпочитает резервировать ВСЕ адреса в области DHCP (встречаются и такие), или тех, у кого достаточно большое хозяйство и накопилось много зарезервированных адресов, которые руками перетаскивать долго.

Было найдено два рабочих варианта:

Первый: полу-автоматический

  1. На старом сервере запускаем netsh — Dhcp — server\\имя_сервера_2003exportc:\win2003DbAll
  2. На новом ставим роль DHCP, останавливаем DHCP-службу, удаляем базу C:\Windows\System32\DHCP\*.mdb, снова запускаем DHCP-сервер, импортируем настройки, командой Netsh – Dhcp – server \\имя_сервера_2012 – import c:\win2003db
  3. Удаляем роль DHCP на старом сервере.
  4. Перезапускаем и авторизуем новый DHCP сервер, проверяем что все работает корректно.

Второй: полу-ручной (кому-то этот вариант понравится больше, т.к. есть возможность не только причесать свою службу DHCP в процессе миграции, но и не ловить в дальнейшем «хвосты старых проблем». Мы же параноики… Кто его знает что там мигрирует и как, правда? Никакая мигрированная настройка (тем более через 4 поколения серверных ОС)  не сравнится с вручную созданной с нуля :). Ну и грех в данном случае не использовать мощь PowerShell.

  • На новом сервере ставим DHCP, настраиваем параметры области, параметры сервера (если нужно).
  • На старом сервере в консоли DHCP выбираем вкладку «Address Leases» и экспортируем все что видим в CSV-файл
  • Редактируем при необходимости CSV-файл (убираем ненужные резервации, переименовываем комментарии к второпях сделанным адресам и т.д.). Перед сохранением выбираем только те записи, которые имеют в столбце ТИП упоминание Reservation и приводим таблицу к виду ScopeID;IPAddress;Name;ClientID;Description, где ScopeID — имя области(Scope) на новом сервере (в моем случае это 192.168.0.0.
  • Сохраняем с разделителями «;»
  • На новом сервере импортируем резервированные адреса из CSV-файла с помощью PowerShell

 Import-Csv c:\Users\user\Desktop\RezervDHCP.txt -delimiter «;» -Encoding Default | Add-DhcpServerv4Reservation -ComputerName NewServ2012

Далее интреснее.

Многие админы не просто резервируют адреса, но и назначают им параметры, отличающиеся от стандартных. Например меняют адрес шлюза, или ставят DNS другие чем у всех. Здесь логично объединить эти «отличающиеся адреса» каким нибудь общим признаком, чтобы потом было удобнее ими управлять. В моем случае это была группировка по начальным цифрам адреса.  т.е. Scope была с раширенной маской 255.255.248.0 и компьютеры были группированы так:

  • имевшие адрес начинающийся с  192.168.0.0 — имели другой адрес шлюза
  • имевшие адрес начинающийся с  192.168.1.0 — имели другой адрес шлюза и другой DNS

Для автоматической правки получившихся чистых резерваций достаточно сделать следующее:

$rsrv = Get-DhcpServerv4Reservation -ScopeID "192.168.0.0"
Foreach ($r in $rsrv) {
if  ($r.Ipaddress.Ipaddresstostring.StartsWith("192.168.0.")) {
#echo $R.Ipaddress.Ipaddresstostring
Set-DhcpServerv4OptionValue -ReservedIP $R.Ipaddress.Ipaddresstostring -Router 192.168.0.1
}
elseif
($r.Ipaddress.Ipaddresstostring.StartsWith("192.168.1.")) {
Set-DhcpServerv4OptionValue -ReservedIP $R.Ipaddress.Ipaddresstostring -Router 192.168.0.1 -DnsServer 8.8.8.8 -DnsDomain ""
}
elseif
($r.Ipaddress.Ipaddresstostring.StartsWith("192.168.2.")) {
Set-DhcpServerv4OptionValue -ReservedIP $R.Ipaddress.Ipaddresstostring -Router 192.168.2.1
}
}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Post Navigation

Яндекс.Метрика