Reconcile dhcp что это
Энциклопедия Windows
Все об использовании и настройке Windows
Восстановление БД DHCP: согласование областей
При согласовании областей выполняется поиск и исправление несоответствий между адресами клиентов IP и арендами в областях DHCP. Эта задача всегда должна выполнятся немедленно после восстановления базы данных DHCP.
После выполнения пересадки сердца врачи не выбрасывают пациента из больницы прямо после завершения операции. Как минимум, некоторое время тратится на проверку состояния здоровья пациента. То же самое можно сказать и про трансплантацию базы данных DHCP.
Быстрая проверка правильности, выполняемая при согласовании областей, предоставляет возможность обнаружить и исправить все проблемы, которые могли возникнуть при восстановлении базы данных.
Для согласования областей DHCP выполните такую последовательность действий.
1. В оснастке DHCP кликните правой кнопкой мыши на объекте сервера и выберите Согласовать все области DHCP (Reconcile All Scopes).
2. В диалоговом окне Согласовать все области DHCP (Reconcile All Scopes) кликните на кнопке Проверить (Verify).
3. Теперь кликните на кнопке Согласовать (Reconcile).
4. Как только области будут согласованы, еще раз кликните на кнопке Проверить (Verify) в диалоговом окне Согласовать все области (Reconcile All Scopes).
5. После этого появится сообщение о целостности базы данных. Кликните на кнопке OK.
6. Кликните на кнопке Отмена (Cancel) для закрытия диалогового окна Согласовать все области (Reconcile All Scopes).
После завершения согласования областей сервер DHCP считается полностью работоспособным.
Согласование аренд и резервирований
В процессе согласования аренды и резервирования клиенты сверяются с БД DHCP на сервере. При обнаружения несоответствий между тем, что записано в реестре Windows, и данными БД DHCP-сервера, вы можете выбрать и согласовать все противоречивые записи. После согласования DHCP либо возвращает ІР-адрес прежнему владельцу, либо создает временное резервирование ІР-адреса. По истечению срока аренды адрес восстанавливается для дальнейшего использования.
В этом посте мы рассмотрим как согласовать отдельную область, и как согласовать сразу все области на сервере.
Можно согласовывать отдельные области или все области на сервере. Чтобы согласовать отдельную область, выполните следующие действия:
1. В консоли DHCP щелкните правой кнопкой нужную область и выберите команду Согласование (Reconcile).
2. В диалоговом окне Согласовать (Reconcile) щелкните кнопку Проверить (Verify).
3. Найденные противоречия приводятся в окне состояния. Для их исправления нужно выбрать адрес и щелкнуть Согласовать (Reconcile).
4. Если противоречий не найдено, щелкните ОК.
Чтобы согласовать все области на сервере, выполните следующие действия:
1. В консоли DHCP щелкните правой кнопкой элемент нужного протокола и выберите команду Согласовать все области (Reconcile All Scopes).
2. В диалоговом окне Согласование всех областей (Reconcile All Scopes) щелкните Проверить (Verify).
3. Найденные противоречия приводятся в окне состояния. Для их исправления нужно выбрать адрес и щелкнуть Согласовать (Reconcile).
4. Если противоречий не найдено, щелкните ОК.
Протокол DHCP (FAQ для системного администратора)
Эта статья поможет вам узнать все, что должен знать системный администратор об этом протоколе.
Что такое DHCP? И почему рекомендуется использовать его? Представьте, что вы работаете администратором в крупной компании с 500 настольными компьютерами, и вам на каждом необходимо установить IP адрес, маску подсети, шлюз по умолчанию, DNS сервера и другие сетевые настройки. Как можно это выполнить?
Если вы попытаетесь выполнить эту задачу вручную, вы потратите немало времени, проведя за каждым ПК по 5-10 минут, кроме того, вы можете, например, случайно ввести неправильный IP адрес на нескольких ПК, или же вообще одинаковый адрес на разных ПК.
Для того, чтобы решить эти проблемы, вы можете задействовать в вашей сети протокол Dynamic Host Configuration Protocol (DHCP).
DHCP позволяет управлять сетями IP-адресов и другими настройками TCP / IP, такими как DNS, шлюз по умолчанию и т.д. из одного места, это центральное место и называется DHCP-сервер. Помимо управления, если есть какие-либо проблемы, вам не нужно бежать по ПК Ваших клиентов, нужно просто подключить к серверу и проверить настройки DHCP, скорее всего, если наблюдается некая проблема, она может быть локализована на DHCP сервере, покопавшись в его настройках и логах.
DHCP сервер может легко и полностью автоматически предоставлять IP-адреса клиентам, поэтому вам не нужно настраивать и устанавливать какие-либо параметры на стороне клиента, все, что вам нужно, это настроить сервер DHCP, настроить параметры области (scope) и некоторые другие параметры протокола TCP / IP. Вы можете предоставить своим клиентам IP-адреса из выбранного вами диапазона IP-адресов.
Примечание: DHCP, по моему, можно назвать следующим поколением протокола BOOTP, потому что BOOTP начал применятся ранее, чем DHCP, и сегодня мы используем BOOTP для загрузки по сети при развертывания операционных систем. Кроме этого, DHCP был разработан для работы в крупных сетях — то, чем BOOTP явно не может похвастаться.
Как работает DHCP?
Не вдаваясь в техническую информацию (процесс DORA), скажу, клиент DHCP запрашивает у сервера DHCP на некоторое время IP адрес, время, на которое клиент DHCP получил динамический IP адрес, называется временем аренды (lease): аренда означает, что клиент арендовал IP-адрес у сервера DHCP на определенное время, и если клиент хочет продолжить использовать конкретного IP-адреса, ему необходимо продлить (renew) аренду.
Разберем этот процесс более подробно. Служба DHCP работает с использованием процесса DORA (Discover, Offer, Request and Acknowledgment — его можно отследить с помощью утилиты Network Monitor):
1) DHCPDISCOVER — клиент шлет широковещательный пакет DHCPDISCOVER, пытаясь найти сервер DHCP в сети, в случаях, когда сервер DHCP не нашелся в той же подсети, что и клиент, нужно настраивать на сетевых устройствах (маршрутизаторах) DHCP Relay Agent, в целях передачи пакета DHCPDISCOVER на сервер DHCP.
2) DHCPOFFER — сервер DHCP шлет широковещательный пакет DHCPOFFER для клиента, который включает предложение использовать уникальный IP адрес.
3) DHCPREQUEST — клиент шлет широковещательный пакет DHCPREQUEST на сервер DHCP с ответом, и «просит» у сервера выдать в аренду предложенный уникальный адрес.
4) DHCPACK — сервер DHCP шлет клиенту широковещательный пакет DHCPACK, в этот пакете сервером утверждается запрос клиента на использование IP-адреса, а также сообщаются и другие детали, такие, как сервера DNS, шлюз по умолчанию, и т.д. Если сервер не может предоставить запрашиваемый адрес или по каким-то причинам адрес недействителен, сервер посылает пакет DHCPNACK.
Примечание: Служба DHCP использует порт 67/UDP на сервере DHCP, и 68/UDP на клиентах DHCP.
Рекомендуется проверить, что ваш брандмауэр не блокирует эти порты, а также убедитесь, что ваши сетевые устройства поддерживают DHCP Relay, в случаях, если некоторые из ваших клиентов находятся в различных физических подсетях.
В некоторых случаях можно обнаружить еще некоторые типы DHCP-сообщений:
1) DHCPDECLINE — Если клиент определяет, что IP-адрес, который предлагает ему сервер DHCP, уже используется, клиент сгенерирует новый запрос на другой адрес (в шаге DHCPREQUEST).
2) DHCPRELEASE — Это сообщение обычно используется, когда клиент освобождает IP- адрес.
3) DHCPRENEW — Это пакет с просьба обновить и продолжить аренду выданного адреса.
4) DHCPINFORM — DHCPINFORM это пакет, который клиент посылает на сервер DHCP для того, чтобы получить более подробную информацию с сервера, например DHCPINFORM можно отправить в целях установления местонахождения другого DHCP сервера в сети.
DHCPNACK
DHCPNACK или пакет отрицательного ответа, его посылает сервер, если IP-адрес уже используется другим клиентом, или адреса больше не действует.
В случае получения DHCPNACK, клиенту необходимо перезапустить процесс получения в аренду адреса.
Области DHCP, исключения и резервации
Область (scope) DHCP – это целый диапазон IP адресов, которые вы настроили на сервере DHCP, в качестве диапазона адресов, предназначены для выдачи среди клиентов.
Например, если вы создадите область с диапазоном выдаваемых адресов 10.0.0.100-10.0.0.200, Вы можете легко обеспечить выдачу только этих адресов на Ваши рабочие станции.
Вы также можете создавать более одной области на одном DHCP-сервере, но в этом случае рекомендуется проверить, что ваши области не пересекаются и не дублируют друг друга. В процессе создания таких областей вы можете индивидуально настроить на клиентах параметры TCP / IP, такие как маска подсети, времени аренды, маршрутизатор (шлюз по умолчанию), DNS-сервера и т.д, поэтому получая свой адрес из той или иной области, клиенты получают также и другие параметры области.
В некоторых случаях, Вам будет необходимо предотвратить получение клиентами некоторых адресов, например, если ваша область DHCP имеет диапазон от 10.0.0.1 до 10.0.0.100, а IP-адреса Ваших серверов находятся в диапазоне 10.0.0.1-10.0.0.10, Вам понадобится возможность исключить эти IP адреса из области, которая выдается DHC-сервером. Такая возможность называется исключением (exclude).
Резервация(reservation) – используется в случаях, когда Вы планируете представить конкретный динамический IP-адрес определенному клиенту DHCP. Например, в своей области DHCP, вы хотите выделить для конкретного клиента уникальный адрес, который будет закреплен за ним, для этого Вы можете легко создать для него резервацию, используя уникальный идентификатор — MAC-адрес (Media Access Control — представляет собой уникальный шестнадцатеричный физический адрес сетевого адаптера).
Active Directory и сервер DHCP
Для корректной работы вашего Microsoft Windows DHCP – сервера в среде Active Directory, Вам необходимо сначала авторизовать свой DHCP – сервер в AD.
В том случае, если неавторизованный сервер попытается запустить службу DHCP для выдачи IP-адресов, этот запуск завершится неудачей и служба DHCP на локальном компьютере будет остановлена.
DHCP Relay Agent
DHCP Relay Agent – это тип хоста (обычно маршрутизатор или сервер), которые принимает широковещательные трансляции DHCP / BOOTP от клиентов в подсетях, не имеющих локальных серверов DHCP.
DHCP Relay Agent пересылает пакеты от клиентов и серверов DHCP, которые находятся в различных физических подсетях, позволяя им работать по протоколу DHCP, т.е. выполняет функции посредника
В заключение
DHCP является одной из основополагающих служб в сети, т.к. помогает Вам, как системному администратору, централизованно управлять Вашими клиентами, выдавая, отслеживая и повторно присваивая им IP-адреса.
[Конспект админа] Как подружиться с DHCP и не бояться APIPA
Сервис, выдающий IP-адреса устройствам в локальной сети, кажется одним из самых простых и всем знакомых. Тем не менее у моих младших коллег до сих пор временами всплывают вопросы вроде «компьютер что-то получает какой-то странный адрес», а появление второго DHCP-сервера в одном сетевом сегменте вызывает некоторый трепет или проблемы в работе сети.
Чтобы у прочитавших этот материал такие вопросы не возникали, мне хотелось бы собрать в кучу основную информацию про работу механизмов выдачи адресов IP, особенности и примеры настройки отказоустойчивых и защищенных конфигураций. Да и возможно матерым специалистам будет интересно освежить нейронные связи.
Немного теории и решения интересных и не очень практических задач — под катом.
В современной локальной сети выдачей адресов обычно занимаются специализированные сервисы с поддержкой протоколов. Самым популярным из них является DHCP (Dynamic Host Configuration Protocol).
Zeroconf или зачем нам вообще какой-то DHCP
В принципе, специально для функционирования небольших сетей был создан стек технологий под названием 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: смешивать, но не взбалтывать».
Поиск сетевых сервисов. Например, принтеров. Пожалуй, самым известным протоколом является UPnP, который помимо прочего умеет сам открывать порты на роутерах. Протокол довольно сложен, в нем используется целый набор надстроек вроде использования http, в отличие от второго известного протокола — DNS-SD (DNS Service Discovery), который попросту использует SRV-записи, в том числе при работе mDNS.
При всех плюсах Zeroconf — без каких-либо сакральных знаний можно собрать рабочую сеть, просто соединив компьютеры на физическом уровне, — IT-специалистам он может даже мешать.
Немного раздражает, не так ли?
В системах Windows для отключения автонастройки на всех сетевых адаптерах необходимо создать параметр DWORD с именем IPAutoconfigurationEnabled в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и поставить ему значение 0.
Разумеется, Zeroconf подходит разве что для небольших изолированных сетей (например, встретились с приятелем с ноутбуками, соединили их по Wi-Fi и давай играть Diablo II, не тратя время на какие-то сервера), да и выводить локальную сеть в интернет тоже хочется. Чтоб не мучаться со статическими настройками каждого компьютера, были созданы специальные протоколы, включая героя дня — DHCP.
DHCP и его прародители
Одна из первых реализаций протокола для выдачи IP-адресов появилась более 30 лет назад и называлась RARP (Reverse Address Resolution Protocol). Если немного упростить принцип его работы, то выглядело это так: клиент делал запрос на широковещательный адрес сети, сервер его принимал, находил в своей базе данных привязку MAC-адреса клиента и IP — и отправлял в ответ IP.
Схема работы RARP протокола.
И все вроде работало. Но у протокола были минусы: нужно было настраивать сервер в каждом сегменте локальной сети, регистрировать MAC-адреса на этом сервере, а передавать дополнительную информацию клиенту вообще не было возможности. Поэтому на смену ему был создан протокол BOOTP (Bootstrap Protocol).
Изначально он использовался для бездисковых рабочих станций, которым нужно было не только выдать IP-адрес, но и передать клиенту дополнительную информацию, такую, как адрес сервера TFTP и имя файла загрузки. В отличие от RARP, протокол уже поддерживал relay — небольшие сервисы, которые пересылали запросы «главному» серверу. Это сделало возможным использование одного сервера на несколько сетей одновременно. Вот только оставалась необходимость ручной настройки таблиц и ограничение по размеру для дополнительной информации. Как результат, на сцену вышел современный протокол DHCP, который является совместимым расширением BOOTP (DHCP-сервер поддерживает устаревших клиентов, но не наоборот).
Важным отличием от устаревших протоколов является возможность временной выдачи адреса (lease) и передачи большого количества разной информации клиенту. Достигается это за счет менее тривиальной процедуры получения адреса. Если в старых протоколах схема была простая, вида запрос-ответ, то теперь схема следующая:
Схема общения клиента с сервером пересылки и сервером.
Подробнее про схему взаимодействия сервера и клиента и про структуру запросов и ответов можно почитать, например, в материале «Структура, формат и назначение DHCP пакетов».
На нескольких собеседованиях меня спрашивали: «А какой транспорт и порт использует DHCP?» На всякий случай отвечаем: «Сервер UDP:67, клиент UDP:68».
С разными реализациями DHCP-сервера сталкивались многие, даже при настройке домашней сети. Действительно, сейчас сервер есть:
Конкретных реализаций довольно много, но, например, на SOHO-маршрутизаторах настройки сервера ограничены. В первую очередь это касается дополнительных настроек, помимо классического «IP-адрес, маска, шлюз, сервер DNS». А как раз эти дополнительные опции и вызывают наибольший интерес в работе протокола. С полным списком можно ознакомиться в соответствующем RFC, я же разберу несколько интересных примеров.
Удивительные опции DHCP
В этом разделе я рассмотрю практическое применение опций DHCP на оборудовании MikroTik. Сразу обращу внимание на то, что не все опции задаются очевидно, формат параметров описан в wiki. Следует отметить также то, что опции клиент применяет, только когда сам их попросит. В некоторых серверах можно принудительно отправить настройки: например, в ISC DHCP Server за это отвечает директива dhcp-parameter-request-list, а в Dnsmasq —* *—dhcp-option-force. MikroTik и Windows такого не умеют.
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 активно используется в системе биллинга провайдеров и при защите сети от посторонних вмешательств. Об этом чуть подробнее.
Добавим сети надежности и безопасности
Ввиду простоты протокола и присутствия широковещательных запросов есть эффективные атаки на инфраструктуру — в основном типа MITM («человек посередине»). Атаки производятся посредством поднятия своего DHCP-сервера или релея: ведь если контролировать выдачу сетевых настроек, можно запросто перенаправить трафик на скомпрометированный шлюз. Для облегчения атаки используется DHCP starvation (представляясь клиентом или релеем, злоумышленник заставляет «родной» DHCP-сервер исчерпать свои IP-адреса). Подробнее про реализацию атаки можно почитать в статье «Атакуем DHCP», методом же защиты является DHCP Snooping.
Это функция коммутатора, которая позволяет «привязать» DHCP-сервер к определенному порту. Ответы DHCP на других портах будут заблокированы. В некоторых коммутаторах можно настроить и работу с Option 82 при ее обнаружении в пакете (что говорит о присутствии релея): отбросить, заменить, оставить без изменения.
В коммутаторах MikroTik включение DHCP Snooping производится в настройках бриджа:
Настройка в других коммутаторах происходит аналогичным образом.
Стоит отметить, что не все модели MikroTik имеют полную аппаратную поддержку DHCP Snooping — она есть только у CRS3xx.
Помимо защиты от злых хакеров эта функция избавит от головной боли, когда в сети появляется другой DHCP-сервер — например, когда SOHO-роутер, используемый как свич с точкой доступа, сбрасывает свои настройки. К сожалению, в сетях, где встречается SOHO-оборудование, не всегда бывает грамотная структура кабельной сети с управляемыми маршрутизаторами. Но это уже другой вопрос.
Красивая коммутационная — залог здоровья.
К другим методам защиты можно отнести Port Security («привязка» определенного MAC-адреса к порту маршрутизатора, при обнаружении трафика с других адресов порт будет блокироваться), Анализ трафика на количество DHCP-запросов и ответов или ограничение их количества, ну и, конечно, различные системы IPS\IDS.
Если говорить не только о защите сети, но и о надежности, то не лишним будет упомянуть и про возможности отказоустойчивого 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?