Какая из утилит windows nt server предназначена для сжатия базы dhcp

Обновлено: 01.07.2024

Если вы когда либо переносили DHCP службу с одного сервера на другой, вы наверное знаете что это процесс не слишком веселый и интуитивно понятный, если сервер работает на базе Windows Server 2003. Когда Microsoft создавал Windows Server 2008 он переработал административный интерфейс сервера и в том числе намного облегчил процесс переноса DHCP службы. В этой статье я расскажу о том, как перенести DHCP службу на серверах на базе Windows Server 2000/2003 и Windows Server 2008 и между ними.

Перенос службы DHCP на базе Windows Server 2000

Сохрарение данных на исходном сервере

Для того, чтобы перенести службу DHCP с одного сервера Windows Server 2000 на другой сервер под управлением Windows Server 2000, прежде всего вам надо остановить сервис DHCP, а затем и отключить его на имеющемся сервере. Конечно это означает что DHCP будет недоступен и пользователи не смогут получить IP адреса пока служба не будет перенесена на новый сервер. После этого вы должны скопировать каталог \%systemroot%\system32\DHCP с исходного сервера в безопасное место, откуда вы его потом сможете скопировать на новый сервер. После этого удалите этот каталог с исходного сервера.

Теперь мы должны открыть редактор реестра (regedit). Помните, что неправильные действия в редакторе реестра могут привести к краху Windows, поэтому будьте осторожны и сделайте бекап. Выгрузите следующую ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Configuration в файл и сохраните его там же где и ранее сохраненный каталог. Как сделаете это, можете удалять службу DHCP через Установку/Удаление компонентов Windows (Add / Remove Windows Components).

Восстановление данных на новом сервере

Прежде всего установите службу DHCP на новойм сервере, после этого остановите и отключите сервис DHCP. Теперь зайдите в каталог куда вы сохраняли файлы из \%systemroot%\system32\DHCP исходного сервера, найдите там файл system.mdb, если он присутствует, переименуйте его в system.src. Теперь можно скопировать все содержимое нашей архивного каталога в \%systemroot%\system32\DHCP на новом сервере.

Далее нам надо импортировать ветку реестра, которую мы выгружали на исходном сервере. На новом сервере открываем редактор реестра, переходим в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Configuration и делаем импорт reg файла который у нас получился при экспорте. Теперь надо изменить тип запуска у сервиса DHCP на автоматический и перезагрузить новый сервер.

Перенос службы DHCP с сервера Windows Server 2000 на сервер Windows Server 2003

Внимание! Для переноса базы данных с сервера под управлением Windows 2000 или Windows NT 4.0 на сервер под управлением Windows Server 2003 необходима программа Dhcpexim.exe. Команды Netsh для DHCP недоступны в Windows NT 4.0.

Экспорт базы данных DHCP с сервера под управлением Windows NT Server 4.0 или Windows 2000

Импорт базы данных DHCP с сервера под управлением Windows NT Server 4.0 или Windows 2000 на Windows 2003

An error occurred. An attempt was made to load a program with a incorrect format.

В случае возникновения этой ошибки экспортируйте данные из Windows 2000 с помощью команды dhcpexim, а затем импортируйте эти данные в среду Windows Server 2003 с помощью команды netsh DHCP server import xyz.txt .

Перенос службы DHCP на базе Windows Server 2003

Сохрарение данных на исходном сервере

Примечание. Для экспорта данных необходимо иметь права локального администратора.

Восстановление данных на новом сервере

Примечание. Для импорта данных необходимо иметь права локального администратора.

Для решения этой проблемы добавьте компьютер с DHCP-сервером Windows Server 2003 в группу администраторов DHCP на уровне предприятия.

Примечание. Если команды DHCP IMPORT или EXPORT не работают у пользователей, входящих в группу локальных администраторов, требуется установить на компьютере под управлением Windows Server 2003 следующее исправление:

Перенос службы DHCP на базе Windows Server 2008

Как видите перенос службы DHCP на Windows Server 2003 достаточно трудоемкий процесс. Но в Windows Server 2008 этот процесс намного проще. Вам только лишь надо запустить консоль управления DHCP (DHCP Manager) на исходном сервере, нажать правой кнопкой мыши на имени сервера и выбрать Backup, как показано на рисунке ниже.

Как вы нажмете Backup, система у вас спросит путь, для сохранения архива. Укажите путь и нажмите ОК, для создания бекапа.

Перенос службы DHCP с сервера на базе Windows Server 2003 на сервер на базе Windows Server 2008

Перенос службы DHCP с использованием инструментов Backup и Restore между серверами с разными версиями системы, например Windows Server 2003 и Windows Server 2008, невозможен из-за смены формата базы.

Для миграции в таком случает рекомендуется использовать import/export утилиты netsh.

Вот так должна выглядеть эта процедура:

Сохрарение данных на исходном сервере Windows Server 2003

Примечание. Пока идет процедура экспорта DHCP сервис не отвечает на запросы пользователей о продлении аренды адреса и получении нового.

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

Восстановление данных на новом сервере Windows Server 2008

