Dhcp

Содержание:

Установка сервера DHCP на Debian

Окружение: Debian GNU/Linux wheezy/sid. isc-dhcp-server Версия: 4.1.1-P1-17

# aptitude install isc-dhcp-server

Этот сервер может работать с несколькими сетевыми интерфейсами одновременно.
Укажем явно сетевой интерфейс на котором будет слушать DHCP сервер, в этом случае для eth0:0, который является алиасом на eth0.

# nano /etc/default/isc-dhcp-server
...
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0:0"

Syslog в Debian для логов dhcpd

По умолчанию демон Настройка DHCP сервера Linux, FreeBSD пишет логи в /var/log/messages и на /dev/console. Нужно вынести логи в отдельный файл и заблокировать вывод логов в messages.

# nano /etc/dhcp/dhcpd.conf
log-facility local7;
# touch /var/log/dhcpd.log
# nano /etc/rsyslog.conf
...
!dhcpd
*.*     -/var/log/dhcpd.log

Для блокировки в messages и на console добавим local7.none

...
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none;local7.none      -/var/log/messages
...
daemon.*;mail.*;\
        news.err;\
        *.=debug;*.=info;\
        *.=notice;*.=warn;local7.none   |/dev/xconsole

Параметр authoritative DHCP-сервера позволяет объявить сервер авторитативным (ответственным) в обслуживаемой сети. Отличие авторитативного сервера от «обычного» заключается в том, что последний игнорирует любые запросы адресов, которые не описаны в его конфигурации, в то время как авторитативный сервер в ответ на такие запросы отсылает DHCPNAK. Благодаря такому поведению клиент, перемещённый из другой подсети, сможет бы стрее получить новый адрес (в ответ на DHCPREQUEST с адресом из прежней подсети он сразу получит DHCPNAK и приступит к получению нового адреса; в противном случае DHCPDISCOVER будет отправлен лишь по истечении тайм-аута на ожидание ответа). В то же время «случайные» DHCP-серверы (например, их тыкают сейчас везде где угодно) с меньшей вероятностью смогут помешать работе сети, поскольку, будучи неавторитативными, будут просто игнорировать «чужие» запросы DHCPREQUEST.

Настройка

Основная часть настроек выполняется в файле . Некоторые наиболее используемые опции описаны далее. Подробнее о структуре файла и его содержании смотрите в .

Статические маршруты

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

/usr/lib/dhcpcd/dhcpcd-hooks/40-vpnroute
ip route add 10.11.12.0/24 via 192.168.192.5

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

Идентификатор клиента

Сервер DHCP может однозначно идентифицировать клиента посредством различных параметров:

  • имя хоста (в частности то имя, которое отправляет клиент),
  • MAC-адрес сетевого адаптера клиента через который проходит соединение,
  • Identity Association ID (IAID),
  • DHCP Unique Identifier (DUID).

В зависимости от настроек DHCP-сервера, какие-то из этих параметров могут быть обязательными, а другие — опциональными.

Примечание: Стандартной конфигурации dhcpcd в большинстве случаев будет достаточно. Указанные параметры определяются автоматически и ручная настройка обычно требуется только при возникновении проблем.

Если при использовании стандартных настроек не удается получить IP, для настройки вы можете использовать следующие опции в :

  • — отправляет имя хоста (берется из ).
  • — отправляет MAC-адрес интерфейса в качестве идентификатора.
  • — указывает dhcpcd использовать из DUID и IAID в качестве идентификатора.

При использовании Dynamic DNS особенно необходимо удостовериться в уникальности этих идентификаторов. Если в сети находятся два DNS-клиента с одинаковыми DUID, они будут конфликтовать, поочередно отнимая друг у друга аренду DNS-записи. Это может произойти, например, в случае, если была сделана копия виртуальной машины с другими именем хоста и MAC-адресом адаптера, но DUID в настройках остался прежним.

noarp

Того же эффекта можно достичь, запуская dhcpcd с опцией .

Запасной статический профиль

Вы можете настроить статические параметры IP в dhcpcd, которые будут использоваться в качестве резервных, если не удалось получить аренду от сервера. Это полезно для автономных устройств, к которым обычно есть доступ только по сети (например, Raspberry Pi) для того, чтобы не потерять возможность с ними соединиться.

