Сетевые сервисы Windows 2012 — DHCP

Про DHCP, как и про DNS, знают все, кто хоть немного знаком с сетевой инфраструктурой. Хотя бы Wi-Fi-роутер дома настраивал. Понятно, что он раздаёт IP-адреса клиентам и нужен для облегчения администрирования. В данной статье попробую поподробнее описать как это работает и что умеет. Возможно, кто-то найдёт что-то, о чём не задумывался или не обращал внимание.

Содержание:

  1. Основные сведения и архитектура
  2. Немного о формате сообщения
  3. Новое в Windows Server 2012

1. Основные сведения и архитектура

Для функционирования DHCP требуются DHCP-сервер, DHCP-клиенты и DHCP-relay агенты (последние — в случае, если сервер и клиенты находятся в разных подсетях).

Вкратце, процесс строится следующим образом:

  • клиент широковещательным запросом опрашивает сеть на предмет наличия в ней DHCP-сервера;
  • если сервер ответил, происходит обмен сообщениями и клиент получает определённый адрес из числа незанятых и параметры;
  • если сервер не отвечает в течение минуты, клиент проверяет настройки Альтернативной конфигурации в параметрах TCP/IP сетевого адаптера:
    —  если там выставлены статические настройки, они применяются;
    —  если там выставлено значение «Автоматический частный IP-адрес», применяются; настройки APIPA — генерируется адрес из диапазона 169.254.0.0 с маской 255.255.0.0;
  • далее клиент каждые 5 минут проводит новый поиск DHCP-сервера, и если он откликается, отменяет применённые альтернативные параметры и начинает использовать параметры, выданные DHCP-сервером.
  • Если клиент уже получал адрес от сервера, а срок аренды на момент включения ещё не истёк, то клиент пытается обновить аренду полученного адреса. Если на этом этапе сервер ему не отвечает, то клиент пингует шлюз по умолчанию, указанный в ранее полученных настройках и затем, если пинг проходит успешно, использует старый адрес. Если шлюз не пингуется, клиент принимает решение о том, что он перемещён в друую сеть, отменяет использование IP-адреса и переходит к настройкам Альтернативной конфигурации и дальнейшему поиску DHCP через каждые 5 минут.

После получения адреса, клиент, перед тем как применить его к себе, отправляет на этот адрес ARP-запрос. Если на него получен отклик, клиент определяет конфликт IP-адресов и отправляет серверу сообщение DHCPDecline об отклонении адреса. Сервер помечает данный адрес как BAD_ADDRESS на период, равный времени аренды, и процесс запроса адреса клиентом повторяется.

Начиная с Windows Server 2008, сервер также может проверять выдаваемый адрес на конфликтность, причём уже не ARP-запросом, а через PING, так что область проверки распространяется даже за маршрутизаторы. По умолчанию эта возможность выключена в целях снижения нагрузки на сервер.

Для того чтобы сервер начал раздавать адреса клиентам сети, он, во-первых, должен быть авторизован в AD (если имеет место быть AD в данной сети и сервер мы настраиваем на базе Windows Server), во-вторых на нём должна быть создана Область (Scope) для данной сети.

Каждая Область (Scope) — состоит из названия, указанного диапазона IP-адресов с маской подсети, диапазона исключений, определённого времени аренды и параметров DHCP (DHCP Options). Также для нужных устройств можно прописать резервирование, прописать MAC-адрес устройства и указать IP-адрес, который будет выдаваться ему всегда.

Параметры DHCP (DHCP Options) — дополнительные конфигурационные параметры, которые DHCP-сервер передаёт клиенту, помимо IP-адреса и маски подсети. Могут применяться на уровне области, на уровне сервера (ко всем областям данного сервера) и есть возможность указать отдельно для клиентов, имеющих резервирование.

Основные и наиболее часто используемые параметры:

3 — Router — адрес шлюза по умолчанию.

6 — DNS server — адрес (адреса) DNS-сервера

15 — DNS domain name — иерархическое FQDN-имя, которое будет добавляться к имени клиента и именам хостов, перед поиском оных в DNS-запросах.

Если какие-то из этих параметров указаны на клиенте статически, то используются они, а переданные с DHCP-сервера игнорируются.

2. Немного о формате сообщения

Сообщение DHCP состоит из следующих полей:

op — Тип сообщения. Принимает значения: 1 (запрос от клиента) 2 (ответ сервера).

htype — Тип аппаратного адреса.

hlen — Длина аппаратного адреса в байтах.

ops — Количество промежуточных маршрутизаторов. Значение выставляется в 0 клиентом и увеличивается на 1 каждым relay агентом.

xid — Случайное число, сгенерированное клиентом для распознавания ответов сервера (это же число вставляется в аналогичное поле ответа сервера).

secs — количество секунд, прошедших с момента инициации запроса на получение или обновление адреса клиентом.

flags — поле флагов. Например, флаг broadcast-сообщения, если клиент ещё не получил адрес и недоступен для UDP-датаграмм.

ciaddr — IP-адрес клиента. Заполняется, если у клиента он есть (например, в случае обновления).

yiaddr — IP-адрес, предлагаемый клиенту сервером.

siaddr — IP-адрес сервера DHCP.

giaddr — IP-адрес relay агента, если он фигурировал в процессе.

chaddr — MAC-адрес клиента

sname — Опциональное имя сервера. С Windows Server 2008 не используется.

file — имя файла, содержащего загрузочный образ для загрузки по сети

options — дополнительные параметры DHCP.