Импортируем базу DHCP

Авторизация сервера DHCP

Примечание. Необходимо войти на сервер с учетной записью члена группы «Администраторы». В домене Active Directory необходимо войти на сервер с учетной записью члена группы «Администраторы».

Пользователи регистрируются, файловые серверы работают, приложения запускаются – ну не услаждают ли эти слова слух любого сетевого администратора? Жизнь так прекрасна, что мы способны забыть, с какой легкостью утопический мир компьютеров может рухнуть из-за сбоев в работе ключевых сетевых служб.

DHCP – это один пример из набора служб (можно также назвать Active Directory и WINS), которые используются в каждой системе Windows 2000, Windows NT, в смешанных сетевых средах - для обеспечения нормальной работы сетевых пользователей и приложений. Знание уязвимых мест DHCP и ясное представление о работе утилит восстановления и технике восстановления поможет быстро реанимировать DHCP в случае сбоя. Во многих ситуациях успешное восстановление зависит от профилактических мер.

DHCP: и во благо, и во вред

Начиная с NT 3.5, разработчики Microsoft ввели в систему новый протокол назначения IP-адресов, получивший название DHCP (Internet Engineering Task Force, IETF - описывает DHCP в RFC 1531). DHCP существенно облегчает процесс конфигурации TCP/IP на рабочих станциях. Кроме того, DHCP позволяет автоматически назначать клиентам IP-адреса и настраивать дополнительные свойства IP-стека клиента, например, шлюз по умолчанию, серверы DNS и WINS, тип узла WINS.

Несмотря на очевидные плюсы, здесь есть и свои сложности. Одна из проблем состоит в том, что DHCP не обеспечивает приемлемой отказоустойчивости. Реализация Microsoft DHCP такова, что в каждой подсети только один DHCP-сервер обслуживает клиентов данной подсети. Сетевые администраторы должны специально настраивать сетевые маршрутизаторы, чтобы запросы BOOTP или DHCP от одного клиента подсети поступали на DHCP-сервер другой подсети (IETF описывает пересылку BOOTP в RFC 1542). В этом сценарии сервер DHCP может ответить на удаленный запрос клиента DHCP, только если сервер настроен на обслуживание адресов удаленных клиентов.

Такой подход для большинства организаций неудобен, поскольку это означает, что каждый сервер должен хранить непересекающийся диапазон адресов для множества подсетей. Эти адреса фактически "простаивают", так как сервер зарезервировал их для удаленных клиентов. Для частных подсетей (маска подсети 10.x.x.x, 192.168.x.x или 172.16.x.x) эта ситуация не создает больших проблем, так как самих адресов много. И все-таки решение Microsoft не идеально, особенно это очевидно, когда используются маршрутизируемые IP-адреса, назначенные провайдером, ISP. У вас нет достаточного количества адресов для распространения по нескольким DHCP-серверам. Приходится создавать сложную сеть, содержащую большое число подсетей.

В процессе создания Windows 2000 разработчики Microsoft пообещали предоставить новые отказоустойчивые службы Windows 2000 DHCP. Однако компания обеспечила обещанную функциональность только для серверов DHCP в кластерной конфигурации, что требует значительно больших затрат на приобретение Windows 2000 Advanced Server или Windows 2000 Datacenter Server, а также кластерного оборудования. В результате в сетях Windows, в которых нет Windows 2000 Advanced Server или Windows 2000 Datacenter Server, каждая подсеть целиком зависит от работоспособности только одного сервера DHCP.

Восстановление служб DHCP

Сбой в работе служб DHCP или самого компьютера (если только серверы DHCP не образуют кластер Windows 2000) может повлечь за собой очень большие проблемы. Если в работе DHCP случился сбой, активные клиенты, у которых аренда адреса еще не закончена, продолжают нормально работать, однако новые клиенты, посылающие запрос на выделение IP-адреса, или же клиенты, которым нужно возобновить аренду, сделать этого не могут. Когда службы DHCP недоступны, можно воспользоваться одним из двух способов восстановления их работоспособности: восстановить функциональность существующих служб или перенести службы DHCP на другой сервер.

Для функционирующего сервера желательно привести в работоспособное состояние службы DHCP на оригинальном сервере, когда причина сбоя DHCP кроется в поврежденной базе данных. Эта база, файл dhcp.mdb, представляет собой Jet-базу, в которой хранится конфигурационная информация о диапазонах адресов и арендах активных клиентов. На серверах Windows 2000 и NT DHCP основные данные настроек базы дублируются в реестре в разделе LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \DHCPServer\Configuration.