В следующем примере создается профиль с IP и адресом шлюза и DNS , который устанавливается как запасной для :

/etc/dhcpcd.conf
# define static profile
profile static_eth0
static ip_address=192.168.1.1
static routers=192.168.1.23
static domain_name_servers=192.168.1.23

# fallback to static profile on eth0
interface eth0
fallback static_eth0

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

Настройка времени аренды IP адресов в Windows Server 2016

И так для начала нужно зайти в DHCP. Найти его можно либо через пуск либо через Диспетчер серверов.

Далее нужно выбрать Область кликнуть правой кнопкой и зайти в Свойства.

На вкладке Общие в низу будет пункт Срок действия аренды адресов для DHCP клиентов. Как видите можно указать период действия от минут до нескольких дней. А также вообще можно отключить срок аренды. Но делать это категорически не советую так как в этом случае IP адреса будут выдаваться клиентам на всегда и вскоре вы столкнетесь с проблемой не хватки адресов. Так как они не будут освобождаться по истечению срока аренды. Самые оптимальный период срока аренды составляет 48 часов.

Так же хочу немного рассказать как это работает. Допустим вы указали срок аренды адресов 48 часов по истечению половины этого времени клиент выполнит попытку продлить срок аренды. Если в течении этого времени клиент будет не активен то выданный IP адрес освободиться. И при следующем запросе он получить уже новый.

Посмотреть на какое время выдан IP адрес клиенту можно в настройки сетевого подключения. Там будет две строчки Аренда Получена и Аренда истекает.

В общем нет ни какой сложности в настройки времени аренды IP адресов DHCP сервера который развернут на базе Windows Server 2016.

Протокол DHCP

Протокол DHCP (Dynamic Host Configuration Protocol — протокол динамического конфигурирования хостов) является протоколом клиент-серверной модели. То есть, есть сервер DHCP (демон dhcpd) отвечающий на запросы клиентов и есть клиент DHCP (dhclient) посылающий запросы и принимающий ответы от сервера. Передача данных производится при помощи протокола UDP, при этом сервер принимает сообщения от клиентов на порт 67 и отправляет сообщения клиентам на порт 68.

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

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

1. Обнаружение DHCP (DHCPDISCOVER)

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

2. Ответ DHCP — сервера (DHCPOFFER)

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

3. Запрос DHCP-сервера (DHCPREQUEST)

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

4. Подтверждение от DHCP-сервера (DHCPACK)

Наконец, сервер подтверждает запрос и направляет это подтверждение (DHCPACK) клиенту. После этого клиент должен настроить свой сетевой интерфейс, используя предоставленные опции.

При этом, кроме указанных сообщений, возможны и другие (на схеме указаны пунктиром):

Отказ от настроек, предоставленных DHCP-сервером (DHCPDECLINE)

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

Отмена от DHCP-сервера (DHCPNAK)

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

Освобождение адреса DHCP (DHCPRELEASE)

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

Информация DHCP (DHCPINFORM)

Сообщение информации DHCP (DHCPINFORM) предназначено для определения дополнительных параметров TCP/IP (например, адреса маршрутизатора по умолчанию, DNS-серверов и т. п.) теми клиентами, которым не нужен динамический IP-адрес (то есть адрес которых настроен вручную). Серверы отвечают на такой запрос сообщением подтверждения (DHCPACK) без выделения IP-адреса.

Настройки DHCP на сервере

Перед
конфигурированием настроек необходимо произвести несколько расчетов
основных опций DHCP. Это что еще за опции такие? — спросите вы. Опции —
это все те параметры сети, которые передаются от сервера клиенту. Две
основные опции – диапазон раздаваемых адресов и маска подсети. Весь
диапазон адресов организации обычно разделяется на несколько сегментов,
предназначенных для различных задач, таких как телекоммуникации,
статические адреса серверов и пр. Чтобы статические адреса не
участвовали в раздаче, создавая дополнительную нагрузку на сервере,
диапазоны раздаваемых адресов можно ограничить. Например, при рабочем
диапазоне 192.168.1.1-192.168.1.254 можно адреса от 1 до 10 определить
на коммуникации, с 11 по 30 – под сервера, а для DHCP выделить диапазон
от 31 по 254. То есть любой адрес от сервера, выданный клиенту, будет
лежать только в этом диапазоне. Также можно настроить в раздаваемом
диапазоне адреса-исключения, и они тоже не будут раздаваться клиентским
устройствам.

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

