Option 82 windows server 2012 r2

Здравствуйте, требуется настроить DHCP сервер на работу с 82 опцией, релэй делают D-link 3200. Поглядел курсы по DHCP, погуглил и ничего про настройку майкрософтовского DHCP c 82 опцией не нашёл. Да есть инфа по настройке, когда в качестве релэя выступает виндовые сервера, но это не то.
  • Remove From My Forums
  • Вопрос

  • Здравствуйте, требуется настроить DHCP сервер на работу с 82 опцией, релэй делают D-link 3200. Поглядел курсы по DHCP, погуглил и ничего про настройку майкрософтовского DHCP c 82 опцией не нашёл. Да есть инфа по настройке, когда в качестве релэя выступает
    виндовые сервера, но это не то. 

    Вопрос собственно такой:

    1. Умеет ли Server 2012R2 работать с информацией присылаемой в 82 опции?

    2. Если нет, тогда какой сервер можете порекомендовать, кроме линуксовых (там всё понятно)

Ответы

    • Помечено в качестве ответа

      17 апреля 2015 г. 16:32

I am trying to figure out an issue with DHCP Relay in my network. The L3 switches are Juniper EX4300s and the server is 2012 R2. The main issue is, when a wireless client (already connected to an AP) changes location associates to an AP on a different subnet, the client sends a DHCP Request to the server, and the server replies with a NAK, like it should. That NAK does not reach the client and is dropped by the switch, causing the client to repeatedly send Requests until it times out.

I have been working with Juniper support on this for a while and they have have come back with the following:
«The DHCP sever should return the option 82 attribute in the NAK message, but it doesn’t do this. When this option is not available, the dhcp relay agent is not able to find the client in the table entry, and will not forward the message…

focus on packet 261 which is the first NAK from the server to the client. You will notice that the NAK packet does not contain option 82. Can you please get this looked at from the server.»

I never configured anything special for the EX4200s that were replaced by the EX4300s a few weeks ago, but in the packet capture, I do see the switches inserted option 82. If this is a requirement of the switches, how do I configure Windows Server to support it?

Сервис, выдающий 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_MACHINESYSTEMCurrentControlSetServicesTcpipParameters и поставить ему значение 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) и передачи большого количества разной информации клиенту. Достигается это за счет менее тривиальной процедуры получения адреса. Если в старых протоколах схема была простая, вида запрос-ответ, то теперь схема следующая:

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

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

Подробнее про схему взаимодействия сервера и клиента и про структуру запросов и ответов можно почитать, например, в материале «Структура, формат и назначение DHCP пакетов».

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

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

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

Конкретных реализаций довольно много, но, например, на 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 под спойлером.

Настройка MikroTik, option 15

#Добавляем опцию 15. содержимое — сконвертированный в HEX суффикс.

/ip dhcp-server option

add code=15 name=dns-suffix value=0x57687920616c6c207468697320736869743f

#создаем набор опций

/ip dhcp-server option sets

add name=dns option=dns-suffix

#Добавляем опцию к DHCP-серверу для клиентов.

/ip dhcp-server network

set [find comment="wi-fi client dhcp"] dhcp-option-set=dns

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

Настройка MikroTik, option 6

#настройка опций, обратите внимание, что ip экранирован одинарными кавычками

/ip dhcp-server option

add code=6 name=google value="'8.8.8.8'"

add code=6 name=cloudflare value="'1.1.1.1'"

#настройка клиентов

/ip dhcp-server lease

add address=10.0.0.2 dhcp-option=google mac-address=11:11:11:11:11:11 server=dhcp

add address=10.0.0.3 dhcp-option=cloudflare mac-address=22:22:22:22:22:22 server=dhcp

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

/ip dhcp-server option

add name="option66" code=66 value="s'192.168.88.1'"

add name="option67" code=67 value="'pxelinux.0'"

/ip dhcp-server option sets

add name="set-pxe" options=option66,option67

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

Настройка маршрутов

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

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

/ip dhcp-server option

add code=121 name=classless value=0x0A0000c0a8580200c0a85801

Подробнее можно прочитать в статье «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 производится в настройках бриджа:

#Включаем dhcp-snooping и option 82

/interface bridge

add name=bridge

set [find where name="bridge"] dhcp-snooping=yes add-dhcp-option82=yes

#ставим настраиваем доверенный порт

/interface bridge port

add bridge=bridge interface=ether1

add bridge=bridge interface=ether2 trusted=yes

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

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

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

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

К другим методам защиты можно отнести Port Security («привязка» определенного MAC-адреса к порту маршрутизатора, при обнаружении трафика с других адресов порт будет блокироваться), Анализ трафика на количество DHCP-запросов и ответов или ограничение их количества, ну и, конечно, различные системы IPSIDS.

Если говорить не только о защите сети, но и о надежности, то не лишним будет упомянуть и про возможности отказоустойчивого 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

Введение

В предыдущей статье, мы обсудили вопросы стабильной работы DHCP на базе Windows Server 2012. В статье рассказывалось о способах достижения бесперебойной работы DHCP серверов и обновленном cmd интерфейсе управления DHCP PowerShell. В данной статье, мы коснемся еще одной особенности DHCP сервера на базе Windows Server 2012 – политик DHCP (DHCP Policies). Данная функция также известна как назначение IP-адреса, основанное на политике DHCP, и присвоение параметров или просто назначение на основе политик (Policy Based Assignment — PBA).

Давайте разберем некоторые случаи, с которыми может столкнуться администратор:

— Сеть, под вашим управлением, имеет некоторый разброс по типу подключенных устройств – персональные компьютеры, принтеры, IP-телефоны и т.д. Вам нужно сделать так, чтобы различным типам устройств, подключенных к сети, присваивались IP-адреса в определенном, выделенном им, спектре. К примеру, IP-телефонам будут присвоены IP-адреса в спектре от 10.10.10.10 до 10.10.10.50 (в рамках 10.10.10.0/24 подсети), так же у них будет другой TFTP сервер со своим файлом настроек.

— В подсети, в которой присутствуют проводные и мобильные компьютеры, вы можете задать сроки закрепления IP-адреса (short lease) за мобильными ПК отдельно (например, 4 часа) и также отдельно назначить более длительные сроки закрепления IP-адреса (long lease) проводных ПК (например, 4 дня).

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

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

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

Администратор, работающий на базе Windows Server 2008 R2, настраивает диапазона IP-адресов и параметры для рабочих областей/подсетей. Всем устройствам, подключенным к конкретной рабочей области, присваиваются IP-адрес и настройки для данной области из списка значений для данной, конкретной, рабочей области. Если администратору DHCP сервера необходимо разрешить дополнительно распределение IP-адресов для различных типов устройств и/или клиентов сети, как того требуют вышеупомянутые случаи, то для администратора нет пути решения данной проблемы, если не использовать систему индивидуальных резервирований IP-адресов устройствам. Такое решение данной проблемы является не простым и достаточно трудоемким. Соответственно, присваивать IP-адреса и настройки было возможно только в пределах выделенной области. Используя политики DHCP на базе Windows Server 2012, администратор может значительно быстрее и легче решить поставленные задачи присвоения настроек и IP-адресов.

Что из себя представляют политики DHCP?

Используя Windows Server 2012 как базу для DHCP сервера, вы можете создавать политики. Условия и настройки – являются основными частями политик DHCP сервера.

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

Условия

In Windows Server 2012, you can specify five different criteria (a fixed set) based on which one can segregate or group clients:

На базе Windows Server 2012 можно выделить пять основных (фиксированных) критериев, позволяющих группировать сетевые устройства:

  • MAC Address
  • Vendor Class
  • User Class
  • Client Identifier
  • Relay Agent Information (так же вспомогательные параметры – удаленный идентификатор (remote id) идентификатор канала (circuit id) и идентификатор абонента (subscriber id))

Настройка производится путем выбора параметров equal и not equal (равно и не равно). Так же можно использовать скользящее значение wildcard с настройкой MAC адресов, Vendor Class, User Class и Client identifier для частичного совпадения. Совмещая equal и not equal значения со значениями wildcard можно добиться выполнения условий starts with или does not start with

Вы так же можете задавать несколько условий в политике DHCP. Эти условия могут быть OR или AND. К примеру, Vendor Class Equals Cisco IP Phone 7940“- это условие, где Cisco IP Phone 7940 значение Vendor Class для устройства Cisco IP Phone version 7940. Так же, User Class Equals LabComputersANDMAC Address Not Equals 00-11-22*” являются группой, состоящей из двух условий. Каждая политика DHCP создается при помощи одного условия либо совокупностью условий, как показано выше. Предполагается, что каждое устройство, запрашивающее у сервера настройки и IP-адрес, отвечает всем совокупностям условий, прописанных в политике DHCP сервера.

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

Настройки

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

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

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

В политике DHCP, параметры опции и параметры диапазона IP-адресов – взаимоисключающие, т.е. не могут быть применены одновременно.

Использование нескольких политик

Вы можете настроить несколько политик на сервере DHCP. Каждая политика имеет настроенный администратором порядок обработки данных. Когда устройство посылает запрос серверу, DHCP сервер сравнивает параметры устройства с имеющимися политиками, в установленном порядке, т.е. первой группой для сравнения будет группа политик №1.  Политики уровня областей, в первую очередь обрабатываются DHCP сервером и лишь после – общими политиками.  

В случае, когда устройство удовлетворяет нескольким политикам, оно получит настройки в общем виде для каждой политики, которой оно удовлетворяет. Например, если устройство удовлетворяет политике-1, которая содержит настройки для политики-3 (роутер) и политике-2, содержащей настройки для политики-6 (DNS-сервер), то DHCP сервер ответит значениями политики-3 (роутер) и значением политики-6(DNS-сервер). Тем не менее, если в приведенном примере, политике-1 будут соответствовать опции DNS-сервера, то устройство получит настройки (DNS-сервера и роутера) в соответствии с политикой-1 в том случае, если политика-1 стоит выше политики-2 в порядке обработке данных, т.е. значение данных DNS-сервера политики-2 будет заменено.

Политику не требует полной настройки всех параметров, если Вы уже настроили политики областей сервера. В случае, когда устройство запросит опции, которые не прописаны в общей политике, но присутствуют в политике области, опции политики области будут переданы сервером устройству.

Примеры применения DHCP политик

Существует несколько способов, как разделить устройства по типам. Одним из способов является использование vendor class/client identifier. Данная функция, посланная вариантом 60, помогает DHCP серверу идентифицировать тип устройства. Другим способом идентификации является использование префикса MAC-адреса. Первые три байта MAC-адреса называются OUI и идентифицируют модель или производителя устройства.

Путем ввода DHCP политик, основанных на Vendor Class или префиксах MAC-адреса, Вы можете распределять диапазоны присвоения IP-адресов, выделяя под определенные группы устройств диапазоны адресов в выделенных областях. Вы так же можете назначать таким устройствам групповые политики, основанные на том же принципе.

После настройки диапазонов присвоения IP-адресов согласно типу устройства, вы можете настроить роутер так, чтобы контролировать трафик определенного диапазона IP-адресов, путем настройки маршрута в политике DHCP (default gateway – option id 3, classless static routes – option id 121). В результате чего Вы можете контролировать трафик групп устройств (смартфонов, планшетов т.д.).

Допустим, Вам необходимо настроить более короткие сроки присвоения IP-адреса для Wi-Fi устройств и более длительные сроки для проводных устройств. Точки доступа (Access Points) являются ретрансляторами DHCP, либо подключены к ним. Этот параметр настраивается в Option 82 – меню ретранслятора DHCP. Настройка ретранслятора позволит определять тип устройства. Вы можете создать политики, которые опираясь на тип устройства, будут уменьшать сроки, на которые присваивается IP-адрес для Wi-Fi устройств. Таким образом, проводные устройства будут по-прежнему иметь более длительный период присвоения IP-адреса, в соответствии с настройками политики области.

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

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

В заключении хочется сказать, что DHCP политики на базе Windows Server 2012 позволяют группировать различные устройства и предоставлять им необходимые сетевые настройки. Мы надеемся, что Вы найдете достойное применение политикам DHCP для Ваших нужд и потребностей!

Наши клиенты

This article provides in-depth analysis of DHCP Option 82 (DHCP Relay Agent) which is one of the +180 DHCP Options available to the DHCP protocol and used by the Bootstrap Protocol (BOOTP) used for allowing  diskless client machines to discover and obtain their IP address. We’ll show you how DHCP Option 82 is used when implementing DHCP Snooping, the structure and content of DHCP Option 82, how and where it’s injected and removed from DHCP messages plus much more. You’ll can also download our DHCP/BOOTP Options Excel file and Wireshark packet captures of DHCP packets with Option 82 used in this article to help further understand all topics covered.

Let’s take a look at the list of topics covered in this article:

  • The DHCP Options field within a DHCP Packet
  • DHCP Option 82 (Agent Relay) Message Format, Structure & Fields
  • Detailed Analysis of DHCP Option 82 – SubOption 1 & SubOption2
  • Purpose & Usage Examples of DHCP Option 82 (Agent Relay)
  • DHCP Snooping & Option 82 (Agent Relay) Considerations. Switches & Trusted – Untrusted Ports
  • Summary

It’s highly recommend to read through our DHCP Snooping – DHCP Attack Mitigation article which is a foundation article.

The ‘DHCP Options’ Field within a DHCP Packet

The DHCP Options field is included inside every DHCP packet and is critical for the correct operation of the DHCP/BOOTP protocol.  You’d be surprised to know that there are almost 200 different DHCP Options available and there are more added as new features are introduced in the protocol.

The material used in this article such as wireshark DHCP Options 82 packet captures and DHCP/BOOTP Options excel file are freely available to download from our Article Attachments section.

The diagram below shows the structure of a DHCP packet and highlights the position of the DHCP Options field.

DHCP Packet-Diagram

It is important to understand that the above DHCP packet is the data payload within an Ethernet frame using UDP as the transport protocol.

The below screenshot was taken from a packet analyzer and shows an Ethernet frame with the DHCP data payload expanded:

dhcp packet capture with dhcp options

We’ve highlighted sections of the DHCP protocol using the same colours as our previous diagram to help the correlation process. Every field shown in our diagram maps directly to the fields of the captured DHCP packet.

The area marked in green is the section where the DHCP Options field is located. In our captured packet there are a total of 8 DHCP Options used, among them is also Option 82 (Agent Information Option).

DHCP Option 82 (Agent Relay) Message Format, Structure & Fields

The DHCP Option 82, aka Agent Relay Information Option or Agent Information Option, was originally created by RFC 3046 to allow the DHCP relay agent (e.g switch, router, firewall or server) to identify itself and the DHCP client that sent the original DHCP message.

The DHCP Option 82 is inserted and removed by the DHCP Agent Relay (e.g switch) as shown in the diagram below:

 insertion of dhcp option 82 by relay agent

While some DHCP servers might not support the Option 82 they are still required to copy the Option 82 value received from the DHCP client and include it in all replies back to the client. We’ll discuss the Option 82 insertion and removal process in the next section.

As we saw earlier, the DHCP Options field is positioned at the end of the DHCP packet and always contains multiple DHCP options. This of course means the DHCP Option field varies in length according to the number of options used:

DHCP Packet-Diagram

Let’s now take a closer look into the DHCP Options field at the end of the packet. This can contain multiple options as shown below in our packet analyzer screenshot:

dhcp packet capture with dhcp options

 Each option expands to include its own parameters however we will focus on Option 82 shown below:

DHCP Option Field - Option 82 Agent Information Option Analysis

Due to space restrictions we are only depicting the first (Message Type), second last (Option 82) and last (End) option.

Remember there are over 200 different DHCP options (Code options) available and multiple used in just a single DHCP packet so it can get very challenging analyzing only one DHCP packet!

Looking at the above diagram we can appreciate that the structure of each DHCP Option varies depending on its purpose and information contained however there is a common set of fields used by all except the last (Option 255 – End):

  • Code (light green box). Identifies the DHCP Option type. Examples are Code=82 (DHCP Agent Information), Code=53 (DHCP Message Type: Discover, Offer, Request or Ack), etc.
  • Length (green box). This is the DHCP option type length in bytes. For DHCP Option 82, this includes the combined the length of SubOption1 + SubOption2.
  • Value (blue box). This contains value or data related to the DHCP Option type. DHCP Option 82 contains two SubOptions, each with its own unique value as shown above.

It’s probably worth mentioning at this point that RFC 3046 states that DHCP Option 82 should always be the last DHCP Option before the END option (Code 255).

The material used in this article such as wireshark DHCP Options 82 packet captures and DHCP/BOOTP Options excel file are freely available to download from our Article Attachments section.

Detailed Analysis of DHCP Option 82 – SubOption 1 & SubOption 2

Before we begin analyzing the two SubOptions we need to understand that DHCP Option 82 is inserted by the Agent Relay (switch) as the client’s DHCP packets traverse it.

In this scenario the switch has DHCP Snooping enabled and the SubOption parameters configured accordingly. In the example below, switch DC-SW1 has DHCP Snooping plus DHCP Options 82 enabled and configured:

Diagram with WAN and DHCP discover and options 82

As the client’s DHCP Discover packet enters switch DC-SW1 via port Gi0/5 the switch will automatically add the DHCP Option 82 and continue forwarding the packet to the DHCP server.

Below is the breakdown of DHCP Option 82 added inside the DHCP Options field:

DHCP Option 82 Analysis - SubOption Values

The DHCP Option 82 in this example has the following configured:

  • SubOption 1 (Agent Circuit ID) = Gi0/5. Used to identify the individual switchport.
  • SubOption 2 (Agent Remote ID) = DC-SW1. The Hostname or description of the DHCP Relay Agent

Here is what a DHCP Option 82 packet capture looks like in network protocol analyzer:

Wireshark screenshot with DHCP  Suboptions 82

The top section highlights the two SubOptions along with their parameters and values which are all in HEX while the lower right section shows these values in ASCII – making them easy to decipher.

Before we complete this section let’s take a closer look at the fields each SubOption consists of:

DHCP Option 82 Analysis - SubOption Values

  • SubOption Number. This identifies the first (Agent Circuit ID) or second (Agent Remote ID) SubOption.
  • Length. The length of the specific SubOption in bytes.
  • Value. The specific SubOption value.

This completed the protocol analysis of DHCP Option 82.  Next up, we’ll take a look at examples where DHCP Option 82 plays a significant role in the operation of the network infrastructure.

Purpose & Usage Examples of DHCP Option 82 (Agent Relay)

Most modern DHCP Servers, e.g Windows Server 2012 & Windows Server 2016, support DHCP Option 82 therefore allowing organizations to create DHCP policies according to the information contained inside the DHCP Option 82 field. For example DHCP Pools or IP address ranges can be reserved and assigned to DHCP clients connecting to specific switches within the network or specific ports on those switches.

Large metropolitan networks, for example ISPs or university campuses make extensive use of the DHCP Option 82 as it provides them with the capability of managing and maintaining DHCP network services from a centralized location without the need of dispersed DHCP servers at each site or campus.

DHCP client requests are directed to the main datacenter with the help of local DHCP relay agents (switches, routers, etc) configured to inject the DHCP Option 82 inside the client’s original DHCP packet. This packet is then forwarded to the DHCP Servers with all the necessary information that will allow them to identify the site, network switch and port to which the client is connected to. DHCP server policies then come into effect and ensure each site is served from the correct DHCP pool and clients are assigned the correct IP address.Diagram with WAN and DHCP discover and options 82

The diagram above shows how a client’s DHCP Discover packet is modified by the local DHCP Relay Agent (DC-SW1) to include the DHCP Option 82 message allowing the DHCP server at the Core Network identify the campus, switch and port to which the client sending the request is connected to.

As previously noted, the DHCP server is required to maintain the DHCP Option 82 information when replying to the client. This is also shown in the diagram below:

DHCP Snooping Option 82 removal by DHCP Relay Agent

The DHCP Relay Agent (DC-SW1) will receive the DHCP server’s reply and remove the Option 82 information before forwarding it out to the DHCP client.

Many sources on the internet incorrectly mention that the DHCP Relay Agent Option (Option 82) is automatically inserted by a DHCP Snooping enabled switch. RFC 3046 (Section 2.1 – Agent Operation) specifically notes that this function should be disabled by default.

DHCP Snooping & Option 82 (Relay Agent) Considerations. Switches & Trusted — Untrusted Ports

We already know that with DHCP Snooping enabled and Option 82 configured a Cisco Catalyst or Nexus switch, it will insert the Option 82 field into the client’s DHCP message as shown in the below diagram:

DHCP Snooping Option 82 - Switches Trusted and Untrusted Ports

As shown in the example above, the DHCP client’s DHCP Discover packet is received by the switch on interface Gi0/5 which is by default an untrusted port. The switch, which acts as a DHCP relay agent, immediately inserts the DHCP Option 82 in the original DHCP Discover packet, updates the frame as needed (MAC addresses, destination IP, CRC) then sends it out Gi0/1, a trusted port, to the DHCP Server.

As a general rule of thumb, any switch interface expected to receive DHCP packets containing DHCP Option 82 must be configured as a Trusted interface otherwise the DHCP packet will be discarded by the switch:

DHCP Snooping Option 82 via Switch trusted & Untrusted interfaces

In the case where there are multiple switches with involved in the path to reach the DHCP server the same rule applies to ensure DHCP packets with Option 82 can traverse each hop:

dhcp snooping multiple switches options 82 - Trusted & Untrusted interfaces

Interfaces Gi0/1 from SW1 and Gi0/4, Gi0/2 from SW2 will always receive DHCP packets with Option 82 therefore these ports must be configured as trusted ports.

Summary

This article provided in-depth analysis of the DHCP Options field and more specifically the DHCP Option 82. We examined the DHCP Option 82 message format, structure and fields while also taking a close look at SubOptions 1 & 2 and explaining their usage. Finally we talked about the purpose and real-usage examples of DHCP Option 82 and showed how switchports should be configured on DHCP Snooping enabled switches with DHCP Option 82 configured.

Related Articles

  • Complete Guide to DHCP Snooping, Snooping Database & mitigating DHCP Attacks
  • Basic & Advanced Catalyst Layer 3 Switch Configuration
  • Understanding & Designing VLAN Networks
  • Ethernet II Frame Formats
  • MAC Address

Back to Cisco Switches Section

Сценарий: компьютеры подключаются к коммутаторам 3-го уровня как DHCP клиенты, коммутаторы работают как DHCP Relay Agent и отправляют запросы на DHCP серверы Windows Server 2012/R2.

Задача: предоставить обслуживающему персоналу информацию о том, на каком порту какого коммутатора подключен конкретный компьютер

Решение: настроить на коммутаторах DHCP Snooping, получить на DHCP серверах опцию 82, расшифровать

В этой статье рассмотрим только расшифровку опции 82, но не решение задачи в целом. Настройка DHCP Snooping также вне темы этой статьи. Дополнительную информацию по использованию опции на серверах Windows можно найти в статье DHCP policies based on Relay Agent Information Option (option 82), DHCP Snooping and IP Source Guard.

Сервер Windows Server 2012/R2 имеет в журналах DHCP сервиса поле RelayAgentInformation. (Журналы аудита DHCP нужно включить.) Это поле содержит информацию от устройства выполняющего функции DHCP Relay Agent. Официально это называется Relay Agent Information Option — DHCP Option 82. Внутри себя эта опция может включать несколько подопций (sub option). Официальные документы описывающие форматы опции 82 и её подопций:

  1. DHCP Relay Agent (RA) Information Option [Option 82] — RFC 3046
  2. Circuit ID, RA Sub-Option [Sub Option ID — 1] — RFC 3046
  3. Remote ID, RA Sub-Option [Remote Option ID — 2] — RFC 3046
  4. Subscriber ID, RA Sub-Option [Sub Option ID — 6] — RFC 3993
  5. Server Identifier Override Option, RA Sub-Option [Sub Option ID — 11] — RFC 5107

Нам важны фактически две подопции:

Circuit ID – это описание порта подключения

Remote ID – это имя устройства, где выполняется подключение

(Остальные опции могут отправляться DHCP клиентом, но в нашей задаче они не важны.)

В поле RelayAgentInformation журнала аудита сервер пишет в шестнадцатеричном виде только сами подопции. Формат подопций:

SubOpt Len     Sub-option Value

+——+——+——+——+——+——+—…-+——+

| 1   |   N | s1 | s2 | s3 | s4 |     | sN |

+——+——+——+——+——+——+—…-+——+

SubOpt Len     Sub-option Value

+——+——+——+——+——+——+—…-+——+

| 2   |   N | i1 | i2 | i3 | i4 |     | iN |

+——+——+——+——+——+——+—…-+——+

Ниже пример разбора поля RelayAgentInformation.

# Строка значения взята из журнала аудита DHCP

$RelayAgentInformation="0x0106000400660222021401125546412D434D2D4153573130312D34353036"

#

$RelayAgentInformation=$RelayAgentInformation.Substring(2)

#$RelayAgentInformation="0106000400660222021401125546412D434D2D4153573130312D34353036"

# Suboption Num=01 Len=0x06=6

#

$AgentCircuitIDlen = [CONVERT]::toint16($RelayAgentInformation.Substring(2,2),16) *2

$AgentCircuitID = $RelayAgentInformation.Substring( 4, $AgentCircuitIDlen )

#$AgentCircuitID ="000400660222"

# SubOption Type=0 Len=0x04=4

#

$AgentCircuitIDlen00 = [CONVERT]::toint16($AgentCircuitID.Substring(2,2),16) *2

$AgentCircuitID00 = $AgentCircuitID.Substring( 4, $AgentCircuitIDlen00 )

#$AgentCircuitID00 ="00660222"

#

$AgentCircuitIDvlan = [CONVERT]::toint16($AgentCircuitID00.Substring(0,4),16)

$AgentCircuitIDslot = [CONVERT]::toint16($AgentCircuitID00.Substring(4,2),16)

$AgentCircuitIDport = [CONVERT]::toint16($AgentCircuitID00.Substring(6,2),16)

$RelayAgentInformation=$RelayAgentInformation.Substring(4 + $AgentCircuitIDlen)

#$AgentRemoteID ="021401125546412D434D2D4153573130312D34353036"

# Suboption Num=02 Len=0x14=20

#

#$AgentRemoteID=$RelayAgentInformation.Substring(4 + $AgentCircuitIDlen)

$AgentRemoteIDlen = [CONVERT]::toint16($RelayAgentInformation.Substring(2,2),16) *2

$AgentRemoteID = $RelayAgentInformation.Substring( 4, $AgentRemoteIDlen )

#$AgentRemoteID ="01125546412D434D2D4153573130312D34353036"

# SubOption Type=01 Len=0x12=18

#

$AgentRemoteIDlen01 = [CONVERT]::toint16($AgentRemoteID.Substring(2,2),16) *2

$AgentRemoteID = $AgentRemoteID.Substring( 4, $AgentRemoteIDlen01 )

#$AgentRemoteID ="5546412D434D2D4153573130312D34353036"

$AgentRemoteID =($AgentRemoteID -split "(..)" | ? {$_} | FOREACH { [CHAR]([CONVERT]::toint16($_,16)) } ) -join ""

$RelayAgentInformation=$RelayAgentInformation.Substring(4 + $AgentRemoteIDlen)

$AgentCircuitIDvlan

$AgentCircuitIDslot

$AgentCircuitIDport

$AgentRemoteID

Filed under: Powershell, Windows | Tagged: Windows, Windows Server 2012, Windows Server 2012 R2 |

Материал из Xgu.ru

Перейти к: навигация, поиск

Автор: Наташа Самойленко

Опция 82 DHCP (DHCP option 82) — опция протокола DHCP, использующаяся
для того чтобы проинформировать DHCP-сервер о том, от какого DHCP-ретранслятора и через какой его порт был получен запрос. Применяется при решении задачи привязки IP-адреса к порту коммутатора
и для защиты от атак с использованием протокола DHCP (DHCP snooping).

Содержание

  • 1 Задача
  • 2 Протокол DHCP
    • 2.1 Option 82
  • 3 Инсталляция и настройка DHCP сервера ISC-DHCP
    • 3.1 Установка DHCP-сервера с поддержкой опции 82
      • 3.1.1 Сборка с включённой директивой USE_SOCKETS
    • 3.2 Настройка DHCP-сервера
  • 4 Написание правил для соответствия адреса порту коммутатора
    • 4.1 Используемые операторы
    • 4.2 Просмотр информации на коммутаторе
    • 4.3 Примеры правил
    • 4.4 Пример конфигурационного файла DHCP-сервера
  • 5 Настройка коммутатора HP ProCurve для работы DHCP-ретранслятором
    • 5.1 Просмотр настроек на коммутаторе
    • 5.2 Пример конфигурации коммутатора Procurve
  • 6 Настройка коммутатора D-LINK для работы DHCP-ретранслятором
  • 7 Настройка коммутатора Huawei для работы DHCP-ретранслятором
  • 8 Настройка коммутатора Zyxel для работы DHCP-ретранслятором
  • 9 Дополнительная информация
  • 10 Материалы по DHCP на Xgu.ru

[править] Задача

Протокол динамического конфигурирования DHCP очень удобен — настройка стека TCP/IP клиентских
машин не требует никакого внимания со стороны администратора, всё происходит само собой.
С другой стороны, в общем случае адреса назначаются случайным образом, и заранее неизвестно какой хост
получит какой адрес. Если нужно сохранить удобство использования DHCP, но при этом сделать так, чтобы адреса были
чётко закреплены за каждым компьютером, используется так называемая привязка к MAC-адресу: DHCP-сервер имеет таблицу соответствия MAC-адресов IP-адресам, и назначает IP-адреса в соответствии с этой таблицей.
Минус этого решения — необходимость отслеживания MAC-адресов и сопровождения таблицы соответствия.

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

Решить эти задачи позволяет опция 82 протокола DHCP.

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

[править] Протокол DHCP

DHCP (Dynamic Host Configuration Protocol) — один из важнейших протоколов
в стеке протоколов TCP/IP, предназначенный для назначения хостам
различных параметров необходимых для работы в сети,
в частности, их IP-адресов, адреса шлюза по умолчанию, IP-адресов
DNS-серверов и множества других.

Во взаимодействии по протоколу DHCP принимают участие две или три стороны:

  • DHCP-клиент — тот, кто хочет получить параметры настройки TCP/IP;
  • DHCP-сервер — тот, кто выдаёт эти параметры;
  • DHCP-ретранслятор (relay agent) — вспомогательный участник, который может играть роль посредника между клиентом и сервером. Он используется в тех случаях, когда у клиента нет возможности обратиться к серверу напрямую, в частности, в том случае, если они находятся в разных широковещательных доменах. DHCP-ретранслятор обрабатывает стандартный широковещательный DHCP-запрос и перенаправляет его на DHCP-сервер в виде целенаправленного (unicast) пакета, а полученный от DHCP-сервера ответ, в свою очередь, перенаправляет DHCP-клиенту.

Как правило, DHCP-сервер выделяет IP-адреса (и прочие параметры TCP/IP)
одним из двух способов:

  • Случайным образом из предопределённого пула (в том случае, если клиенту ранее уже выдавался какой-то адрес, он может попробовать получить его вновь);
  • Жёстко зафиксированным образом, исходя из MAC-адреса клиента.

[править] Option 82

Опция 82 состоит из двух подопций:

Agent Circuit ID — содержит информацию о том, с какого порта пришел запрос на DHCP-ретранслятор.

Agent Remote ID — идентификатор самого DHCP-ретранслятора (который задается при настройке, можно например использовать MAC-адрес коммутатора или его описание, любое удобное значение).

Опция 82 в запросе DHCP:

Wireshark opt 82.jpeg

DHCP-серверы, поддерживающие опцию 82:

  • ISC DHCP Server;
  • Cisco Network Registrar (CNR);
  • Infoblox;
  • Lucent QIP;
  • Weird Solutions.

Несмотря на то, что это нигде не указано явно,
вероятнее всего, Microsoft Windows 2003 Server
опцию 82 не поддерживает. (Однако на личном опыте проверено что работает, надо только добавить эту опцию)

[править] Инсталляция и настройка DHCP сервера ISC-DHCP

Будем использовать dhcp-сервер ISC-DHCP (v3).
ISC DHCP Server — наиболее распространнённый DHCP-сервер, из использующихся в UNIX/Linux-системах.
Для нас сейчас важно и то, что это один из серверов, умеющих распознавать опцию 82.

Будем предполагать, что инсталляция и настройка сервера
выполняется в Debian GNU/Linux. Пользователи других систем
должны учесть, что процедура инсталляции
и местоположение конфигурационных файлов могут несколько отличаться.

[править] Установка DHCP-сервера с поддержкой опции 82

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

%# apt-get install dhcp3-server

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

[править] Сборка с включённой директивой USE_SOCKETS

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

   #define USE_SOCKETS 

и указать в конфигурационном файле local-address.

Скачиваем исходники DHCP-сервера:

%# apt-get source dhcp3-server

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

%# apt-get build-dep dhcp3-server

Теперь необходимо в файле site.h раскомментировать директиву #define USE_SOCKETS:

%# vi dhcp3-3.0.6.dfsg/includes/site.h

Перейти в каталог dhcp3-3.0.6.dfsg:

%# cd dhcp3-3.0.6.dfsg/

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

%$ dpkg-buildpackage -rfakeroot -b

или, если сборка производится root’ом:

%# dpkg-buildpackage -b

После сборки пакеты должны быть установлены в системе
(инсталлируем только common и server, так как нам не нужен DHCP-ретранслятор и DHCP-клиент):

%# dpkg -i dhcp3-common_3.0.6.dfsg-1_i386.deb dhcp3-server_3.0.6.dfsg-1_i386.deb 

[править] Настройка DHCP-сервера

Dhcp 82.jpeg

Сразу же после инсталляции пакета,
сервер не заработает — сначала необходимо
отредактировать его конфигурационный файл /etc/dhcp3/dhcpd.conf.

# Укажите адрес, на который DHCP-сервер ожидает получать запросы (адрес DHCP-сервера)

local-address 192.168.2.9;

# Укажите подсеть интерфейса, на котором запущен DHCP-сервер

subnet 192.168.2.0 netmask 255.255.255.0 {
}

# Если сервер получит запрос, содержащий опцию 82, он сгенерирует сообщение в системный журнал
# 

if exists agent.circuit-id
{
 log ( info, concat( " Lease for ", 
                     binary-to-ascii (10, 8, ".", leased-address),
                     " Switch port: ", 
                     binary-to-ascii (10, 8, ".", option agent.circuit-id), 
                     " Switch MAC: ",
                     binary-to-ascii(16, 8, ".", option agent.remote-id)));
}

# Запросы, пришедшие с 5го порта коммутатора: 
class "port-5"
{
 match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5";
}

# Адрес для 5го порта: 
pool {
  range 192.168.1.55;
  allow members of "port-5";
}

Интерфейс, на котором будет работать DHCP-сервер,
передается ему в качестве аргумента при вызове.

В Debian GNU/Linux аргументы и ключи вызова программ
принято указывать в соответствующих файлах в каталоге /etc/default,
в частности, конфигурационный файл, в котором находятся опции для нашего сервера,
называется /etc/default/dhcp3-server.

При условии, что сервер будет слушать запросы на интерфейсе eth0,
файл будет выглядеть так:

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

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

Теперь можно запускать сервер:

%# /etc/init.d/dhcp3-server start

После сборки сервера с #define USE_SOCKETS:

udp     0   0 192.168.2.9:67    0.0.0.0:*   863/dhcpd3
udp     0   0 192.168.2.9:67    0.0.0.0:*   863/dhcpd3

[править] Написание правил для соответствия адреса порту коммутатора

[править] Используемые операторы

suffix (data-expr, length)

Оператор suffix анализирует выражение data-expr и возвращает последние байты в указанном количестве.
length — это числовое значение.
Если data-expr или length равны нулю, то результат также будет равен 0.
Если длина указанная в length больше чем сами данные, то suffix возвращает все данные.

substring (data-expr, offset, length)

Оператор substring анализирует данные и возвращает строку данных, которая начинается от указанного значения offset и имеет длину, равную указанной в length.
Offset и length — числовые выражения.
Если data-expr, offset или length равны нулю, то результат также равен 0.
Если значение offset больше или равно длине data-expr,
то будет возвращена нулевая строка.
Если длина length больше чем длина данных оставшихся после offset, тогда возвращаемая строка будет содержать все данные от значения offset до конца.

binary-to-ascii (numeric-expr1, numeric-expr2, data-expr1, data-expr2)

Преобразует результат вычисления data-expr2 в текстовую строку,
содержащую по одному числу для каждого элемента результата вычисления data-expr2.
Числа разделены между собой результатом вычисления data-expr1.
Параметр numeric-expr1 указывает основание системы исчисления (от 2 до 16),
в которую должны преобразовываться числа.
Параметр numeric-expr2 указывает количество битов на каждое число, полученное
в результате преобразования. Оно может быть равно 8, 16 или 32.

Пример:

              concat (binary-to-ascii (10, 8, ".",
                              reverse (1, leased-address)),
                     ".in-addr.arpa.");

Берём адрес leased-address, инвертируем его, а потом делим на
8 битные числа, каждые из которых преобразуем в 10-чную систему счисления.
Полученные числа объединяем между собой через «.» и присоединяем
«.in-addr.arpa.» справа.

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

  • man dhcp-eval — описано как создавать такие выражения и описаны другие операторы.

[править] Просмотр информации на коммутаторе

Надо знать, каким образом кодируется номер порта коммутатора, чтобы затем правильно распознавать номера в пришедших запросах.

Например, в коммутаторе ProCurve опция 82 выглядит следующим образом:

Value: 010200030206001560792800
Agent Circuit ID: 0003
Agent Remote ID: 001560792800

В коммутаторах других производителей
она выглядит аналогично.

Для того чтобы увидеть, каким образом кодируются номера портов в коммутаторе Procurve, необходимо выполнить команду:

sw(config)# walkMIB ifname 
ifName.1 = 1
ifName.2 = 2
ifName.3 = 3
ifName.4 = 4
ifName.5 = 5
ifName.6 = 6
ifName.7 = 7
ifName.8 = 8
ifName.9 = 9
ifName.10 = 10
ifName.11 = 11
..............
ifName.47 = 47
ifName.48 = 48
ifName.102 = DEFAULT_VLAN
ifName.103 = VLAN2
ifName.4197 = lo0

Информация о MAC-адресе коммутатора:

sw#  sh system-information 

 Status and Counters - General System Information

  System Name        : sw                                              
  System Contact     :                                                 
  System Location    :                                                 

  MAC Age Time (sec) : 300    

  Time Zone          : 0    
  Daylight Time Rule : None                      


  Firmware revision  : M.10.06          Base MAC Addr      : 001560-792800
  ROM Version        : I.08.11          Serial Number      : SG602SG00C  

  Up Time            : 2 days           Memory   - Total   : 94,690,424  
  CPU Util (%)       : 6                           Free    : 80,214,320  

  IP Mgmt  - Pkts Rx : 10,267           Packet   - Total   : 1998        
             Pkts Tx : 7874             Buffers    Free    : 1483        
                                                   Lowest  : 1473        
                                                   Missed  : 0           

На коммутаторах D-Link DES-35xx и 3028 выглядит так.

DES-3526:admin#show dhcp_relay
Command: show dhcp_relay

DHCP/BOOTP Relay Status         : Enabled
DHCP/BOOTP Hops Count Limit     : 16
DHCP/BOOTP Relay Time Threshold : 0
DHCP Relay Agent Information Option 82 State  : Enabled
DHCP Relay Agent Information Option 82 Check  : Disabled
DHCP Relay Agent Information Option 82 Policy : Keep
DHCP Relay Agent Information Option 82 Remote ID : 00-15-E9-3D-A1-20 

[править] Примеры правил

Указываем, что нас интересует последний байт в circuit-id:

suffix( option agent.circuit-id, 1)

Делаем преобразование вырезанного байта из двоичного формата в десятичный и указываем, что запрос попадет под правило класса, если результат преобразования будет равен 5.

Правило для порта 5.

class "port-5"
{
 match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5";
}

pool {
  range 192.168.1.155;
  allow members of "port-5";
}

Аналогично для порта 45:

class "port-45"
{
 match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "45";
}

pool {
  range 192.168.1.45;
  allow members of "port-45";
}

Эти правила могут отличаться при использовании как коммутаторов других производителей,
так и при использовании модульных коммутаторов ProCurve.
Необходимо выяснять каким образом кодируется номер порта.

Если нам необходимо учитывать от какого relay-агента пришел запрос, то можно создать соответствующее правило:

class "relay-1"
{
 match if binary-to-ascii (16, 8, ":", suffix ( option agent.remote-id, 6)) = "0:15:60:79:28:0"; 
 # внимание: преобразование число-текст отрезает не значащие нули слева
}

Icon-caution.gif

Если нужно привязать IP-адреса не к портам коммутатора,
а к самим коммутаторам как таковым,
учитывать порт, с которого пришел DHCP-запрос (Agent Circuit ID), не обязательно, а важно настроить совпадение MAC-адреса или IP-адреса DHCP-ретранслятора (Agent Remote ID) в пришедшей опции 82.

[править] Пример конфигурационного файла DHCP-сервера

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
local-address 192.168.2.9;
if exists agent.circuit-id
{

 log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), 
 " raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id), " AID: ",
 binary-to-ascii(16, 8, ".", option agent.remote-id)));
}
subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.20 192.168.2.40;
        allow unknown-clients;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
    class "port-5" { 
        match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5";
    }
    class "port-3" {
        match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "3";
    }
    class "port-45" {
        match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "45";
    }

    pool {
        range 192.168.1.155;
        allow members of "port-5";
    }
    pool {
        range 192.168.1.133;
        allow members of "port-3";
    }
    pool {
        range 192.168.1.45;
        allow members of "port-45";
    }
}

[править] Настройка коммутатора HP ProCurve для работы DHCP-ретранслятором

  1. Включить DHCP-ретранслятор на коммутаторе (по умолчанию включен)
  2. Включить ip routing
  3. Настроить режим вставки опции 82 (drop, replace, validate)
  4. Настроить ip helper-address
  5. Клиенты и сервер должны быть в разных подсетях

Включение DHCP-ретранслятора на коммутаторе (по умолчанию включен):

sw(config)# dhcp-relay

Включить ip routing (на коммутаторе включается функциональность 3го уровня):

sw(config)# ip routing 

Настроить режим вставки опции 82 (drop, replace, validate):

sw(config)# dhcp-relay option 82 <append [validate] | replace [validate] | drop [validate] | keep>   [ip | mac]

Параметры команды dhcp-relay option 82:

  • append — коммутатор добавит опцию 82 в пришедший DHCP-пакет.
  • replace — коммутатор заменит опцию 82 в пришедшем DHCP-пакете на свои значения.
  • drop — коммутатор отбросит DHCP-пакет, если в нем будет опция 82. Если DHCP-пакет пришел без опции 82, то коммутатор добавит опцию и передаст пакет.
  • keep — для любого полученного DHCP-пакета с существующей опцией 82 не выполнять никаких изменений и отправить пакет в таком же виде как он пришел.
  • [ip | mac] — что используется в опции 82 в качестве Agent Remote ID. По умолчанию используется MAC-адрес. При использовании IP-адреса, в поле Agent Remote ID будет указан IP-адрес VLAN, в котором был получен запрос от DHCP-клиента.

Icon-caution.gif

При одновременной работе DHCP-ретранслятора и DHCP snooping на коммутаторе, необходимо обратить внимание на то, что настройки DHCP snooping, по обработке пакетов с опцией 82, перекрывают настройки DHCP-ретранслятора.

Настройка ip helper-address (ip helper-address задается в VLAN, в котором находится DHCP-клиент.
IP-адрес в этой команде — это адрес DHCP-сервера):

sw(config)# vlan 1
sw(vlan-1)# ip helper-address 192.168.2.9  

[править] Просмотр настроек на коммутаторе

Посмотреть настроенные ip helper-address для VLAN 1:

sw# show ip helper-address 1

Настройки DHCP-ретранслятора:

sw# show dhcp-relay 
  DHCP Relay Agent         : Enabled 
  Option 82                : Enabled 
  Response validation      : Disabled
  Option 82 handle policy  : drop 
  Remote ID                : mac  


  Client Requests       Server Responses

  Valid      Dropped    Valid      Dropped   
  ---------- ---------- ---------- ----------
  45         0          35         0         

[править] Пример конфигурации коммутатора Procurve

hostname "sw" 
ip routing 
vlan 1 
   name "DEFAULT_VLAN" 
   untagged 1-19,41-48 
   ip address 192.168.1.1 255.255.255.0 
   ip helper-address 192.168.2.9 
   no untagged 20-40 
   exit 
vlan 2 
   name "VLAN2" 
   untagged 20-40 
   ip address 192.168.2.1 255.255.255.0 
   exit 
dhcp-relay option 82 drop 
password manager
password operator

[править] Настройка коммутатора D-LINK для работы DHCP-ретранслятором

Подробнее: FAQ по настройке dhcp relay на коммутаторах DLink серии DES-35xx
# create iproute default 192.168.1.1
# config dhcp_relay add ipif System 192.168.2.9
# config dhcp_relay option_82 state enable
# enable dhcp_relay

[править] Настройка коммутатора Huawei для работы DHCP-ретранслятором

# ip route-static 0.0.0.0 0.0.0.0 192.168.1.254
# dhcp enable
# dhcp server group dhcp-test
#  dhcp-server 172.16.1.1 0
#  dhcp-server 172.16.1.2 1

# interface Vlanif1
#  ip address 192.168.1.1 255.255.255.0
#  dhcp select relay
#  dhcp relay server-select dhcp-test

[править] Настройка коммутатора Zyxel для работы DHCP-ретранслятором

[править] Дополнительная информация

Опция 82:

  • man dhcp-eval
  • http://linux.derkeiler.com/Newsgroups/comp.os.linux.networking/2005-01/1452.html
  • http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t2/ftrbeo82.htm
  • http://slaptijack.com/networking/what-is-dhcp-option-82/
  • D-LINK DHCP Relay option 82 (рус.) — подробное описание процедуры настройки использования опции 82 для коммутаторов D-LINK
  • Настройка опции 82 на ES3528M и Dhcpd (рус.) — описание настройки опции 82 на коммутаторах Edge-Core ES3528M
  • http://ciscovod.blogspot.com/2009/02/cisco-isg.html
  • Настройка опции 82 на Windows DHCP(проверить)
  • Linux dhcp клиент с поддержкой опции 82

[править] Материалы по DHCP на Xgu.ru

  • DHCP
  • Опция 82 DHCP
  • DHCP snooping
  • Win2k3 DHCP
 Просмотр этого шаблона ProCurve
Основы ProCurve Adaptive Edge | ProCurve ProActive Defense | ProCurve Network Access Control | ProCurve Wireless Logo hp procurve.gif
Программы ProCurve Manager | ProCurve Identity Driven Manager | ProCurve Network Immunity Manager | ProCurve Mobility Manager
Устройства ProCurve Switch | ProCurve Router | ProCurve ONE Module | ProCurve TMS Module | ProCurve NAC 800 | ProCurve Access Point | ProCurve WESM
Настройка
Безопасность ProCurve Security | Доступ к коммутатору ProCurve | DHCP snooping | Dynamic ARP Protection | IP Source Guard | Port security | Аутентификация при доступе к сети | 802.1X в ProCurve‎ | Web-аутентификация в ProCurve | MAC-аутентификация в ProCurve
Канальный уровень CDP | LLDP | VLAN в ProCurve | GVRP | STP в ProCurve | ProCurve Mesh | Агрегирование каналов | Зеркалирование трафика | QinQ
Сетевой уровень RIP в ProCurve | OSPF в ProCurve | VRRP в ProCurve | XRRP в ProCurve | QoS в ProCurve | Multicast в ProCurve | PIM в ProCurve
Разное Опция 82 DHCP | SNMP в ProCurve
 Просмотр этого шаблона Cisco Systems, Inc.
Устройства Cisco 871 • Cisco Router • Cisco Switch • Сisco Сatalyst  • Cisco IPS • Cisco ASA • PIX • Dynamips
Безопасность
(коммутаторы и
маршрутизаторы)
Cisco Security • Port security • DHCP snooping • Dynamic ARP Protection • IP Source Guard • Аутентификация при доступе к сети • 802.1X в Cisco • Zone-Based Policy Firewall • Cisco NAT • NAT в Cisco  • Cisco SSH
Cisco ASA Cisco ASA/NAT • Cisco ASA/Troubleshooting • Cisco ASA/IPS • Cisco ASA failover • Cisco ASA/Transparent firewall • Cisco ASA/Site-to-Site_VPN • Cisco ASA/Easy_VPN • Cisco ASA/WebVPN • Объединение OSPF-сетей туннелем между двумя системами ASA (без GRE) • Центр сертификатов на Cisco ASA
VPN IPsec в Cisco • Cisco IOS Site-to-Site VPN  • DMVPN  • Cisco Easy VPN • Cisco Web VPN • Cisco ipsec preshared
Канальный уровень CDP  • VLAN в Cisco  • ISL  • VTP  • STP в Cisco  • Cisco Express Forwarding  • Агрегирование каналов  • Зеркалирование трафика  • QinQ  • Frame Relay
Сетевой уровень Маршрутизация в Cisco  • RIP  • EIGRP  • IS-IS  • OSPF • BGP  • PIM  • Multicast  • GLBP  • VRRP  • HSRP  • DHCP  • IPv6  • IPv6 vs IPv4  • Резервирование Интернет-каналов без использования BGP • Использование BGP для резервирования Интернет-каналов
Разное Режим ROMMON в Cisco • Опция 82 DHCP • 802.1X и RADIUS • SNMP в Cisco • QoS в Cisco  • EEM  • Troubleshooting  • Автоматизация работы устройств Cisco  • Cisco NTP  • Cisco IP SLA  • Cisco Enhanced Object Tracking

Первым делом Вы должны попасть в настройки своего WiFi-роутера. Сделать это можно либо с компьютера, введя в браузере его локальный IP (обычно это 192.168.1.1 или 192.168.0.1). После авторизации необходимо в главном меню веб-интерфейса найти раздел, отвечающий за локальную сеть (LAN). В некоторых случаях, как в моём примере, настройка DCHP на роутере выведена в отдельный раздел:

Включение и выключение сервера обычно выполняется с помощью галочек «Включить»/»Отключить» или «Enable»/»Disable». На некоторых моделях это может быть выполнено в виде выпадающего списка.

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

Ещё один важный параметр — это время аренды IP-адреса (тот самый Lease Time) о котором я рассказывал выше. По умолчанию на моём роутере он выставлен на 120 минут. Максимальное значение — 2000 минут. После того, как Вы внесёте какие-то изменения в настройки устройства — обязательно не забудьте сохранить настройки. В противном случае, после перезагрузки в силу вступят старые параметры.

Как работает DHCP

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

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

DHCPOFFER
Это сообщение отправляется сервером хосту в ответ на полученный ранее DHCPDISCOVER. В нём содержатся все необходимые сетевые настройки, применив которые новое устройство сможет работать в этом сегменте.

DHCPREQUEST
Опять широковещательно сообщение, которое клиент отправляет серверу в ответ DHCPOFFER. Оно означает, что клиент выбрал отправленный ему вариант конфигурации сетевого подключения.

DHCPACK
Финальное сообщение от сервера DHCP клиенту в ответ на DHCPREQUEST. Оно обозначает конец процесса общения, начатого с сообщения DHCPDISCOVER. Получив его, клиент должен применить согласованные ранее настройки сетевого интерфейс, используя предоставленные опции.

Прочие сообщения протокола:

DHCPNAK
Полная противоположность сообщению DHCPACK. Оно означает прекращение общения между сервером, описанного выше. Необходимо начать процедуру заново!

DHCPRELEASE
Сообщение отправляется клиентом в тот момент, когда он завершает процесс использования занимаемого им IP-адреса.

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

DHCPINFORM
Этот вид сообщений отправляется клиентом серверу в тех случаях, когда клиенту присвоен статический IP-адрес, и выделение динамического не требуется. В ответ сразу прилетает DHCPACK.

Механизм общения клиента и сервера

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

Этап 1. Клиентское устройство — компьютер, телефон, принтер, телевизор и т.п.- подключается к сети. Он отправляет широковещательный запрос DHCPDISCOVER в поисках сервера. Для этого используется транспортный протокол UDP и порт 67. Начинается процесс авторизации.

Этап 2. Сервер получил запрос DHCPDISCOVER, то в ответ шлёт сообщение DHCPOFFER, где предлагает клиенту варианты настройки сетевого адаптера — IP-адрес, маску подсети, шлюз и DNS-серверы. и информация о шлюзе. Отправка идёт уже не в широковещательном формате а непосредственно хосту, отправившему запрос. Для этого в поле CHADDR прописывается его MAC-адрес. Теперь используется тот же протокол UDP, но порт уже 68.

Этап 3. Клиент просматривает выбранные конфигурации, выбирает приемлемую ему и формирует сообщение DHCPREQUEST, указав в нём какой вариант он выбрал. Если в сети несколько DHCP-серверов и прилетело несколько сообщений DHCPOFFER, то клиент указывает в ответе нужный ему сервер.

Этап 4. Сервер получает от клиента DHCPREQUEST и отправляет в ответ DHCPACK, говоря клиентскому устройству о том, что оно теперь в праве использовать назначенный ему IP-адрес. На этом процесс общения оканчивается и новый хост появляется в сети.

Аренда IP-адресов

Как я уже сказал ранее, IP-адреса выдаются DHCP-сервером на определённое заранее время — Lease Time. Это значение задаётся при настройке сервера обычно в минутах или часах, но в некоторых случаях может быть задано и в секундах. Время аренды периодически обновляется, говоря серверу о том, что данный узел «живой». Как только половина срока аренды пройдёт, DCHP-клиент будет пытаться автоматически продлить время аренды путем обмена сообщениями DHCPREQUEST и DHCPACK.

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

BOOTP/DHCP Parameters

Parameter

Description

Primary Address

The IP address to use as the BOOTP/DHCP router address. If you enter an IP address, all BOOTP/DHCP requests received on the interface are stamped with this gateway address. This can be useful on interfaces with multiple IP addresses (aliases).

Wait Time

The minimum time to wait (in seconds) for a local configuration server to answer the boot request before forwarding the request through the interface. This delay provides an opportunity for a local configuration server to reply before attempting to relay to a remote server. Set the wait time to a sufficient length to allow the local configuration server to respond before the request is forwarded. If no local server is present, set the time to zero (0).

Relay to Server

The IPv4 address of the BOOTP/DHCP configuration server to which to forward BOOTP/DHCP requests. You can configure relay to multiple configuration servers independently on each interface. Configuring different servers on different interfaces provides load balancing, while configuring multiple servers on a single interface provides redundancy. The server IPv4 address cannot be an address belonging to the local machine.

Что такое DHCP сервер и его плюсы

Прежде чем говорить о сервере DHCP, давайте узнаем, что такое DHCP.

DHCP (Dynamic Host Configuration Protocol) – это протокол позволяющий компьютерам динамически получать ip адреса и другие сетевые параметры.

Для работы протокола DHCP требуется сервер и клиент.

DHCP сервер – это сервер который раздает ip адреса и параметры компьютерам в сети, соответственно на нем и задаются настройки раздачи ip адресов и сетевых параметров.

DHCP клиент – это приложение установленное на клиентских компьютерах, которое обращается к DHCP серверу для получения ip адреса и соответствующих параметров. Во всех операционных системах по умолчанию установлен клиент DHCP, например в Windows он выглядит в виде службы с логичным названием DHCP-клиент.

Как Вы, наверное, знаете если не пользоваться DHCP, то у всех компьютеров в сети придется прописывать статические ip адреса вручную. Это первый плюс использования DHCP. Потому что если прописывать статические ip адреса, то обязательно будут возникать проблемы, самой распространенной проблемой является конфликт ip адресов, т.е. один и тот же адрес задан одновременно на нескольких компьютерах.

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

Перечислять все положительные стороны использования DHCP у себя в организации я думаю, не стоит, так как уже на данном моменте ясно, что использовать DHCP лучше, чем не использовать. Некоторые могут сказать «Зачем использовать DHCP, если в организации всего 15 машин?» поверьте, даже с таким количеством компьютеров в сети Вы значительно упрощаете администрирование ими. Даже если Вы наизусть помните, какой ip задан у каждого компьютера или устройства, рано или поздно Вам придется их менять (компьютеры устарели или сломались), и настраивать все эти параметры заново, или при добавление новой единицы оргтехники, которой необходим ip адрес, Вы можете забыть, или просто ошибиться в назначение ip адреса, соответственно потом все это нужно будет исправлять. Конечно если у Вас в сети до 5 компьютеров, может смысла, особого нет, я думаю и администратор в таком случае не нужен, но если в Вашем парке скажем 50-100 или больше компьютеров, то DHCP обязателен, также как и объедение всех компьютеров в домен.

Настройка DHCP snooping на коммутаторах Cisco

Включить DHCP snooping:

sw2(config)# ip dhcp snooping

1 sw2(config)# ip dhcp snooping

Включить DHCP snooping в VLAN, которые должны быть защищены с его помощью:

sw2(config)# ip dhcp snooping vlan 10

1 sw2(config)# ip dhcp snooping vlan 10

После включения DHCP snooping в VLAN, коммутатор перестает отправлять DHCP-сообщения от клиента на все порты VLAN. Сообщения по-прежнему отправляются на широковещательный адрес, но теперь коммутатор будет передавать их только на доверенные порты, так как только на них может находиться DHCP-сервер.

Настройка доверенных и ненадёжных портов

По умолчанию на коммутаторе все порты ненадёжные, поэтому доверенные порты надо явным образом указывать.

Указать доверенные порты:

sw2(config)# interface fa 0/1
sw2(config-if)# ip dhcp snooping trust

1
2

sw2(config)# interface fa 0/1

sw2(config-if)# ip dhcp snooping trust

(Опционально) Указать адрес авторизованного DHCP-сервера, доступного через доверенный порт:

sw2(config)#ip dhcp-server 10.84.168.253

1 sw2(config)#ip dhcp-server 10.84.168.253

По умолчанию, после включения DHCP snooping, на коммутаторе включена проверка соответствия MAC-адресов. Коммутатор проверяет соответствие MAC-адреса в DHCP-запросе MAC-адресу клиента. Если они не соответствуют, то коммутатор отбрасывает пакет.

При необходимости можно отключить эту проверку:

switch(config)# no ip dhcp snooping verify mac-address

1 switch(config)# no ip dhcp snooping verify mac-address

Добавление статических записей в базу данных привязки DHCP

Добавление статической записи в базу данных привязки DHCP:

sw2#ip dhcp snooping binding <mac-address> vlan <vid> <ip-address> interface <interface-id> expiry <seconds>

1 sw2#ip dhcp snooping binding <mac-address> vlan <vid> <ip-address> interface <interface-id> expiry <seconds>

Настройка опции 82

С опцией 82 связаны две настройки:

  • Настройка значения remote ID;
  • Настройка политики обработки пакетов с опцией 82.

Настройка remote ID (по умолчанию используется MAC-адрес коммутатора):

sw2(config)# ip dhcp snooping information option format remote-id

1 sw2(config)# ip dhcp snooping information option format remote-id

Настройка политики обработки пакетов с опцией 82. Коммутатор не будет отбрасывать пакеты, в которых есть опция 82:

sw2(config)# ip dhcp snooping information option allow-untrusted

1 sw2(config)# ip dhcp snooping information option allow-untrusted

Отключить вставку опции 82:

switch(config)# no ip dhcp snooping information option

1 switch(config)# no ip dhcp snooping information option

Просмотр настроек и проверка работы DHCP snooping

Просмотр настроек DHCP snooping:

sw2# show ip dhcp snooping

1 sw2# show ip dhcp snooping

Просмотр статистики DHCP snooping:

sw2# show ip dhcp snooping statistics

1 sw2# show ip dhcp snooping statistics

Просмотр базы данных привязки DHCP:

sw2# show ip dhcp snooping binding

1 sw2# show ip dhcp snooping binding

Опции Dynamic Host Configuration Protocol

Клиенту для работы в сети кроме IP требуются другие параметры DHCP: шлюз, адрес сервера, маска подсети и т. д. Опции кодируются определенными цифрами. В пакете они отображаются в порядке возрастания. К основным опциям относят:

  • 1. Маска подсети.
  • 3. IP-адреса доступных шлюзов. В сети их может быть 2-3 и более.
  • 6. Адрес DNS-сервера. Перечисляются все доступные серверы.
  • 12. Имя хоста.
  • 26. Задание одинакового MTU всем узлам.
  • 33. Выдача статических маршрутов узлам к удаленным сетям.
  • 51. Срок действия IP-адреса.
  • 55. Список запрашиваемых опций клиентом. Пакет отправляется с 55 опции, а затем идет перечисление числовых кодов нужных опций.

Пакет обязательно завершается опцией 255 End. Она означает, что других опций уже не будет, и это конец пакета. Далее мы разберем другие опции, которые также часто используются системными администраторами для настройки DHCP.

Опция 82 – информация об агенте ретрансляции

Эта опция нужна для того, чтобы сообщить DHCP-серверу о том, через какой ретранслятор и порт отправляются запросы. Она позволяет серверу и клиенту обмениваться сообщениями даже при нахождении в разных подсетях. Альтернативное название опции – DHCP Relay.

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

2.4 Трассировка протокола DHCP

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

Destination IP Address — IP-адрес получателя Source IP Address — IP-адрес отправителя Ethernet Header — заголовок
Ethernet

UDP Header — заголовок
UDP

UDP Source Port — UDP-порт отправителя UDP Destination Port — UDP-порт
получателя Ethernet type — тип Ethernet

Рис.10 «Значения параметров в сообщениях DHCP»

Протокол DHCP и формат его пакетов являются расширениями ВООТР. Клиенты и
серверы DHCP используют те же номера портов, что и клиенты и серверы ВООТР, то
есть клиенты DHCP использует порт UDP с номером 68, а серверы DHCP — порт UDP с
номером 67. Большинство анализаторов протоколов расшифровывает сообщения DHCP и
BOOT в одном формате.

Заключение Протоколы ВООТР и DHCP решают важную проблему автоматической
настройки параметров IP (в частности, IP-адресов и масок подсети) для отдельных
сетевых устройств. Оба протокола основаны на архитектуре
«клиент-сервер» и используют одинаковые номера портов UDP. Протокол
DHCP проектировался в качестве замены старого протокола ВООТР, а его сообщения
представляют собой расширение формата сообщений ВООТР.

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

Configuring DHCP Relay on the Security Gateway — Gaia Portal

Use the Portal to enable BOOTP/DHCP Relay on each interface. If the interface is enabled for relay, you can set up a number of servers to which to forward BOOTP/DHCP requests.

To enable BOOTP/DHCP relay on an Interface

  1. Open the Advanced Routing > DHCP Relay page of the Portal.
  2. Click Add.

    The Add BOOTP/DHCP Relay window opens.

  3. Select an Interface on which you want to enable BOOTP/DHCP.
  4. Optional: Enter values for one or more of these :
    • Primary Address
    • Wait Time
  5. Define the . For each relay:
    1. Click Add
    2. In the Add Relay window, enter the IPv4 address of the relay
    3. Click OK.
  6. Click Save.

To disable BOOTP/DHCP relay on an interface

  1. Open the Advanced Routing > DHCP Relay page of the Portal.
  2. Select an interface.
  3. Click Delete.

Принцип работы протокола динамической настройки узла

Работает DHCP по схеме DORA, которая включает 4 этапа: обнаружение (discover), предложение (offer), запрос (request), подтверждение (acknowledge). Рассмотрим каждый этап отдельно.

Обнаружение

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

В крупных организациях обычно несколько DHCP-серверов. Для передачи широковещательного сообщения от клиента всегда используется 67 порт, а для отправки ответного предложения – 68.

Внимание! Отправка сообщения DHCPDISCOVER не всегда является первым шагом по получению IP-адреса. Если у клиента статический IP-адрес и срок его аренды ещё не закончился, инициализация начинается с отправки DHCPREQUEST вместе с уже имеющимся идентификатором сервера

Если DHCP-сервер не отвечает, то тогда уже отправляется пакет DHCPDISCOVER, и процедура получения IP-адреса начинается заново.

Предложение

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

Другая ситуация – когда пользователи могут использовать любые адреса из доступных, кроме входящих в определенную область. В этом случае администратором задается исключение (excluded-ip-address). Например, клиентам нельзя назначать IP в диапазоне 192.0.0.14 — 192.0.0.45.

Адреса, назначаемые клиентам, являются динамическими, т. е. они постоянно меняются. Например, вчера у пользовательского компьютера был IP 192.0.0.445, а сегодня – 192.0.0.55. Но иногда для доступа к защищенным сервисам или для удобства идентификации клиента в ЛВС за пользователем закрепляют конкретный адрес. В этом случае он становится статическим, а саму процедуру называют резервацией.

В DHCPOFFER, которое получает клиент, содержится IP-адрес из доступной области. Идентификация устройства происходит по MAC-адресу.

Запрос

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

Подтверждение

Завершается процедура подтверждением передачи IP-адреса с помощью сообщения DHCPACK от сервера. В этом сообщении также указывается и срок использования выбранного клиентом адреса.

Как выбирает DHCP-сервер клиент, если в сети их несколько?

При первом подключении клиент выберет самое первое предложение. Но если ранее устройство уже подключалось к этой ЛВС, при повторном подключении оно выберет предложение от сервера, с которым была установлена связь в первый раз.

Отказ от адреса

При переходе клиента в новую подсеть возникает необходимость в смене IP. В этом случае серверу передается сообщение DHCPRELEASE. После получения пакета server DHCP помечает указанный адрес свободным. Клиентские сетевые параметры резервируются, т. е. при запросе от устройства можно снова возобновить действие этого IP-адреса. Отказаться от аренды можно и вручную. Для этого существует команда ipconfig/release.

Удаленный офис
и онлайн-продажи

За 1 день.
С бесплатным тестовым периодом.

Конфигуратор удаленных рабочих мест

Рабочие места для команды за 1 день

Запросить КП

Как остановить dhcp сервер windows server 2012

У нас простая сетка 192.168.1.0/24. Роутер во внешний мир пусть будет по адресу 192.168.1.1, на нем же DNS сервер.

DHCP сервер будет 192.168.1.2. Устанавливаем на нем Windows 2012 R2, добавляем роль DHCP Server. Серверу надо дать статический IP-адрес!

Сервер терминалов будет 192.168.1.3, на нем установлены WTware 5.4.16, все настройки по умолчанию. WTware DHCP отключен, TFTP включен.

Логинимся в DHCP сервер администратором, запускаем консоль управления DHCP.

Создаем новый диапазон адресов (scope).

Назовем наш диапазон LAN.

Исключим первые 15 адресов из раздачи (в принципе можно это не делать, потом внести все статические адреса в резервации).

Длительность аренды адреса оставим по умолчанию.

Роутер (шлюз по умолчанию).

Адрес сервера DNS и имя локального домена (если нужно).

WINS — укажите, если используете этот анахронизм.

Диапазон адресов создан.

На этом этапе рабочие станции будут получать адреса и базовые настройки от DHCP сервера. Теперь приступим к конфигурированию загрузки по сети (network boot).

Загружать по сети будем два типа клиентов:

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

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

У каждой политики есть приоритет. Приоритеты нумеруются начиная с 1. Чем меньше номер, тем приоритетнее политика. Если в двух политиках определены одинаковые опции, клиенту отправляется та, которая определена в политике с более высоким приоритетом. Приоритет политики можно менять через GUI, кликнув правой кнопкой мыши по названию политики и выбрать «Up» или «Down».

На MAC-адреса, прописанные в резервациях (Reservations) действие политик не распространяется!

Условия применения политик могут быть следующие:

Нас интересуют в основном Vendor Class. Перед созданием политики надо создать нужные нам Vendor Class.

Надо определить пять классов:

Жмем «Add…» чтобы добавить новый Vendor Class.

Заполняем имя класса: PXE Client x86

Заполняем ID класса: PXEClient:Arch:00000

Можно заполнять либо Binary (16-ричные значения), либо ASCII (просто набивать текст)

Тут важно не ошибиться, иначе ничего не заработает

Нажимаем OK и видим:

Аналогично добавляем следующие классы:

Имя класса: PXE Client EFI x64

ID класса: PXEClient:Arch:00009

Классы определены. Нажимаем «Close» и приступаем к созданию политик, которые будут пользоваться нашими классами.

Имя политики: pxeclient-x86

Политика будет определять загрузку BIOS клиентов.

Добавляем условие для нашей политики.

Устанавливаем так, как на картинке:

Обратите внимание на чекбокс «Append wildcard(*)». Это означает, что любой Vendor Class, который начинается с «PXEClient:Arch:00000», будет соответствовать условию

Условие добавлено, жмем Next.

Нам не нужно резервировать IP-адреса, поэтому жмем No и Next.

Конфигурируем опцию 66.

192.168.1.3 — адрес нашего TFTP сервера, на котором лежат загрузочные файлы WTware.

Конфигурируем опцию 67.

Имя загрузочного файла: 5.4.16/wtware.pxe

Жмем Next и завершаем конфигурирование политики.

Следующая политика будет определять загрузку UEFI x64 клиентов. Имя политики: pxeclient-uefi64

Добавляем первое условие.

Добавляем второе условие.

Условие политики будет срабатывать при совпадении с любым из двух Vendor Class.

Конфигурацию IP-адресов пропускаем, как в предыдущей политике.

Далее конфигурируем опции по аналогии с предыдущей политикой:

Завершаем конфигурирование политики.

Вторая политика готова.

Осталась последняя политика — для WTware. Она читает опции 66 и 67 для определения пути загрузки пакетов. Делаем аналогично предыдущей политике:

Имя политики: wtware

В условии политики устанавливаем Vendor Class «wtware»

Сюда же можно добавить специфические для WTware опции 18 и 179, по желанию.

Конфигурация завершена. Все типы клиентов должны загружаться.

Здесь, конечно, рассмотрен простейший случай. В реальных сетях все намного сложнее.

Важное дополнение: Поскольку политики несовместимы с резервациями, если вам потребуется указать имя хоста (опция 12) или дать определенному клиенту выделенный IP-адрес, создайте новую политику по условию «MAC-address» и настройте нужные параметры для этого MAC-адреса через свойства политики

Configuring DHCP Relay on the Security Gateway — Gaia Clish (bootp)

Use these commands to configure BOOTP properties for specific interfaces.

set bootp interface <if_name>
	primary ip_address wait‑time <0-65535> on
	relay-to ip_address <on | off>

Parameter

Description

The ip_address to stamp as the gateway address on all BOOTP requests.

The wait-time value is the minimum seconds to wait before forwarding a bootp request. A client-generated bootp request includes the elapsed time after the client began to boot. The bootp relay does not forward the request until the indicated elapsed time at least equals the specified wait time. This delay lets a local configuration server reply, before it relays to a remote server.

Протокол DHCP является широковещательным FAQ по протоколу DHCP и по умолчанию его пакеты не пересылаются маршрутизаторами из одной сети в другую
Настройка dhcp сервера linux, freebsd [айти бубен]
Настройка dhcp server на mikrotik. связка dhcp + arp • smartadm.ru
Dhcp сервер, клиент: что это, настройка на роутере простыми словами, включение и отключение
Dhcp snooping - записная книжка инженера программиста
Настройка microsoft windows server 2016/2019 для предоставления dhcp сервисов для vxlan (dfa) / хабр
Основы dhcp (протокол динамического конфигурирования узлов) | microsoft docs
Установка и настройка dhcp сервера на windows server 2012 r2 datacenter | info-comp.ru - it-блог для начинающих
Что такое dhcp в роутере: настройка, включение и выключение
Протокол dhcp - принцип работы | xelent

The server to which BOOTP requests are forwarded. You can specify more than one server.

Disables BOOTP on the specified interface.

Переключить конфигурацию реле DHCP

Если вы выполняете DHCP в сетевых сегментах, вам необходимо настроить ретрансляцию DHCP на интерфейсе сетевого сегмента на коммутаторе уровня 3.

В качестве примера возьмем указанный выше сегмент сети:

  • Сегмент сети DHCP 172.29.56.x / 24
  • Выделить ip сегмент сети 172.29.62.x / 24

Поскольку коммутатор уровня 3 не предоставляет напрямую функцию DHCP, вам необходимо предоставитьНастройте ретранслятор DHCP. Следующие операции основаны на Huawei S6720

Сначала настройте группу DHCP-сервера и добавьте два IP-адреса: активный и резервный. Здесь 0 и 1 за ip — порядковые номера

Затем используйте эту группу в качестве реле на интерфейсе.

Литература

1.      G.
Stump, R. Droms, Y. Gu, R., Vyaghrapuri, A. Demirtjis, B. Beser, J. Privat. The
User Class Option for DHCP, RFC-3004, November 2000.

2.      M.
Patrick, DHCP Relay Agent Information Option. RFC-3046, January 2001.

3.      S.
Alexander, DHCP Options and BOOTP Vendor Extensions, RFC-2132

4.      T. Parker, TCP/IP для профессионалов, May 2000. 2007 http://www.script-coding. info
<http://www.script-coding.info/>

5.      <http://www.dhcp-handbook.com/dhcp_faq.html>

6.      <http://ru.wikipedia.org/wiki/DHCP>ru.
wikipedia.org/wiki/DHCP <http://ru.wikipedia.org/wiki/DHCP>

7.      <http://kunegin.narod.ru/nata/tcpip_prof.pdf>kunegin.
narod.ru/nata/tcpip_prof. pdf
<http://kunegin.narod.ru/nata/tcpip_prof.pdf>

8.      http://www.bog.
pp.ru/work/bootp.html

Сообщения без ответов | Активные темы

Автор Сообщение

Заголовок сообщения: Windows 2012 DHCP 82 option и коммутаторы Dlink

СообщениеДобавлено: Ср окт 23, 2013 10:41 

Не в сети



Зарегистрирован: Сб ноя 01, 2008 10:47
Сообщений: 49

Господа, неслышен что в сервера Windows 2012 в DHCP появилась возможность использовать 82 опцию. Кто нибудь может поделится информацией ? Документации в инете внятной не нарыл. Очень хочется подружить со своими коммутаторами Dlink.

_________________
DES-3552, DES—3028-3052, 3200-10, 3526,DGS-3200-10, DGS-3612G

Вернуться наверх

Профиль  

dawas

Заголовок сообщения: Re: Windows 2012 DHCP 82 option и коммутаторы Dlink

СообщениеДобавлено: Ср окт 23, 2013 11:11 

Не в сети



Зарегистрирован: Сб апр 12, 2008 09:03
Сообщений: 88
Откуда: Московская область

Вернуться наверх

Профиль  

Wanderer2

Заголовок сообщения: Re: Windows 2012 DHCP 82 option и коммутаторы Dlink

СообщениеДобавлено: Ср окт 23, 2013 11:18 

Не в сети



Зарегистрирован: Сб ноя 01, 2008 10:47
Сообщений: 49

Вернуться наверх

Профиль  

Wanderer2

Заголовок сообщения: Re: Windows 2012 DHCP 82 option и коммутаторы Dlink

СообщениеДобавлено: Вс янв 26, 2014 10:54 

Не в сети



Зарегистрирован: Сб ноя 01, 2008 10:47
Сообщений: 49

Сам себе отвечу, да можно работает нормально, внятной документации так и не нашел, методом тыка победили, подружили DES 3552 и DES3200-10, кому интересно опишу туту.

_________________
DES-3552, DES—3028-3052, 3200-10, 3526,DGS-3200-10, DGS-3612G

Вернуться наверх

Профиль  

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Понравилась статья? Поделить с друзьями:
  • Optimized windows 11 by insendfx 7z скачать
  • Ophcrack скачать таблицы для windows 7
  • Opera rus windows 7 скачать бесплатно
  • Opera portable для windows xp 32 bit последняя версия на русском
  • Opera portable 32 bit скачать для windows xp