Восстановление базы данных с надежной копии – самое простое решение, конечно, если такая копия создана недавно и доступна. По умолчанию, службы DHCP Windows 2000 и NT 4.0 автоматически создают резервную копию базы данных DHCP один раз в час в каталоге DHCP-сервера \%systemroot%\system32\dhcp\backup\jet\new. Для изменения частоты автоматического резервирования измените значение параметра BackupInterval в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\DHCPServer\Parameters с принятых по умолчанию 60 минут на нужное значение.

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

  1. остановите службу DHCP (Administrative Tools\Services в Windows 2000 или Services в Control Panel в NT 4.0). Или же выполните команду:
  1. для сохранения содержимого каталога базы данных DHCP создайте резервную копию этого каталога (\%systemroot%\system32\dhcp).
  2. воспользуйтесь программой DHCP Export Import (DhcpExim), чтобы импортировать копию базы данных DHCP, или скопируйте резервную копию dhcp.mdb из каталога \%systemroot%\system32\dhcp\backup\jet\new в основной каталог (\%systemroot%\system32\dhcp). Восстановить резервную копию также можно из альтернативного источника (с ленты или другого записывающего устройства, с сервера репликаций). Однако метод прямого копирования файлов используйте только в том случае, когда оба сервера работают под управлением одной и той же операционной системы. Подробнее об использовании программы DhcpExim читайте во врезке "DhcpExim в действии".
  3. служба DHCP остановлена, поэтому можно воспользоваться утилитой Jetpack для сжатия и верификации восстановленной базы данных. Откройте окно командной строки, перейдите в каталог \%systemroot%\system32\dhcp и наберите:

Подробнее об использовании программы Jetpack рассказано во врезке "Использование Jetpack для профилактического сжатия".

В статье Microsoft "How to Move a DHCP Database to Another Windows NT Server" рекомендуется использовать метод копирования файлов вместо программы DhcpExim при перемещении базы данных с NT 4.0 на Windows 2000. Не следует этому верить. Для обслуживания DHCP в случае разных платформ и задач миграции лучше всего использовать утилиту DhcpExim.

Восстановление методом регенерации

Что вы станете делать, если приемлемая копия конфигурации базы данных DHCP отсутствует? В этом случае нужно выполнить следующие действия для генерации новой базы на основе содержащихся в реестре данных:

  1. остановите службу DHCP с помощью Administrative Tools\Services в Windows 2000 или Services в Control Panel в NT 4.0. Или с командной строки:
  1. переместите все файлы из каталога базы данных DHCP (\%systemroot%\system32\dhcp) в другое место - оригинальный каталог должен остаться пустым.
  2. перезапустите службу DHCP.

В результате для регенерации базы DHCP в качестве конфигурационной информации используются данные реестра. Возможно, после завершения процесса регенерации выяснится, что настройки адресного диапазона и распределения фиксированных адресов отсутствуют. Тогда потребуется выполнить еще несколько действий для завершения восстановления базы данных. Используйте следующую процедуру для восстановления копии настроек DHCP, содержащейся в реестре:

  1. запустите regedt32.exe и перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
    Services\DHCPServer\Configuration
  2. укажите раздел Configuration и выберите в меню Restore
  3. когда появится окошко с подсказкой «указать имя файла восстановления», укажите файл \%systemroot%\system32\dhcp\backup\dhcpcfg
  4. подтвердите начало операции восстановления раздела реестра, щелкнув Yes

После завершения регенерации базы данных DHCP в консоли Windows 2000 Microsoft Management Console (MMC) DHCP или NT 4.0 DHCP Manager диапазон адресов появится, но будут отсутствовать сведения об аренде адресов активными клиентами. Это связано с тем, что процедура проверяет аренду у клиентов, присутствующих в настоящее время в базе данных (а их нет!) на основе записей в реестре. Вам предстоит выполнить соответствующие действия для каждого диапазона адресов в DHCP.

Чтобы привести в соответствие аренду выбранного адресного диапазона для NT 4.0 DHCP Server, выберите нужный диапазон, затем в меню выберите Scope\Active Leases. В результирующем диалоговом окне щелкните Reconcile, затем OK. Для сервера Windows 2000 в левой части оснастки DHCP откройте контекстное меню для адресного диапазона и выберите Reconcile (см. Рисунок 1). Описанная процедура должна быть повторена для каждого адресного диапазона сервера.

Избегайте конфликтов

Независимо от того, какие именно процедуры используются для восстановления базы данных и служб DHCP, желательно включить функцию обнаружения конфликтов адресов IP, предоставляемых DHCP. Начиная с NT 4.0 Service Pack 2 (SP2) (а также для Windows 2000) в системе имеется такая функция. С помощью ping-теста выполняется верификация IP-адресов до того, как DHCP назначит клиенту очередной адрес. После процедуры восстановления сервер DHCP может оказаться в состоянии, когда выдаваемые адреса уже кем-то используются, поэтому очень полезно, чтобы к моменту начала работы восстановленного сервера DHCP названная функция была активизирована.

Чтобы проверить состояние функции обнаружения конфликтов для серверов Windows 2000 DHCP, откройте контекстное меню сервера в левой панели оснастки DHCP, выберите Properties и перейдите на вкладку Advanced. Присвойте параметру Conflict Detections Attempt любое целое значение больше нуля. Установленное число означает, сколько раз будет выполняться ping-тест, прежде чем клиенту будет выделен IP-адрес. Для NT DHCP выберите Properties в меню Server утилиты DHCP Manager. Параметр Conflict Detection Attempts устанавливается на вкладке General.