Как включить DHCP на роутере?

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

  • подключиться к роутеру по Wi-Fi или при помощи сетевого кабеля;

  • в адресной строке веб-браузера прописать локальный IP адрес маршрутизатора, который можно найти на наклейке внизу устройства (чаще всего 192.168.0.1 либо 192.168.1.1, но возможны и другие варианты вроде tplinklogin.net);

  • в появившемся окне набрать логин и пароль, значения которых по умолчанию посмотрите на той же наклейке, чаще всего это логин: admin, пароль: admin или 1234 (если вы поставили другие логин и пароль, воспользуйтесь ими, а если не можете вспомнить, придется провести на роутере сброс настроек до заводских и попробовать заново);

  • в открывшемся меню, вид которого будет отличаться в зависимости от производителя маршрутизатора, выберете пункт «Настройка локальной сети» или нечто подобное, там поставьте отметку напротив опции включения DHCP сервера;

  • сохраните новые параметры.

Если сразу не получается открыть настройки роутера, попробуйте войти из другого браузера или из другого устройства. Самое радикальное и действенное решение проблемы — сброс настроек маршрутизатора. Чтобы его сделать, найдите маленькую кнопку с подписью «Reset» нажмите её чем-то тонким и удерживайте в течение 5-15 секунд

Важно иметь в виду: минус этого решения в том, что вам придется настраивать роутер полностью заново

Советы и рекомендации

Запуск на одном сетевом интерфейсе

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

При помощи настройки dhcpd

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

/etc/dhcpd.conf
# Исключить DHCP из демилитаризованной зоны (192.168.2.0/24)
subnet 192.168.2.0 netmask 255.255.255.0 {
}

При помощи файла службы

Стандартный файл службы запускает dhcpd на всех доступных интерфейсах. Если вам нужно запустить dhcpd лишь на одном интерфейсе, создайте следующий файл:

 /etc/systemd/system/dhcpd4@.service
Description=IPv4 DHCP server on %I
Wants=network.target
After=network.target


Type=forking
PIDFile=/run/dhcpd4.pid
ExecStart=/usr/bin/dhcpd -4 -q -pf /run/dhcpd4.pid %I
KillSignal=SIGINT


WantedBy=multi-user.target

Теперь вы можете запустить dhcpd на одном конкретном интерфейсе, например :

# systemctl start dhcpd4@eth0.service

Модификация записей зоны

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

Обновление динамических зон при помощи nsupdate

Утилита входит в пакет . Также в этом же пакете присутствует утилита , позволяющая получить выгрузку определённой зоны.

Установите пакет, выполнив:

emerge bind-tools

Чтобы получить содержимое зоны example.org, выполните:

dig -t axfr example.org.

; <<>> DiG 9.11.2-P1 <<>> -t axfr example.org.
;; global options: +cmd
example.org.        86400   IN  SOA ns1.example.org. root.example.org. 2018031402 10800 3600 604800 86400
example.org.        86400   IN  NS  ns1.example.org.
client.example.org. 3600    IN  A   192.168.50.100
client.example.org. 3600    IN  TXT "3173d9bec89af77517b8cff6e3c19edb9f"
dns.example.org.    86400   IN  A   192.168.50.3
gw.example.org.     86400   IN  A   192.168.50.1
localhost.example.org.  86400   IN  A   127.0.0.1
ns1.example.org.    86400   IN  A   192.168.50.3
example.org.        86400   IN  SOA ns1.example.org. root.example.org. 2018031402 10800 3600 604800 86400
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Чт мар 15 15:12:23 MSK 2018
;; XFR size: 9 records (messages 1, bytes 314)

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

dig -t axfr 50.168.192.in-addr.arpa

; <<>> DiG 9.11.2-P1 <<>> -t axfr 50.168.192.in-addr.arpa
;; global options: +cmd
50.168.192.in-addr.arpa. 86400  IN  SOA ns1.example.org. root.example.org. 2018031402 10800 3600 604800 86400
50.168.192.in-addr.arpa. 86400  IN  NS  ns1.example.org.
1.50.168.192.in-addr.arpa. 86400 IN PTR gw.example.org.
100.50.168.192.in-addr.arpa. 3600 IN    PTR client.example.org.
3.50.168.192.in-addr.arpa. 86400 IN PTR ns1.example.org.
50.168.192.in-addr.arpa. 86400  IN  SOA ns1.example.org. root.example.org. 2018031402 10800 3600 604800 86400
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Чт мар 15 15:12:04 MSK 2018
;; XFR size: 6 records (messages 1, bytes 246)

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

nsupdate -k /etc/bind/rndc.key

Выполнение команды запустит консоль для взаимодействия с DNS. Для получения полного перечня команд воспользуйтесь командой , для выхода — .

Для удаления записи client.example.org из зоны используйте следующую команду

nsupdate -k /etc/bind/rndc.key

del client.example.org
send
quit

Для добавления записи client.example.org в зону example.org используйте следующую команду:

nsupdate -k /etc/bind/rndc.key

nxdomain client.example.org
add client.example.org 3600 A 192.168.1.100
send
quit

Команда служит для проверки отсутствия записи client.example.org в DNS. Команда добавляет A-запись client.example.org соответствующую 192.168.1.100 с TTL 1 час (3600).

Вместо А-записи (соответствие доменного имени IP адресу) можно использовать для назначения псевдонима для зоны. Добавьте CNAME запись comp1.example.org на client.example.org:

nsupdate -k /etc/bind/rndc.key

nxdomain comp1.example.org
add comp1.example.org 3600 CNAME client.example.org
send
quit

Для удаления записи 192.168.50.100 из обратной зоны используйте следующую команду:

nsupdate -k /etc/bind/rndc.key

del 100.50.168.192.in-addr.arpa. 
send
quit

Для добавление обратной записи 192.168.50.100 на client.example.org в обратную зону используйте следующую команду:

nsupdate -k /etc/bind/rndc.key

nxdomain 100.50.168.192.in-addr.arpa 
add 100.50.168.192.in-addr.arpa. 3600 PTR client.example.org.
send
quit

Редактирование файлов, описывающих зоны

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

rndc sync

rndc freeze example.org

/var/bind/dyn/example.org.zone

rndc reload example.org

rndc thaw example.org

Где:

  • — перенесёт временные изменения из журнала в файл описания зоны;
  • — приостановит динамическое изменение;
  • — перечитает содержимое из файла описания;
  • — восстановит возможность динамического изменения.

При каждом редактировании зоны необходимо увеличивать серийный номер.

Пример

$ORIGIN .
$TTL 86400  ; 1 day
example.org     IN SOA  ns1.example.org. root.example.org. (
                2018031406 ; serial
                10800      ; refresh (3 hours)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                86400      ; minimum (1 day)
                )
            NS  ns1.example.org.
$ORIGIN example.org.
$TTL 3600   ; 1 hour
client          A   192.168.50.101
            TXT "317e714be5304884a0829b791e1d79b481"
$TTL 86400  ; 1 day
dns         A   192.168.50.3
gw          A   192.168.50.1
localhost       A   127.0.0.1
ns1         A   192.168.50.3

Области DHCP, исключения и резервации

Область (scope) DHCP – это целый диапазон IP адресов, которые вы настроили на сервере DHCP,  в качестве диапазона адресов, предназначены для выдачи среди клиентов.

Например, если вы создадите область с диапазоном выдаваемых адресов 10.0.0.100-10.0.0.200, Вы можете легко обеспечить выдачу только этих адресов на Ваши рабочие станции.

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

В некоторых случаях, Вам будет необходимо предотвратить получение клиентами некоторых адресов, например, если ваша область DHCP имеет диапазон  от 10.0.0.1 до 10.0.0.100, а IP-адреса Ваших серверов находятся в диапазоне 10.0.0.1-10.0.0.10, Вам понадобится возможность  исключить эти IP адреса из области, которая выдается DHC-сервером. Такая возможность называется исключением (exclude).

Резервация(reservation) – используется в случаях, когда Вы планируете представить конкретный динамический IP-адрес определенному  клиенту DHCP. Например, в своей  области DHCP, вы хотите выделить для конкретного клиента уникальный адрес, который будет закреплен за ним, для этого Вы  можете легко создать для него резервацию, используя уникальный идентификатор — MAC-адрес (Media Access Control — представляет собой уникальный шестнадцатеричный физический адрес  сетевого адаптера).

Разрешаем доступ к DHCP на маршрутизаторе

Рассмотрим, как включить DHCP на роутере. Конфигурация сетевого протокола DHCP осуществляется посредством настроек роутера. Это означает, что юзеру необходимо предварительно войти в параметры маршрутизатора. Для того, чтобы попасть в веб-интерфейс роутера, придётся набрать в поисковой строке любого браузера 192.168.0.1.

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

Войдя в его параметры пользователю нужно обратить внимание на соответствующий раздел и убедиться в том, что доступ разрешён

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

Алгоритм работы[править]

Получение IP адресаправить

Клиент посылает в свою подсеть широковещательное сообщение DHCPDISCOVER, в котором могут указываться устраивающие клиента IP-адрес и срок его аренды. В качестве IP-адреса источника указывается 0.0.0.0, в качестве адреса назначения — 255.255.255.255. Если DHCP-сервер отсутствует в подсети, то сообщение будет передано в другие подсети агентами протокола BOOTP.

  • Получив запрос от клиента, DHCP-сервер отвечает на него сообщением DHCPOFFER

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

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

  • Получив конфигурации от серверов (их может быть несколько, если в подсети более одного DHCP-севрера), клиент отправляет широковещательное сообщение DHCPREQUEST

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

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

Получив DHCPREQUEST и убедившись, что в сообщении его идентификатор, сервер проверяет свободен ли в данный момент запрошенный адрес. Если да, то отправляет DHCPACK и вносит запись в базу, иначе отправляет DHCPNACK.

  • Получив сообщение DHCPACK, клиент обязан убедиться в уникальности IP-адреса (средствами протокола ARP) и зафиксировать суммарный срок его аренды.
    • Срок аренды: время, прошедшее между отправкой сообщения DHCPREQUEST и приемом ответного сообщения DHCPACK + срок аренды, указанный в DHCPACK.
    • Если адрес уже используется другой станцией, клиент отправляет DHCPDECLINE и начинает всю процедуру снова.

Для досрочного прекращения аренды адреса клиент отправляет серверу сообщение DHCPRELEASE.

Выбор адреса DHCP-серверомправить

Алгоритм работы DHCP-сервера при получении DHCPDISCOVER:

  • Если клиент запросил конкретный адрес, и в данный момент этот адрес свободен, то он будет отправлен клиенту.
  • Если клиент не запрашивал адрес, и адрес, закрепленный за ним в данный момент, свободен, то он будет отправлен клиенту.
  • Если ни один из предыдущих пунктов не выполнен, то адрес случайно выбирается из пула свободных адресов.
  • Если в пуле нет свободных адресов, то сервер отправляет сообщение о проблеме администратору.

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

Истечение срока аренды адресаправить

Когда срок аренды адреса подходит к концу клиент может:

  • Отправить DHCPRELEASE и начать процедуру получения адреса заново
  • Продлить аренду текущего адреса по алгоритму:
    • Когда проходит половина времени аренды адреса, клиент переходит в состояние RENEWING.
      • Клиент оправляет DHCP-серверу, выдавшему адрес, сообщение DHCPREQUEST с просьбой продлить срок аренды.
      • Получив DHCPACK, клиент пересчитывает срок аренды и продолжает работу в обычном режиме.
    • Если ответ не получен к моменту времени = 7/8 срока аренды адреса, то клиент переходит в состояние REBINDING.
      • Клиент отправляет широковещательное сообщение DHCPREQUEST со своим текущим сетевым адресом.
      • Получив DHCPACK, клиент пересчитывает срок аренды и продолжает работу в обычном режиме.
    • Если к моменту окончания аренды ответ не получен, то процедура получения адреса начинается сначала.
    • Если ответ DHCPACK придет с опозданием, но до завершения новой процедуры получения адреса, то клиент продолжает пользоваться предыдущим адресом.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *