enable dhcp relay что это

Настройка DHCP Relay Agent в Windows Server 2012

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

Что такое DHCP relay и зачем он нужен?

Выходом из подобной ситуации является размещение в сети агента-ретранслятора DHCP (relay agent). Relay agent представляет собой некое промежуточное устройство, которое может пересылать широковещательные DHCP-запросы между клиентом и сервером DHCP, находящихся в различных широковещательных доменах. Т.е. DHCP relay agent получает от клиента (в этом же сегменте сети) широковещательный пакет на поиск и получение DHCP-адреса и пересылает этот запрос определенному DHCP серверу (указывается в настройках ретранслятора). Далее ответы от DHCP-сервера будут направлены ретранслятору, который передаст их конечному хосту. Технология DHCP Relay Agent определена в стандарте RFC 1542 («Clarifications and Extensions for the Bootstrap Protocol.»).

В качестве DHCP Relay Agent обычно используют маршрутизаторы (большинство современных маршрутизаторов совместимы с RFC 1542 и могут работать в качестве Relay агента). В том случае, если настроить Relay на маршрутизаторе по каким-либо причинам невозможно, в качестве Relay агента можно настроить компьютер с серверной ОС Windows. Попробуем настроить DHCP Relay Agent на Windows Server 2012.

Настройка DHCP Relay на Windows Server 2012

Несколько требований, которые необходимо учитывать при настройке агентов DHCP relay на базе Windows Server:

DCHP Relay Agent является одной из функций службы Routing and Remote Access (RRAS). Поэтому предварительно необходимо установите роль RRAS (с дефолтными настройками), после чего запустить MMC оснастку Routing and Remote Access.

В оснастке RRAS разверните ветку IPv4, щелкните правой кнопкой мыши по элементу General и в контекстном меню выберите пункт New Routing Protocol, выберите DHCP Relay Agent и нажмите ОК.

Щёлкните ПКМ по элементу DHCP Relay Agent и выберите пункт New Interface, укажите сетевой интерфейс, на котором будет слушать Relay –агент.

Затем откройте окно свойств DHCP Relay Agent и укажите ip адрес DHCP сервера, на который нужно перенаправлять все DHCP запросы от клиентов.

На этом настройка DHCP-ретранслятора закончена и можно переходить к тестированию его работы.

Источник

Особенности работы и настройки DHCP на маршрутизаторах Cisco (Часть 2)

1. Конфигурация

В качестве примера возьмем следующую схему:

На маршрутизаторе R3 расположен DHCP-сервер, который централизованно выдает адреса в сети LAN_1 и LAN_2. Маршрутизаторы R1 и R2 в данной схеме являются DHCP-Relay агентами

Сконфигурируем на R3 два пула адресов для каждой локальной сети:

!в режиме глобальной конфигурации определим адреса, которые будут исключены из пула (это адреса интерфейсов R1 и R2
ip dhcp excluded-address 192.168.1.1
ip dhcp excluded-address 192.168.2.1
!создадим пул адресов с именем LAN_1
ip dhcp pool LAN1
network 192.168.1.0 255.255.255.0
ip default-router 192.168.1.1
!создадим пул адресов с именем LAN_2
ip dhcp pool LAN2
network 192.168.2.0 255.255.255.0
ip default-router 192.168.2.1

Естественно, при необходимости можно добавить в пул дополнительные опции.

Следующий этап — конфигурация агентов DHCP-Relay на маршрутизаторах R1 и R2. Суть DHCP-Relay заключается в пересылке широковещательного пакета от клиента одноадресатным пакетом DHCP-серверу.

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

!выбираем интерфейс, на который будет приходить широковещательный запрос от клиентов, в данном случае это интерфейс f0/0 маршрутизатора, который подключен к сегменту сети
interface fa0/0
ip helper-address 10.1.1.2

no ip forward-protocol udp 37
no ip forward-protocol udp 53

2. Как это работает?

Клиент шлет стандартный DISCOVERY:

который пересылается Relay-агентом в направлении DHCP-сервера (измененные поля отмечены красным):

Как видно из картинки, сообщение теперь пересылается одноадресным пакетом с источником 192.168.1.1 (интерфейс маршрутизатора, на который был получен широковещательный пакет) и получателем 10.1.1.2 (адрес, который указан командой ip helper-address. Кроме того, адрес 192.168.1.1 указан в поле Relay agent IP address

На основании адреса источника сообщения DHCP-сервер определяет, из какого пула выдавать адреса. Для маршрутизатора R2 запрос пойдет с адресом источника 192.168.2.1 и сервер выдаст адрес из пула LAN_2.

Предложение OFFER от R3 к R1 выглядит следующим образом:

R1 пересылает его клиенту меняя только адреса источника на 192.168.1.1 и получателя на 192.168.1.2 (ссылка на скриншот)

Вот таким образом выглядит обмен сообщениями между клиентом, агентом и сервером:

3. Заключение

Для правильной работы данного примера важно учесть следующий момент: маршрутизатор R3 получает пакеты от R1 с адресом источника 192.168.1.1, поэтому на R3 сеть 192.168.1.0 должна быть в таблице маршрутизации, я настроил EIGRP между маршрутизаторами для решения этой проблемы. Смотрим таблицу:

Gateway of last resort is not set

10.0.0.0/24 is subnetted, 2 subnets
C 10.1.2.0 is directly connected, FastEthernet0/0
C 10.1.1.0 is directly connected, FastEthernet0/1
D 192.168.1.0/24 [90/307200] via 10.1.1.1, 00:00:16, FastEthernet0/1
D 192.168.2.0/24 [90/307200] via 10.1.2.1, 00:02:17, FastEthernet0/0

Источник

DHCP — что это такое простыми словами, как включить на роутере, адаптере?

Рад видеть Вас на fast-wolker.ru! Продолжаем изучать сетевое администрирование. Многие пытаясь впервые настраивать роутер, сталкиваются с неизбежными вопросами. Один из таких, на первый взгляд второстепенных вопросов — это настройка DHCP. Для маленьких домашних сетей как правило это не актуально, и на эту опцию сначала мало кто обращает внимание.

Но, как только возникает необходимость настроить для своих нужд работоспособную сеть с выходом в Интернет по выделенному IP-адресу, так сказать пробелы в знаниях дают о себе знать. Читаем и берем на вооружение. В этом выпуске:

Эта статья поможет вам разобраться в теме. Все важно, а такие «лишние» знания бесполезными не бывают и простым способом можно повысить безопасность вашей сети. Как всегда, в начале немного теории, без нее все равно никуда. Сегодня все сети построены на ключевых протоколах TCP/IP, которые во многом обеспечивает их функционирование.

Одной из служб этого протокола и является DHCP (DYNAMIC HOST CONFIGURATION PROTOCOL) или «протокол динамического конфигурирования хостов». Хостами обычно называют имена компьютеров в сети. В некотором роде они заменяют собой IP адреса при обращении к компьютеру по имени.

DHCP является вспомогательным средством TCP/IP и функционирует в сети как сервер, как клиент, и как протокол по которому и передаются в сеть служебные данные. Все зависит от того, о каком уровне идет речь.

DHCP- сервер для чего он нужен?

Первые протоколы призванные решать проблему были разработаны для рабочих станций, у которых даже не было своих жестких дисков. Сейчас мне это кажется диким, но в году так 1998 я работал на такой сети. Загружаешься с дискетки, MS-DOS и Far-Manager в сочетании с черно-белым монитором — это была первая моя операционная система! При включении такой компьютер шлет в сеть сообщение. Сервер сети в ответ на это сообщение шлет свое, по которому компьютер и «узнает» свой IP.

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

Читайте также:  какой краскопульт лучше для покраски деревянного дома снаружи

DHCP на роутере что это?

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

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

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

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

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

DHCP relay что это? Настройка сервера на устройствах Microtic, Zyxel Keenetic Giga

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

Работа DHCP основана на обмене сообщениями между клиентами сети и сервером, который адреса назначает. Сообщения генерируются в определенном формате и содержат служебную информацию. Они обычно не выходят за пределы вашей сети. Но как быть, если вам срочно нужно перенастроить сеть в рабочее время?

Настройка сервера DHCP на роутере Zyxel Keenetic Giga

Фирма Zyxel сегодня выпускают устройства, которые радуют глаз. Эти бренды сегодня популярны прежде всего благодаря функционалу который они предоставляют. Можно организовать несколько сетей на одном устройстве, подключить не одного провайдера а несколько и делать много других недостуных для предыдущих поколений устройств полезных вещей. Не менее хороша фирма Microtic, сделал один раз настройки и забыл о проблемах.

Настройка сервера на маршрутизаторе самостоятельно не представляет ничего сложного. В случае выделенного вам провайдером Интернет IP- адреса нужно настроить подключение к Интернету:

Указываем данные от провайдера, не забываем про DNS, в качестве DNS 3 можно прописать гугловский DNS 8.8.8.8 Не помешает. Затем нужно создать сеть, или вернее сказать один из ее сегментов. В пункте «Мои сети и Wi-Fi» создаем новый сегмент:

В настройках включаем DHCP сервер. В качестве IP указываем адрес роутера, который для рабочих станций будет шлюзом:

IP роутера указан в качестве примера. Вы можете в качестве IP выбирать нестандартные диапазоны для повышения безопасности. Диапазоны определяют количество подсетей и предельное количество рабочих станций в ней. Начальный адрес пула будет адресом «первого» компьютера. Размер пула — это количество компьютеров, которые у вас будут в сети. Время аренды- продолжительность выдачи адреса в секундах.

DHCP не включен на сетевом адаптере подключение по локальной (беспроводной) сети Windows 10, что делать?

По некоторым причинам (обновление Windows10, настройка Wi-FI) иногда можно увидеть эту ошибку в окне сообщений. Для начала проверим запущена ли служба DHCP на вашем компьютере. Нужно в «Панели управления» зайти в Администрирование — Службы…

…убеждаемся, что служба запущена; если это не так — перезапускаем ее. Теперь переходим к настройкам сетевой карты.

Как включить DHCP на сетевом адаптере Windows 10? Для этого правой кнопкой жмем на значок подключения в нижнем правом углу монитора:

Идем в настройки параметров сетевого адаптера:

На компьютере обычно бывает больше одного сетевого адаптера. Если у вас WI-FI, то нужно выбрать его. У меня проводное подключение Нужно щелкнуть по нему правой кнопкой мыши:

Далее, смотрим настройки. Если у вас DHCP на роутере включен, можно поставить флаги так:

Убеждаемся, что на сетевом адаптере включился DHCP,жмем на «Дополнительно»:

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

Все же бывает, что вышеописанные способы не помогают. Долго искать; поэтому опять жмем правой кнопкой на значке подключения:

Дождитесь окончания работы мастера:

После проведенных выше настроек он гарантированно исправляет все ошибки! Вот так легко настраивать DHCP!

Источник

Практические аспекты использования DHCP relay+option82

В этой статье я хотел бы осветить практические аспекты использования DHCP relay+option82 как возможность авторизации (в дальнейшем именно эта связка будет иметься ввиду), а так же привести примеры конфигурации свитча Dlink DES-3200-10 и isc-dhcp-server. Практически во всех статьях dhcp relay трактуют так: «можно вынести dhcp-сервер за пределы широковещательного домена». Однако почему-то не упоминают или почти не упоминают, что это хорошая возможность избавиться от широковешательных запросов в пределах того же самого широковешательного домена. И самое главное, на что акцентирую внимание — мы можем быть уверены, благодаря option82, что запрос пришёл именно со свитча с заданным маком и именно с порта с указанным номером, а следовательно — таким образом можно «авторизовать» пользователя.

Я немного позанудствую и напомню, как действует DHCP relay. Он перехватит широковещательный запрос (VLAN-а, на который он настроен), обернёт его в L3 и отправит unicast-ом указанному DHCP-серверу. Ну и не лишним будет напомнить, что делаетoption82. Она добавляет в DHCP-пакет два дополнительных параметра:

DHCP-Relay-Circuit-Id — номер порта с которого пришёл запрос.
DHCP-Relay-Remote-Id — (по умолчанию) макадрес свитча с которого пришёл запрос.

Ещё хочется сказать о методах внедрения этой опции в пакет.В оборудовании Dlink есть два способа:

dhcp_relay — добавляет Option82 и как писалось выше, обернёт его в L3 и отправит unicast-ом указанному DHCP-серверу
dhcp_local_relay (DHCP Snooping) — только добавляет Option82 и пересылает широковещательный пакет дальше.

Немного отклонюсь от темы. Дело в том что конструкцию dhcp_local_relay я нашёл только в оборудовании Dlink. Мне стало интересно, почему же другие производители не внедрили такую замечательную опцию? Оказывается, внедрили, и давно. Называется она DHCP Snooping.

Возможно, у кого-то возникнет вопрос: «зачем нам избавляться от широковещательного трафика»? Дело в том, что на практике я очень часто встречался с таким явлением, что при выходе из строя коммутатора, например, в результате грозы, возникают петли, что приводит к широковещательному шторму. Конечно, как вы уже догадались, от одного широковещательного трафика в IPv4 нам все равно не избавиться — это ARP-трафик. Именно он отвечает за построение таблиц MAC-IP. Конечно, можно это запретить и заполнить таблицы вручную. Но, боюсь что возникшие при этом неудобства сведут на нет все прелести от статических ARP-таблиц.

Читайте также:  с каким цветом сочетается серый ламинат в интерьере

Во всех статьях указано, что DHCP-клиент и DHCP-сервер могут (должны) находиться в разных подсетях — это неправда. Вот наша схема:

Далее я приведу пример конфигураций:

Теперь конфиг isc-dhcp-server (isc-dhcpd-4.2.4 ) на
Linux big-A75F-M2 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux:

$sudo apt-get install vlan-tools isc-dhcp-server
$sudo vconfig add eth0 7
$sudo ifconfig eth0.7 10.90.90.92/8
#Создаем VLAN7 и назначаем адрес 10.90.90.92/8 на котором у нас будет висеть сервер DHCP

Конечно, это только стендовый конфиг, но нам самое главное разобраться с принципом работы. Все же забегая в перед я могу сказать, что у меня работает биллинговая система с option82 и конструкцией dhcp_local_relay(dhcp snooping), а в качестве сервера используется freeradius2 с perl-выборкой IP-адресов из базы postgres. Но это уже выходит за рамки данной статьи.

На машине с сервером запускаем:

c0:a0:bb:48:e5:b0 > 00:15:17:db:e3:e0, ethertype IPv4 (0x0800), length 345: 10.90.90.90.68 > 10.90.90.92.67: BOOTP/DHCP, Request from 48:5b:39:43:78:e5, length 303

Listening on LPF/eth0.7/00:15:17:db:e3:e0/10.0.0.0/8
Sending on LPF/eth0.7/00:15:17:db:e3:e0/10.0.0.0/8

Должен вернуть UID процесса, если ни чего не выведет, проверяйте конфигурацию.

Для чего нужна такая проверка? Я помню случаи, когда сервер стартовал, висел в памяти несколько секунд и вылетал. А я тщетно пытался получить получить IP-адрес.

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

Dec 2 20:36:17 big-A75F-M2 dhcpd: DHCPREQUEST for 10.0.0.155 from 48:5b:39:43:78:e5 (big-1001PX) via 10.90.90.90

Dec 2 20:36:17 big-A75F-M2 dhcpd: DHCPACK on 10.0.0.155 to 48:5b:39:43:78:e5 (big-1001PX) via 10.90.90.90

Dec 2 20:38:06 big-A75F-M2 dhcpd: Lease for 10.0.0.155 raw option-82 info is CID: 0.4.0.10.0.3 AID: 0.6.c0.a0.bb.48.e5.b0

Теперь одна очень важная вещь, про неё нигде не написано, но я дошёл до неё экспериментальным путём. IP-адрес свитча должен находиться в той же подсети, что и адреса, выдаваемые абонентам. Ни при каких других комбинациях мне не удалось заставить работать связку Dlink DES-3200 (Boot PROM Version: Build 4.00.002 Firmware Version: Build 4.04.004 Hardware Version: C1) и isc-dhcp-server 4.2.4.

И еще не большой бонус, как не погибнуть от броадкастов. Конфиг для Dlink DES-3200 С1:

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

Источник

Dhcp relay option 82

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

Option 82 используется для передачи дополнительной информации в DHCP-запросе. Причём эту информацию добавляет сам коммутатор. Эта информация может быть использована для применения политик для увеличения уровня безопасности и эффективности.
Для простоты эти пакеты содержат информацию BOOTP, т.е. DHCP-запросы обрабатываются коммутатором также как BOOTP-запросы.

Формат поля опции с Circuit ID — в ней указывается порт коммутатора, за которым находится клиент и VID соответствующего VLAN:

1. 2. 3. 4. 5. 6. 7.
1 6 4 VLAN Module Port
1 байт 1 байт 1 байт 1 байт 2 байта 1 байт 1 байт

1. Тип опции 2. Длина 3. Тип Circuit ID 4. Длина
5. VLAN : VLAN ID DHCP-запроса клиента
6. Module : Для автономного коммутатора, поле Module всегда 0; для стекируемого коммутатора, Module = Unit ID.
7. Port : Порт коммутатора, с которого получен DHCP-запрос (начинается с 1) port

Формат поля опции с Remote ID — в ней указывается MAC-адрес коммутатора, являющегося агентом DHCP Relay:

1. 2. 3. 4. 5.
2 8 6 MAC address
1 байт 1 байт 1 байт 1 байт 6 байтов

1. Тип опции 2. Длина 3. Тип Remote ID type 4. Длина
5. MAC address : MAC-адрес коммутатора.

Оборудование:

Схема сети:

Задача:

Команды для настройки коммутатора L2 (DES-3526/DES-3550):

Настройка DHCP-сервера:

В этом примере используется 30-ти дневная версия haneWIN DHCP server 2.1, которую вы можете взять с сайта www.hanewin.net

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

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

Содержание

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

Протокол динамического конфигурирования 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-сервер выделяет IP-адреса (и прочие параметры TCP/IP) одним из двух способов:

[править] Option 82

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DHCP snooping это функция безопасности DHCP которая предоставляет безопасную фильтрацию не прошедших проверку сообщений DHCP и поддержку привязки таблиц DHCP snooping.

Таблица сопоставлений DHCP snooping содержит MAC адрес, IP адрес, время аренды, тип сопоставления, номер VLAN и информацию о интерфейсе который отвечает ненадёжным локальным интерфейсам или свитчам. Ненадёжные интерфейсы — это интерфейсы, которые настроены на принятие сообщений от внешней сети или firewall. Надёжные интерфейсы — это интерфейсы, которые настроены на принятие сообщений только от внутренней сети.

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

DHCP snooping может быть задействован на свитче посредством VLAN для перехвата DHCP сообщений второго сетевого уровня.

Конфигурация DHCP snooping и Option 82 на ethernet коммутаторах SNR.

ip dhcp snooping enable
ip dhcp snooping binding enable
ip dhcp snooping information enable
ip dhcp snooping information option subscriber-id format hex
ip dhcp snooping vlan xx​

Для коммутаторов SNR моделей S2970G-48S, S2970-12X:

ip dhcp-relay snooping
ip dhcp-relay snooping information option
ip dhcp-relay snooping information option hn-type

Также дополнительно рекомендуется включить функционал user-control на портах подключения абонентов, и указать максимальное количество абонентов, подключенных к порту (кроме линейки SNR S2970):

Interface Ethernet 1/1
ip dhcp snooping binding user-control
ip dhcp snooping binding user-control max-user 1

Конфигурация DHCP-сервера.

Рассмотрим детально пример минимальной конфигурации DHCP-сервера ISC-DHCPD:

Включаем вывод сообщений в syslog, это упростит отладку в случае каких-либо проблем:

log-facility local7;
local-address 172.16.0.10;​

Проверяем наличие Option 82 в пакете:

if exists agent.remote-id

Создаем класс для порта коммутатора:

class «sw01-p01″
subnet 172.16.0.0 netmask 255.255.255.0
>

Источник

Сказочный портал