Подготовьтесь к сбоям DHCP

В дополнение к известным способам восстановления после сбоев в работе DHCP, можно заранее предпринять некоторые шаги для облегчения процедуры восстановления. Во-первых, периодически запускайте Jetpack для компрессии базы данных DHCP и проверки ее целостности. Во-вторых, регулярно используйте программу DhcpExim для получения экспортных файлов текущей конфигурации каждого из имеющихся серверов DHCP и храните эти файлы отдельно (не на тех же самых серверах). В-третьих, если это необходимо, отредактируйте реестр с целью увеличения частоты автоматически выполняемых процедур резервирования конфигурации DHCP. В-четвертых, рассмотрите возможность привлечения имеющихся в Windows 2000 и NT способов реплицирования данных или программных продуктов независимых разработчиков для реплицирования базы данных DHCP в другое место в сети. И, наконец, если работа выполняется в кластерной среде, изучите вопрос реализации DHCP как кластерной службы.

Перечисленные шаги, в дополнение к известным способам восстановления DHCP, позволят существенно упростить процесс восстановления в случае сбоя.

DhcpExim в действии

DhcpExim – прекрасная программа, особенно когда сравниваешь ее с альтернативными процедурами резервирования-восстановления или миграции DHCP-конфигурации между серверами. На первом шаге выполняется экспорт конфигурации DHCP с исходного сервера. Конфигурационные данные содержат общие серверные установки и диапазон, указанный для экспорта. Я считаю особенно ценной степень детализации, с которой диапазоны данных представлены в экспортном файле.

Чтобы выполнить экспорт конфигурации DHCP, запустите dhcpexim.exe и на первом шаге мастера выберите Export configuration of the local service to a file. Затем присвойте конфигурационному файлу имя и сохраните его. Наконец, выберите диапазон для экспорта (см. Рисунок А) и щелкните Export. Для импорта сохраненной конфигурации выберите Import configuration to the local service from a file и укажите файл, созданный на этапе экспорта.

Я бы рекомендовал запускать DhcpExim на всех серверах DHCP и хранить результирующие конфигурационные файлы экспорта в надежном месте. Кроме того, периодически следует обновлять содержимое этих файлов.

Использование Jetpack для профилактического сжатия

В DHCP и WINS используется технология базы данных Microsoft Jet и, как большинство им подобных, размер файлов баз данных DHCP и WINS растет по мере добавления и удаления записей. Microsoft поставляет программный продукт Jetpack, инструмент для сжатия файлов баз данных (есть как для Windows 2000, так и для Windows NT). Очень рекомендуется регулярно использовать Jetpack как для базы данных DHCP (файл dhcp.mdb), так и для базы данных WINS (файл wins.mdb).

Формат команды Jetpack:

Например, чтобы сжать базу данных DHCP, сделайте каталог базы DHCP текущим и остановите службу DHCP. Затем в командной строке наберите

Если DHCP и WINS функционируют в кластерной среде, придется использовать иные процедуры для запуска Jetpack. Специалисты Microsoft посвятили этой проблеме отдельную статью "How to Use the Jetpack Utility on a Clustered WINS/DHCP Database".


Сервис, выдающий IP-адреса устройствам в локальной сети, кажется одним из самых простых и всем знакомых. Тем не менее у моих младших коллег до сих пор временами всплывают вопросы вроде «компьютер что-то получает какой-то странный адрес», а появление второго DHCP-сервера в одном сетевом сегменте вызывает некоторый трепет или проблемы в работе сети.

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

Немного теории и решения интересных и не очень практических задач — под катом.

В современной локальной сети выдачей адресов обычно занимаются специализированные сервисы с поддержкой протоколов. Самым популярным из них является DHCP (Dynamic Host Configuration Protocol).

В принципе, специально для функционирования небольших сетей был создан стек технологий под названием Zeroconf. Он позволяет обойтись без каких-либо централизованных сервисов и серверов, включая, но не ограничиваясь выдачей IP-адресов. Им закрываются (ну, или почти закрываются) следующие вопросы:

Получение IP-адреса (Automatic Private IP Addressing или APIPA). Система сама назначает себе IP из сети 169.254.0.0/16 (кроме сеток /24 в начале и конце диапазона), основываясь на MAC-адресе и генераторе псевдослучайных чисел. Такая система позволяет избежать конфликтов, а адрес из этой сети называют link-local — в том числе и потому, что эти адреса не маршрутизируются.

Поиск по имени. Система анонсирует свое сетевое имя, и каждый компьютер работает с ним как с DNS, храня записи у себя в кэше. Apple использует технологию mDNS (Multicast DNS), а Microsoft — LLMNR (Link-local Multicast Name Resolution), упомянутую в статье «Домены, адреса и Windows: смешивать, но не взбалтывать».

При всех плюсах Zeroconf — без каких-либо сакральных знаний можно собрать рабочую сеть, просто соединив компьютеры на физическом уровне, — IT-специалистам он может даже мешать.


Немного раздражает, не так ли?