Данный формат един для всех сообщений, которыми обмениваются между собой клиент и сервер или два DHCP-сервера.

Типы сообщений

ic196966

Диалог включает сообщения следующих типов:

DHCPDiscover — Широковещательный запрос (broadcast) от DHCP-клиента, подключающегося впервые. Цель — обнаружить сервер, также содержит запрос IP-адреса.

DHCPOffer — Широковещательная рассылка от каждого сервера, получившего DHCPDiscover от клиента. Содержит неаредованный ранее IP-адрес и дополнительные параметры, такие как маска и шлюз. Если клиент получает несколько таких сообщений, он принимает в работу то, что пришло первым.

DHCPRequest — Broadcast от клиента, содержащий предложенный сервером IP-адрес. Если клиент обновляет аренду, а не запрашивает впервые, то сообщение отправляется напрямую на сервер, а не широковещательным запросом.

DHCPAck — Broadcast от сервера клиенту, подвтерждающий его DHCPRequest. С этого момента клиент может войти в сеть TCP/IP. Если DHCPAck отправляется в ответ на DHCPInform, то отправляется не широковещательно, а напрямую.

DHCPNack — Broadcast от сервера клиенту, отклоняющий его DHCPRequest. Такое бывает, если запрошенный клиентом адрес не может быть выдан, в случае если клиент был перемешён в другую подсеть или его аренда истекла и адрес занят другим хостом.

DHCPDecline — Broadcast от клиента серверу, информирующий последний о том, что предложенный им адрес отклонён, поскольку конфликтует с другим узлом в сети.

DHCPRelease — Сообщение от клиента серверу освобождающее IP-адрес и отменяющее оставшуюся аренду.

DHCPInform — Сообщение, отправляемое от клиента серверу, запрашивающее только дополнительные конфигурационные параметры. Также используется для определения DHCP-серверами Windows Server 2008+ для обнаружения неавторизованных серверов.

3. Новое в Windows Server 2012

Появившуюся в Windows Server 2008 поддержку IPv6 я специально оставлю за кадром, так как IPv6 — отдельная наука.

В Windows Server 2012 появилось два ключевых нововведения:

1) Назначение адресов на основе политики.

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

Наличие разных типов устройств. Сеть содержит множество разных устройств, являющихся DHCP-клиентами, таких как принтеры, IP-телефоны и настольные ПК. Администраторам требуется классифицировать эти устройства с помощью разных диапазонов IP-адресов. Это позволяет контролировать доступ к сети или трафик с помощью политик маршрутизатора и политик качества обслуживания на основе диапазонов IP-адресов. Например, можно добавить класс поставщика «Hewlett-Packard JetDirect» или IP-телефон CP-7940G, Cisco Systems и настроить политики принтера и IP-телефона для назначения этим устройствам IP-адресов из определенного диапазона.

Наличие нескольких ролей. В одной подсети содержатся разные типы компьютеров, например ноутбуки, настольные ПК и серверы. Администратору может потребоваться задать разные параметры срока действия аренды адреса в зависимости от типа клиента. Всем клиентам беспроводной сети, подключающимся с помощью определенного агента ретрансляции, можно назначить срок действия аренды адреса, равный 4 часам. Для клиентов, соответствующих этой политике, можно отключить динамическое обновление DNS. Аналогичным образом можно создать серверную политику с использованием списка MAC-адресов серверов. Для серверов можно задать срок действия аренды адреса, равный 12 дням.

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

При определении политик можно использовать следующие поля запроса DHCP-клиента:

  •     класс поставщика;
  •     класс пользователя;
  •     MAC-адрес;
  •     идентификатор клиента;
  •     информация агента ретрансляции.

Подробнее тут: http://technet.microsoft.com/ru-ru/library/hh831538.aspx

2) Настройка отказоустойчивости DHCP-сервера (DHCP Failover).

Появилось два новых метода обеспечения высокой доступности:

  1. Разделенные области DHCP — DHCP Split Scope. (В этом случае используются два независимых DHCP-сервера, которые разделяют одну область между собой. Если клиентам не удается подключиться к основному серверу, то они могут получить IP-адрес у дополнительного сервера. Развертывание разделенных областей не обеспечивает непрерывность IP-адресов.)
  2. DHCP Failover. Представлен двумя режимами:
  1. Режим горячей замены — (Hot standby mode). В режиме горячей замены активный сервер отвечает за предоставление IP-адресов и параметров конфигурации всем клиентам в области или подсети. Дополнительный сервер принимает эту ответственность на себя в случае, если основной сервер становится недоступным. Сервер является основным или дополнительным в контексте подсети. Например, сервер, имеющий роль основного сервера для некоторой подсети, может быть дополнительным сервером для другой подсети.
  2. Режим балансировки нагрузки — (Load balance mode). При использовании режима балансировки нагрузки (используется по умолчанию) два сервера одновременно предоставляют IP-адреса и сетевые параметры клиентам подсети. Запросы клиентов распределяются между двумя серверами. Каждый DHCP сервер при получении запроса клиента вычисляет хэш MAC-адреса клиента, используя алгоритм хэширования. Каждый сервер получает значение хэша в диапазоне от 1 до 256. Если распределение нагрузки между узлами выставлено в 50:50, то клиентский запрос, содержащий MAC-адрес хэш которого будет в интервале от 1 до 128 будет обработан первым сервером, если хэш будет в интервале от 129 до 256, то запрос будет обрабатываться вторым сервером.

Подробнее, с экспериментами, можно почитать тут: http://www.blogss.ru/configure-dhcp-failover-server-2012

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

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s