В системах Windows для отключения автонастройки на всех сетевых адаптерах необходимо создать параметр DWORD с именем IPAutoconfigurationEnabled в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и поставить ему значение 0.

Разумеется, Zeroconf подходит разве что для небольших изолированных сетей (например, встретились с приятелем с ноутбуками, соединили их по Wi-Fi и давай играть Diablo II, не тратя время на какие-то сервера), да и выводить локальную сеть в интернет тоже хочется. Чтоб не мучаться со статическими настройками каждого компьютера, были созданы специальные протоколы, включая героя дня — DHCP.

Одна из первых реализаций протокола для выдачи IP-адресов появилась более 30 лет назад и называлась RARP (Reverse Address Resolution Protocol). Если немного упростить принцип его работы, то выглядело это так: клиент делал запрос на широковещательный адрес сети, сервер его принимал, находил в своей базе данных привязку MAC-адреса клиента и IP — и отправлял в ответ IP.


Схема работы RARP протокола.

И все вроде работало. Но у протокола были минусы: нужно было настраивать сервер в каждом сегменте локальной сети, регистрировать MAC-адреса на этом сервере, а передавать дополнительную информацию клиенту вообще не было возможности. Поэтому на смену ему был создан протокол BOOTP (Bootstrap Protocol).

Изначально он использовался для бездисковых рабочих станций, которым нужно было не только выдать IP-адрес, но и передать клиенту дополнительную информацию, такую, как адрес сервера TFTP и имя файла загрузки. В отличие от RARP, протокол уже поддерживал relay — небольшие сервисы, которые пересылали запросы «главному» серверу. Это сделало возможным использование одного сервера на несколько сетей одновременно. Вот только оставалась необходимость ручной настройки таблиц и ограничение по размеру для дополнительной информации. Как результат, на сцену вышел современный протокол DHCP, который является совместимым расширением BOOTP (DHCP-сервер поддерживает устаревших клиентов, но не наоборот).

Важным отличием от устаревших протоколов является возможность временной выдачи адреса (lease) и передачи большого количества разной информации клиенту. Достигается это за счет менее тривиальной процедуры получения адреса. Если в старых протоколах схема была простая, вида запрос-ответ, то теперь схема следующая:

  • Клиент ищет сервер широковещательным запросом, запрашивая в том числе и дополнительные настройки.
  • Сервер отвечает клиенту, предлагая ему IP-адрес и другие настройки.
  • Клиент подтверждает принятую информацию широковещательным запросом, указав в подтверждении IP-адрес выбранного сервера.
  • Сервер соглашается с клиентом, отправляя ему запрос, по получении которого клиент уже настраивает сетевой интерфейс или отвергает его.


Схема общения клиента с сервером пересылки и сервером.

На нескольких собеседованиях меня спрашивали: «А какой транспорт и порт использует DHCP?» На всякий случай отвечаем: «Сервер UDP:67, клиент UDP:68».

С разными реализациями DHCP-сервера сталкивались многие, даже при настройке домашней сети. Действительно, сейчас сервер есть:

  • На практически любом маршрутизаторе, особенно SOHO.
  • На системах Windows Server. О сервере и его настройке можно почитать в официальной документации.
  • На системах *nix. Пожалуй, самое популярное ПО — ISC DHCP Server (dhcpd) и «комбайн» Dnsmasq.

Конкретных реализаций довольно много, но, например, на SOHO-маршрутизаторах настройки сервера ограничены. В первую очередь это касается дополнительных настроек, помимо классического «IP-адрес, маска, шлюз, сервер DNS». А как раз эти дополнительные опции и вызывают наибольший интерес в работе протокола. С полным списком можно ознакомиться в соответствующем RFC, я же разберу несколько интересных примеров.

Option 6 и Option 15. Начнем с простого. Настройка под номером 6 — это серверы DNS, назначаемые клиентам, 15 — суффикс DNS. Назначение суффикса DNS может быть полезным при работе с доменными ресурсами в недоменной сети, как я описывал в статье «Как мы сокращали персонал через Wi-Fi». Настройка MikroTik под спойлером.

Знание, что сервер DNS — это тоже опция, недавно пригодилось мне, когда разным клиентам нужно было выдать разные серверы DNS. Решение вида «выдать один сервер и сделать разные правила dst-nat на 53 порт» не подходило по ряду причин. Часть конфигурации снова под спойлером.

Option 66 и Option 67. Эти настройки пришли еще с BOOTP и позволяют указать TFTP-сервер и образ для сетевой загрузки. Для небольшого филиала довольно удобно установить туда микротик и бездисковые рабочие станции и закинуть на маршрутизатор подготовленный образ какого-нибудь ThinStation. Пример настройки DHCP:

Option 121 и Option 249. Используются для передачи клиенту дополнительных маршрутов, что может быть в ряде случаев удобнее, чем прописывать маршруты на шлюзе по умолчанию. Настройки практически идентичные, разве что клиенты Windows предпочитают вторую. Для настройки параметра маршруты надо перевести в шестнадцатеричный вид, собрав в одну строку маску сети назначения, адрес сети и шлюз. Также, по RFC, необходимо добавить и маршрут по умолчанию. Вариант настройки — под спойлером.

Предположим, нам нужно добавить клиентам маршрут вида dst-address=10.0.0.0/24 gateway=192.168.88.2, а основным шлюзом будет 192.168.88.1. Приведем это все в HEX:

Данные для настройки DEC HEX
Маска 24 0x18
Сеть назначения 10.0.0.0 0x0A 00 00
Шлюз 192.168.88.2 0xc0 a8 58 02
Сеть по умолчанию 0.0.0.0/0 0x00
Шлюз по умолчанию 192.168.88.1 0xc0 a8 58 01

Соберем все это счастье в одну строку и получим настройку:

Подробнее можно прочитать в статье «Mikrotik, DHCP Classless Route».

Option 252. Автоматическая настройка прокси-сервера. Если по каким-то причинам в организации используется непрозрачный прокси, то удобно будет настроить его у клиентов через специальный файл wpad (pac). Пример настройки такого файла разобран в материале «Proxy Auto Configuration (PAC)». К сожалению, в MiroTik нет встроенного веб-сервера для размещения этого файла. Можно использовать для этого пакет hotspot или возможности metarouter, но лучше разместить файл где-либо еще.

Option 82. Одна из полезнейших опций — только не для клиента, а для DHCP-релея. Позволяет передать серверу информацию о порте коммутатора, к которому подключен клиент, и id самого коммутатора. Сервер на основе этой информации в свою очередь может выдать уже клиенту какой-то определенный набор настроек или просто занести в лог — чтобы в случае необходимости найти порт подключения клиента, не приходилось заходить на все свитчи подряд (особенно, если они не в стеке).

После настройки DHCP-Relay на маршрутизаторе в информации о клиентах появятся поля Agent Circuit ID и Agent Remote ID, где первое — идентификатор порта коммутатора, а второе — идентификатор самого коммутатора.


Выдача адресов с option 82.

Информация выдается в шестнадцатиричном формате. Для удобства восприятия при анализе журнала DHCP можно использовать скрипты. Например, решение для решения от Microsoft опубликовано в галерее скриптов Technet под названием «Декорирование DHCP опции 82».

Также опция Option 82 активно используется в системе биллинга провайдеров и при защите сети от посторонних вмешательств. Об этом чуть подробнее.

Это функция коммутатора, которая позволяет «привязать» DHCP-сервер к определенному порту. Ответы DHCP на других портах будут заблокированы. В некоторых коммутаторах можно настроить и работу с Option 82 при ее обнаружении в пакете (что говорит о присутствии релея): отбросить, заменить, оставить без изменения.

В коммутаторах MikroTik включение DHCP Snooping производится в настройках бриджа:

Настройка в других коммутаторах происходит аналогичным образом.

Стоит отметить, что не все модели MikroTik имеют полную аппаратную поддержку DHCP Snooping — она есть только у CRS3xx.

Помимо защиты от злых хакеров эта функция избавит от головной боли, когда в сети появляется другой DHCP-сервер — например, когда SOHO-роутер, используемый как свич с точкой доступа, сбрасывает свои настройки. К сожалению, в сетях, где встречается SOHO-оборудование, не всегда бывает грамотная структура кабельной сети с управляемыми маршрутизаторами. Но это уже другой вопрос.


Красивая коммутационная — залог здоровья.

Если говорить не только о защите сети, но и о надежности, то не лишним будет упомянуть и про возможности отказоустойчивого DHCP. Действительно, при своей простоте DHCP часто бывает одним из ключевых сервисов, и при выходе его из строя работа организации может быть парализована. Но если просто установить два сервера с идентичными настройками, то ни к чему, кроме конфликта IP-адресов, это не приведет.

Казалось бы, можно поделить область выдачи между двумя серверами, и пусть один выдает одну половину адресов, а второй — другую. Вот только парализованная половина инфраструктуры немногим лучше, чем целая.

Разберем более практичные варианты.

В системах Windows Server начиная с 2012 система резервирования DHCP работает «из коробки», в режиме балансировки нагрузки (active-active) или в режиме отказоустойчивости (active-passive). С подробным описанием технологии и настройками можно ознакомиться в официальной документации. Отмечу, что отказоустойчивость настраивается на уровне зоны, поэтому разные зоны могут работать в разном режиме.


Настройка отказоустойчивости DHCP-сервера в Windows.

В ISC DHCP Server для настройки отказоустойчивости используется директива failover peer, синхронизацию данных предлагается делать самостоятельно — например, при помощи rsync. Подробнее можно почитать в материале «Два DHCP сервера на Centos7. »

Если же делать отказоустойчивое решение на базе MikroTik, то без хитростей не обойтись. Один из вариантов решения задачи был озвучен на MUM RU 18, а затем и опубликован в блоге автора. Если вкратце: настраиваются два сервера, но с разным параметром Delay Threshold (задержка ответа). Тогда выдавать адрес будет сервер с меньшей задержкой, а с большей задержкой — только при выходе из строя первого. Синхронизацию информации опять же приходится делать скриптами.

Лично я в свое время изрядно потрепал себе нервов, когда в сети «случайно» появился роутер, подключенный в локальную сеть и WAN, и LAN интерфейсами.

Расскажите, а вам приходилось сталкиваться с проказами DHCP?

Что такое DHCP сервер и как его настроить

5 Июля 2021

DHCP - это клиент-серверный протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol), с помощью которого в ИТ-инфраструктуре сетевые параметры каждого нового устройства прописываются автоматически. Использование DHCP существенно упрощает работу системных администраторов в случаях расширения сети.

Что такое DHCP-сервер


На фото DHCP сервер.

DHCP-сервер представляет собой фоновый процесс, использующий в качестве транспорта UDP-порт 67 и ожидающий запросы от клиентов, которые хотят подключиться к сети. Применение технологии DHCP-сервера дает возможность прописывать на каждом клиенте:

  • IP-адрес
  • маску сети или подсети - адресацию сети или узла в пределах IP-адреса;
  • шлюз - компонент, который создает соединение между двумя системами;
  • адрес DNS-сервера, который отвечает на запросы о разрешении имен в Интернете;
  • время (NTP) - сервис синхронизации внутреннего времени компьютера.
  • ручное назначение, при котором IP, указанные в конфигурации хоста, назначаются фиксированным MAC-идентификатором При этом аппаратный адрес отдельного сетевого адаптера будет уникальным для каждого устройства. IP в данном случае назначаются на постоянной основе, но дополнительные клиенты в сеть подключены быть уже не могут;
  • динамическое назначение, при котором сервер определяет в своих записях, как надолго IP-адрес может быть предоставлен клиенту. Установленное администратором время называется «временем аренды». По истечении срока аренды сервер DHCP возвращает адрес в пул, где он может быть перераспределен по мере необходимости;
  • автоматическое назначение, при котором протокол динамической конфигурации хоста назначает определенный диапазон IP-адресов. Как только адреса «завязываются» друг на друга, они остаются связанными на бесконечное время. Недостатком этого способа является то, что новые клиенты не получат IP, если область полностью назначена.

DHCP доступен как для IPv4 (DHCPv4), так и для IPv6 (DHCPv6).

Механизм работы DHCP - сервера

Присвоение IP-адреса проводится через DHCP-сервер в несколько этапов:

Что необходимо знать, чтобы произвести установку требуемого сервера

Для инсталляции службы DHCP Servers на компьютеры с ОС Windows необходимо выполнить:

  • вход в «Установку и удаление программ», которая располагается в «Панели управления»;
  • выбор вкладки «Добавление и удаление компонентов», которая находится на панели слева. После этого начнется запуск «Мастер компонентов» (потребуется нажать на кнопку «Далее»);
  • выбор раздела «Сетевые службы» и нажатие на кнопку «Состав»;
  • выделение записи «Dynamic Host Configuration» и щелчок по кнопке «Ок».

После этого потребуется нажать на клавишу «Готово», а потом на пункт «Закрыть».

Как настроить DHCP-сервер

После установки DHCP-сервера необходимо его настроить. Настройка сервера предполагает создание области - диапазона допустимых IP-адресов, доступных для аренды на клиентских компьютерах в сети. При этом рекомендуется создание для каждого сервера DHCP по крайней мере одной области, которая не пересекалась бы ни с одним другим сервером DHCP в определенной ИТ-инфраструктуре.

Создание новой области проходит поэтапно и включает:

  • нажатие кнопки «Начните», указание программ и административных средств, а затем нажатие кнопки DHCP;
  • в дереве консоли - щелчок правой кнопкой мыши на сервер DHCP, на котором необходимо создать новую область DHCP, а затем нажатие кнопки «New Scope»;
  • в Мастере новых областей - нажатие кнопки «Далее», а затем ввод имени и описания области. Имя может быть любым, но достаточно описательным, для максимально полного определения цели области в сети. Нажатие кнопки «Далее»;
  • ввод диапазона адресов, которые можно арендовать в рамках этой области. Например, можно использовать ряд IP-адресов от начального IP-адреса 192.168.100.1 до конечного адреса 192.168.100.100. Поскольку эти адреса даются клиентам, все они должны быть допустимы для вашей сети и не использоваться в настоящее время. При необходимости можно ввести новую подсетевую маску. Нажатие кнопки «Далее»;
  • ввод любых IP-адресов, которые необходимо исключить из введенного диапазона. Эти адреса входят в диапазон указанных в предыдущем шаге адресов, и, возможно, уже были статически назначены различным компьютерам в организации. Как правило, контроллеры домена, веб-серверы, серверы DHCP, серверы системы доменных имен (DNS) и другие серверы имеют статически заданные IP-адреса. Нажатие кнопки «Далее»;
  • введите количества дней, часов и минут до истечения срока аренды IP-адресов из этой области. Этот временной диапазон определяет, как долго клиент может держать арендованный адрес без его продления. Нажатие кнопки «Далее», а затем нажатие кнопки «Да, я хочу настроить эти параметры сейчас». Это необходимо, чтобы расширить мастер включения параметров для наиболее распространенных параметров DHCP. Нажатие кнопки «Далее»;
  • ввод IP-адреса шлюза по умолчанию. Этот шлюз должен использоваться клиентами, которые получают IP-адрес из создаваемой области. Нажатие «Добавить», чтобы добавить адрес шлюза по умолчанию в списке, а затем нажатие кнопки «Далее»;
  • при использовании в сети DNS-сервера необходимо ввести доменное имя организации в поле «Родительский домен». После ввода имени DNS-сервера нажимается кнопка «Разрешить», чтобы сервер DHCP смог связаться с DNS-сервером и определить его адрес. Нажатие «Добавить», чтобы включить этот сервер в список DNS-серверов, которые назначены клиентам DHCP. Нажатие кнопки «Далее» и выполнение тех же действий. При использовании сервера службы Windows (WINS) необходимо добавить его имя и IP-адрес, после чего нажать кнопку «Далее»;
  • нажатие кнопки «Да, я хочу активировать эту область сейчас», для активации области и разрешения клиентам получать аренду из нее, затем - нажатие кнопок «Далее» и «Готово».

После проведения настроек в дереве консоли необходимо выбрать имя сервера и нажать кнопку «Авторизуя» в меню «Действия».

Что выбрать - Linux или Windows

Настройка DHCP-сервера в Linux включает следующие этапы:

  • установка пакета dhcp3-server с помощью команды $ sudo apt install isc-dhcp-server;
  • после завершения установки-редактирование файла /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES;
  • настройка статического IP-адреса для созданного интерфейса;
  • внесение информации, отправляемой клиентам, в основной файл конфигурации DHCP - /etc/dhcp/dhcpd.conf. В данном файле выделяются два типа данных: параметры, которые указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту, и декларации, которые определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций;
  • определение настроек DHCP-сервера через открытие и редактирование файла конфигурации: $ sudo vi /etc/dhcp/dhcpd.conf. Для этого необходимо установить в начале файла глобальные параметры, которые будут действовать для всех деклараций (и которые можно менять в соответствии с конкретными задачами). Это: имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен в том случае если клиент запросит неправильный IP-адрес - тогда случае сервер ответит ему отказом и предложит получить новый адрес;
  • указание подсети локальной сети, в которой будет использоваться DHCP-сервер. Здесь будут использоваться следующие параметры: routers - IP-адрес маршрутизатора по умолчанию; subnet-mask - маска подсети; domain-search - имя домена; domain-name-servers - имена DNS-серверов; range - диапазон IP-адресов, выделяемый клиентам.

При этом стоит отметить, что использование Linux как альтернативы или полноценной замены ОС Windows может стать невыгодным, поскольку Linux не имеет серьезных преимуществ в выборе программ (в том числе бесплатных), в подключении устройств, в безопасности, надежности и скорости работы.

Виды ошибок при установке DHCP-сервера

К типичным ошибкам, возникающим при установке сервера DHCP и приводящим к сбою его настроек, относятся:

  • неправильно назначенные изменения базовых настроек сервера;
  • ввод неверного адреса; неправильное указание пользователем маски подсети;
  • некорректный ввод адреса маршрутизатора; несоответствие адреса маршрутизатора диапазону, характерному для подсети; некорректный ввод домена;
  • неверное указание DNS-сервера; неточный ввод адреса сервера времени;
  • ошибки во время введения или коррекции диапазонов;
  • неточное создание IP-адресов и конечных адресов;
  • проблемы с добавлением требуемого диапазона или ввод диапазона, параметры которого совпадают с параметрами уже имеющегося диапазона в сервере DHCP.

Плюсы и минусы использования DHCP

Использование DHCP-серверов позволяет автоматически создавать конфигурацию для новых пользователей и встраивать в ИТ-инфраструктуру практически любые устройства, подключаемые к сети - компьютеры, коммутаторы, смартфоны. При этом динамическое назначение IP-адресов снижает вероятность того, что два устройства будут иметь один и тот же IP-адрес (что бывает достаточно часто при использовании статических IP-адресов, назначенных вручную).

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

Однако, помимо преимуществ, у использования серверов DHCP есть определенные недостатки. Так, динамические IP-адреса не должны использоваться для стационарных устройств (принтеров и файловых серверов), требующих постоянного доступа. Для таких устройств следует назначать статические IP-адреса.

Дополнительная информация о DHCP

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

Кроме того, в сети одновременно с устройствами, имеющими динамические IP-адреса, доставленные через DHCP, могут использоваться статические IP-адреса.

Какое оборудование подходит для DHCP-сервера

Присвоедие IP-адресов не является трудоемкой задачей, по-этому для данного вида серверов можно использовать самое простое, надежное оборудование. На данную роль подходят такие модели как HPE Proliant DL20 gen10 и Dell R430. В компениях с численностью более 100 сотрудников, рекомендуем развернуть несколько DHCP-серверов, что позволит обеспечить высокую отказоустойчивость.

Сотрудники Сервер Гейт помогут подобрать вам правильное оборудование и сэкономить деньги, выбирая б/у серверы.

Читайте также: