Dhcp где находится. Настраиваем соединение по протоколу DHCP

В статье я хочу рассмотреть использование DHCP-сервера на базе маршрутизатора Cisco в корпоративной сети…

1. Теория

Как следует из названия, протокол DHCP (Dynamic Host Configuration Protocol) используется для динамической конфигурации параметров сетевых устройств.

Работа протокола DHCP начинается с того, что клиент, которому необходима динамическая конфигурация, шлет запрос DISCOVERY . Выглядит он следующим образом:

Frame 34 (342 bytes on wire, 342 bytes captured)
Ethernet II, Src: 02:00:4c:4f:4f:50 (02:00:4c:4f:4f:50), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
#МАС-адрес получателя широковещательный
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
#IP-адрес также широковещательный
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
#UDP-порты 68 и 67 определяют клиента и сервер
Client IP address: 0.0.0.0 (0.0.0.0)
#указывается текущий адрес клиента, может содержать не нулевое значение если, например, у клиента есть ip-адрес и он продлевает время его аренды
Your (client) IP address: 0.0.0.0 (0.0.0.0)
#в этом поле указывается адрес, выдаваемый DHCP-сервером при ответе
Next server IP address: 0.0.0.0 (0.0.0.0)
#адрес самого DHCP-сервера
Relay agent IP address: 0.0.0.0 (0.0.0.0)
#адрес Relay-агента, если имеется (будет рассмотрен далее)
Client MAC address: 02:00:4c:4f:4f:50 (02:00:4c:4f:4f:50)
#МАС-адрес клиента
Option: (t=50,l=4) Requested IP Address = 192.168.13.2
#опция 50 имеет длину 4 байта, в ней указывается IP-адрес, который хотел бы получить клиент по возможности
Option: (t=12,l=8) Host Name = "MainHost"
#опция 12 имеет длину 8 байт, в ней указывается текущее имя хоста, которое может быть изменено после конфигурации
Option: (t=55,l=11) Parameter Request List
#опция 55, в ней содержится список запрашиваемых клиентом параметров, в данной ситуации клиент запрашивает 11 параметров, каждому из которых соответствует номер опции

В ответ сервер шлет предложение OFFER , в котором указывает адрес, который он назначает клиенту, а также заполняет опции соответствующими значениями:

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

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

Option: (t=54,l=4) DHCP Server Identifier = 192.168.13.1

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

Следующим шагом является подтверждение запроса (сообщение ACK ) со стороны сервера. Сервер также широковещательно рассылает подтверждение, но в теле сообщения явным образом указывает МАС-адрес клиента:

Client MAC address: 02:00:4c:4f:4f:50 (02:00:4c:4f:4f:50)

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

После получения сообщения DISCOVERY (строка 1), сервер выбирает первый адрес из пула (в данном случае 192.168.13.2) и отправляет на него ARP-запрос (строка 2)

Так как компьютер с таким адресом существует в сети, сервер получает ответ (строка 3).

Чтобы убедиться в наличии в сети узла с адресом 192.168.13.2 сервер отправляет на этот адрес Echo-Request (строка 4) и получает ответ (строка 5).

В таком случае, сервер берет следующий свободный адрес из пула (в данном случае 192.168.13.3) и отправляет на него ARP-запрос (строка 6)

Не дождавшись ответа (прошло почти 15 сек.) сервер считает адрес свободным и предлагает его клиенту в сообщении REQUEST (строка 7).

Клиент, подтвердив получение адреса (строка 8) и дождавшись подтверждения от сервера (строка 9), также проверяет, не занят ли кем-то выданный адрес.

Это делается путем отправки ARP-запросов клиентом (строки 10-12), если ответ на запрос не пришел, клиент назначает себе на интерфейс полученный адрес.

2. Базовая настройка на маршрутизаторе Cisco

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

!в режиме глобальной конфигурации определим адреса, которые будут исключены из пула, в данном случае это адреса 192.168.13.1 и 192.168.13.10...192.168.13.15
ip dhcp excluded-address 192.168.13.1
ip dhcp excluded-address 192.168.13.10 192.168.13.15
!создадим пул адресов с именем lan_pool1
ip dhcp pool lan_pool1
!определим подсеть, из которой будут выдаваться адреса
network 192.168.13.0/24
!определим адрес шлюза по-умолчанию
ip default-router 192.168.13.1
!определим адреса DNS-серверов
dns-server 192.168.13.10 192.168.13.11
!определим имя домена
domain-name example.ua
!определим время аренды адреса 5 дней (по-умолчанию 1 день)
lease 5

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

На этом пока все, спасибо за внимание и за инвайт:). В дальнейшем планирую подробнее описать работу DHCP-Relay и ряд специфических опций.

DHCP (Dynamic Host Configuration Protocol - протокол динамической конфигурации узла) - это сетевой протокол, позволяющий компьютерам автоматически получать IP- адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок.

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

    Прохождение DHCP запросов через iptables . Правила для Правила iptables : $IPT -A INPUT -i $LAN195 -p udp -m multiport --port 67:68 -j ACCEPT $IPT -A INPUT -p udp -m multiport --port 67:68 -j DROP

Возможности сервера DHCP

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

    Шлюзы по умолчанию. Если в вашей сети имеется несколько Интернет-каналов (для обеспечения бесперебойной работы), вы можете назначить хостам несколько шлюзов и порядок их предпочтения. В случае выхода одного из каналов из строя, переключение на резервный канал произойдет автоматически, без вашего вмешательства. Это же дает возможность организовать простейшую балансировку нагрузки между каналами, назначив по DHCP одной группе хостов один маршрутизатор в качестве шлюза, а другой группе – второй.

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

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

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

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

    > man dhcp-options # описаны выражения допустимые в конфигурационном файле > man dhcp-eval > uname -a FreeBSD ns.com.ua 7.2-RELEASE-p2 FreeBSD 7.2-RELEASE-p2 #0: Wed Jun 24 00:57:44 UTC 2009 [email protected]:/usr/obj/usr/src/sys/GENERIC i386 > cd /usr/ports/net/isc-dhcp31-server > make install clean > cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf > ee dhcpd.conf # dhcpd.conf # # Sample configuration file for ISC dhcpd # # Общие опции для всех поддерживаемых сетей... option domain-name "example.org"; # домен по умолчанию option domain-name-servers 4.2.2.2, 208.67.222.222; #сервера DNS default-lease-time 1200; # время аренды (по умолчанию 600) max-lease-time 7200; # максимальное время аренды # Use this to enble / disable dynamic dns updates globally. #ddns-update-style none; # Является ли сервер авторитативным - ответственным DHCP сервером. authoritative; # ad-hoc DNS update scheme - set to "none" to disable dynamic DNS updates. # Способ динамического обновления DNS. Выключаем если используется статический DNS - в большинстве # сетей так и есть. Иначе нужно конфигурировать сервер DNS (например bind) ddns-update-style none;

    Для работы параметра log-facility нужно настроить syslog.conf и ротацию лога в newsyslog.conf .

    # Источник сообщений для записи логов через syslogd log-facility local7; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 10.152.187.0 netmask 255.255.255.0 { } # This is a very basic subnet declaration. subnet 10.26.95.0 netmask 255.255.255.0 { # подсеть из которой будут выдаваться адреса range 10.26.95.1 10.26.95.240; # интервалы ip адресов на выдачу клиентам option domain-name-servers 10.26.95.253; option routers 10.26.95.253; # gateway (шлюз по умолчанию) для клиента #option netbios-name-servers 192.168.1.51; # адрес сервера WINS (если есть) #option domain-name-servers 192.168.1.51; # адрес DNS сервера AD #option domain-name "office.mydomen.ru"; # полное имя домена AD } # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. #привязка постоянных IP к MAC адресу сетевой карты хоста host darkfire { hardware ethernet 00:15:f2:4b:ad:5c; # MAC адрес сетевой карты хоста fixed-address 10.26.95.251;# ip адрес, который нужно присвоить этому хосту } host user1 { hardware ethernet 00:00:1c:d3:9e:40; fixed-address 10.26.95.10; } host user2 { hardware ethernet 00:14:2a:1c:16:31; fixed-address 10.26.95.11; }

    Прописываем в rc.conf строки

    Dhcpd_enable="YES" dhcpd_flags="-q" # отключаем вывод копирайта и прочего при старте dhcpd dhcpd_ifaces="rl0 vr0" # сетевой интерфейс на котором будет работать dhcpd. Несколько интерфейсов указываются через пробел.

    Запускаем и пользуемся

    > /usr/local/etc/rc.d/isc-dhcpd start

    Файлы

    • /usr/local/sbin/dhcpd

    dhcpd скомпонован статически и расположен в каталоге /usr/local/sbin. Страницы справочной системы dhcpd(8), устанавливаемые портом, содержат более полную информацию о dhcpd.

      /usr/local/etc/dhcpd.conf

    dhcpd требует наличия конфигурационного файла, /usr/local/etc/dhcpd.conf, до того, как он будет запущен и начнёт предоставлять сервис клиентам. Необходимо, чтобы этот файл содержал все данные, которая будет выдаваться обслуживаемым клиентам, а также информацию о работе сервера. Этот конфигурационный файл описывается на страницах справочной системы dhcpd.conf(5), которые устанавливаются портом.

      /var/db/dhcpd.leases или /var/db/dhcpd/dhcpd.leases

    Сервер DHCP ведёт базу данных выданной информации в этом файле, который записывается в виде протокола. Страницы справочной системы dhcpd.leases(5), устанавливаемые портом, дают гораздо более подробное описание. В dhcpd.leases заносится информация только динамически выданных IP адресах, если IP статистический (привязан к МАС) - такая информация в dhcpd.leases заноситься не будет. Полный сбор статистики можно осуществлять через dhcpd-snmp:

      /usr/local/sbin/dhcrelay

    dhcrelay используется в сложных ситуациях, когда сервер DHCP пересылает запросы от клиента другому серверу DHCP в отдельной сети. Если вам нужна такая функциональность, то установите порт net/isc-dhcp3-server. На страницах справочной системы dhcrelay(8), которые устанавливаются портом, даётся более полное описание.

    ALLOW and DENY

    Параметры allow и deny используются для контроля над поведением демона dhcp в отношении различных видов запросов.

      Ключевое слово unknown-clients allow unknown-clients; deny unknown-clients;

    Параметр unknown-clients используется что бы сообщить серверу как поступать с неизвестными клиентами. По умолчанию выдача адресов неизвестным клиентам разрешена.

      Ключевое слово bootp allow bootp; deny bootp;

    Параметр bootp сообщает серверу dhcp обрабатывать или нет bootp-запросы. По умолчанию bootp-запросы разрешены.

      Ключевое слово booting allow booting; deny booting;

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

    Настройка DHCP -клиента встроенного в OС FreeBSD

    Ручной запуск (в примере ниже - вывод команды говорит о неудачном запуске DHCP -клиента):

    # dhclient rl0 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 7 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 11 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 9 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 10 DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12 No DHCPOFFERS received. No working leases in persistent database - sleeping.

    Настраиваем dhclient.conf

    По умолчанию dhclient.conf в FreeBSD пустой (в нем ссылка только на man 5 dhclient.conf ). В обычном случае и при таком конфиге все работает. Но если возникают стоит изменить настройки по умолчанию.

    Читаем man, копируем приведенный пример в наш dhclient.conf

    # cp /etc/dhclient.conf /etc/dhclient.conf.orig # man 5 dhclient.conf ... DHCLIENT.CONF(5) FreeBSD File Formats Manual DHCLIENT.CONF(5) NAME dhclient.conf -- DHCP client configuration file DESCRIPTION The dhclient.conf file contains configuration information for dhclient(8), the Internet Software Consortium DHCP Client. ... EXAMPLES The following configuration file is used on a laptop which has an IP alias of 192.5.5.213, and has one interface, ep0 (a 3Com 3C589C). Boot- ing intervals have been shortened somewhat from the default, because the client is known to spend most of its time on networks with little DHCP activity. The laptop does roam to multiple networks. timeout 60; retry 60; reboot 10; select-timeout 5; initial-interval 2; reject 192.33.137.209; interface "ep0" { send host-name "andare.fugue.com"; send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; send dhcp-lease-time 3600; supersede domain-name "fugue.com rc.vix.com home.vix.com"; prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; script "/etc/dhclient-script"; media "media 10baseT/UTP", "media 10base2/BNC"; } alias { interface "ep0"; fixed-address 192.5.5.213; option subnet-mask 255.255.255.255; } This is a very complicated dhclient.conf file - in general, yours should be much simpler. In many cases, it is sufficient to just create an empty dhclient.conf file - the defaults are usually fine. SEE ALSO dhclient.leases(5), dhcpd.conf(5), dhcp-options(5), dhclient(8), dhcpd(8) ...

    Окружение: 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

    В конец файла rsyslog.conf добавим строку

    # 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

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

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

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

История

Стандарт протокола DHCP был принят в октябре 1993 года . Действующая версия протокола (март 1997 года) описана в RFC 2131 . Новая версия DHCP, предназначенная для использования в среде IPv6 , носит название DHCPv6 и определена в RFC 3315 (июль 2003 года).

Распределение IP-адресов

Протокол DHCP предоставляет три способа распределения IP-адресов :

  • Ручное распределение. При этом способе сетевой администратор сопоставляет аппаратному адресу (для Ethernet сетей это MAC-адрес) каждого клиентского компьютера определённый IP-адрес. Фактически, данный способ распределения адресов отличается от ручной настройки каждого компьютера лишь тем, что сведения об адресах хранятся централизованно (на сервере DHCP), и потому их проще изменять при необходимости.
  • Автоматическое распределение. При данном способе каждому компьютеру на постоянное использование выделяется произвольный свободный IP-адрес из определённого администратором диапазона.
  • Динамическое распределение. Этот способ аналогичен автоматическому распределению, за исключением того, что адрес выдаётся компьютеру не на постоянное пользование, а на определённый срок. Это называется арендой адреса . По истечении срока аренды IP-адрес вновь считается свободным, и клиент обязан запросить новый (он, впрочем, может оказаться тем же самым). Кроме того, клиент сам может отказаться от полученного адреса.

Некоторые реализации службы DHCP способны автоматически обновлять записи DNS , соответствующие клиентским компьютерам, при выделении им новых адресов. Это производится при помощи протокола обновления DNS, описанного в RFC 2136 .

Опции DHCP

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

Некоторыми из наиболее часто используемых опций являются:

  • IP-адрес маршрутизатора по умолчанию;
  • адреса серверов DNS ;
  • имя домена DNS .

Некоторые поставщики программного обеспечения могут определять собственные, дополнительные опции DHCP.

Устройство протокола

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

Структура сообщений DHCP

Все сообщения протокола DHCP разбиваются на поля, каждое из которых содержит определённую информацию. Все поля, кроме последнего (поля опций DHCP), имеют фиксированную длину.

Поле Описание Длина (в байтах)
op Тип сообщения. Например может принимать значения: BOOTREQUEST (1, запрос от клиента к серверу) и BOOTREPLY (2, ответ от сервера к клиенту). 1
htype Тип аппаратного адреса. Допустимые значения этого поля определены в RFC 1700 «Assigned Numbers». Например, для MAC-адреса Ethernet 10 Мбит/с это поле принимает значение 1. 1
hlen Длина аппаратного адреса в байтах. Для MAC-адреса Ethernet - 6. 1
hops Количество промежуточных маршрутизаторов (так называемых агентов ретрансляции DHCP ), через которые прошло сообщение. Клиент устанавливает это поле в 0. 1
xid Уникальный идентификатор транзакции, генерируемый клиентом в начале процесса получения адреса. 4
secs Время в секундах с момента начала процесса получения адреса. Может не использоваться (в этом случае оно устанавливается в 0). 2
flags Поле для флагов - специальных параметров протокола DHCP. 2
ciaddr IP-адрес клиента. Заполняется только в том случае, если клиент уже имеет собственный IP-адрес и способен отвечать на запросы ARP (это возможно, если клиент выполняет процедуру обновления адреса по истечении срока аренды). 4
yiaddr Новый IP-адрес клиента, предложенный сервером. 4
siaddr IP-адрес сервера. Возвращается в предложении DHCP (см. ниже). 4
giaddr IP-адрес агента ретрансляции, если таковой участвовал в процессе доставки сообщения DHCP до сервера. 4
chaddr Аппаратный адрес (обычно MAC-адрес) клиента. 16
sname Необязательное имя сервера в виде нуль-терминированной строки . 64
file Необязательное имя файла на сервере, используемое бездисковыми рабочими станциями при удалённой загрузке. Как и sname , представлено в виде нуль-терминированной строки. 128
options Поле опций DHCP . Здесь указываются различные дополнительные параметры конфигурации. В начале этого поля указываются четыре особых байта со значениями 99, 130, 83, 99 («волшебные числа»), позволяющие серверу определить наличие этого поля. Поле имеет переменную длину, однако DHCP-клиент должен быть готов принять DHCP-сообщение длиной в 576 байт (в этом сообщении поле options имеет длину 340 байт). переменная

Пример процесса получения адреса

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

Обнаружение DHCP

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

Клиент заполняет несколько полей сообщения начальными значениями:

  • В поле xid помещается уникальный идентификатор транзакции , который позволяет отличать данный процесс получения IP-адреса от других, протекающих в то же время.
  • В поле chaddr помещается аппаратный адрес (MAC-адрес) клиента.
  • В поле опций указывается последний известный клиенту IP-адрес. В данном примере это 192.168.1.100. Это необязательно и может быть проигнорировано сервером.

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

Предложение DHCP

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

Это сообщение DHCP-сервер отправляет хосту, пославшему DHCPDISCOVER, на его MAC, при определенных обстоятельствах сообщение может распространяться как широковещательная рассылка. Клиент может получить несколько различных предложений DHCP от разных серверов; из них он должен выбрать то, которое его «устраивает».

Запрос DHCP

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

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

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

Вид сообщений

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

Обнаружение DHCP
DHCPDISCOVER
UDP Src=0.0.0.0 Dest=255.255.255.255
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: обнаружение DHCP
Предложение DHCP
DHCPOFFER
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: предложение DHCP
Опция DHCP 1: маска подсети 255.255.255.0
Опция DHCP 3: маршрутизатор 192.168.1.1
Запрос DHCP
DHCPREQUEST
UDP Src=0.0.0.0 Dest=255.255.255.255
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: запрос DHCP
Опция DHCP 50: запрос адреса 192.168.1.100
Опция DHCP 54: DHCP-сервер 192.168.1.1
Подтверждение DHCP
DHCPACK
UDP Src=192.168.1.1 Dest=255.255.255.255
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SECS FLAGS
0x0000 0x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0x00000000
GIADDR
0x00000000
CHADDR
0x0000001d6057ed80
SNAME
(пустое поле)
FILE
(пустое поле)
OPTIONS
Опция DHCP 53: подтверждение DHCP
Опция DHCP 1: маска подсети 255.255.255.0
Опция DHCP 3: маршрутизатор 192.168.1.1
Опция DHCP 51: срок аренды IP-адреса - 1 день
Опция DHCP 54: DHCP-сервер 192.168.1.1

Прочие сообщения DHCP

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

Отказ DHCP

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

Отмена DHCP

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

Освобождение DHCP

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

Информация DHCP

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

Реализации

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

Примечания

См. также

Ссылки

  • RFC 2131 - стандарт DHCP.
  • RFC 2132 - список стандартных опций DHCP.
  • RFC 2136 - DNS UPDATE.
  • RFC 3315 - стандарт DHCPv6.

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

Windows Server включает в себя службы DHCP – сервера, которые являются дополнительными сетевыми компонентами. Вся линейка Microsoft Windows, начиная с Winodws 98 и заканчивая Windows 8, может выступать в роли клиента DHCP – Сервера.

На данный момент DHCP – Сервер также используется в сетевых коммуникаторах, роутерах и Wi-Fi точках, что позволяет настроить данное оборудование для автоматической выдачи IP – адреса внутри - сетевых клиентов.

Зачем использовать DHCP?

Каждое устройство в локальной сети должно иметь уникальный IP – адрес для доступа к сети и ее ресурсам. Без DHCP – Сервера для каждого нового компьютера или компьютера перемещаемого из одной подсети в другую, настройки IP – адреса нужно производить в ручную.
С DHCP – Сервером все эти процессы автоматизированы и управляются централизованно. DHCP поддерживает пул IP – адресов который содержит статические и динамические IP – адреса.

Статический IP – адрес привязывается к определенному компьютере в сети по средствам MAC – адреса сетевой карты.

Динамический IP – адрес арендуется на определенный срок компьютером. По истечению срока аренды IP – адрес возвращается на пул DHCP – Сервера для последующего перераспределения.

Установка DHCP на Windows Server.

  • Для установки службы DHCP выполните следующие:
  • Нажмите ПУСК и выберете Панель управления ;
  • Откройте Установка и удаление программ в панели управления;
  • Нажмите кнопку Установка компонентов Windows в панели установка и удаление программ ;
  • В списке Компоненты Windows выберите Сетевые службы и нажмите кнопку Состав ;
  • В открывшемся окне Сетевые службы установите флажок напротив элемента DHCP и нажмите кнопку OK ;
  • После копирования файлов и установки службы DHCP система попросит вас перезагрузится.

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

  • Нажмите ПУСК и выберете Панель управления ;
  • В Панели управления выберите Администрирование;
  • В Администрирование выберите DHCP;
  • В дереве консоли щелкните правой кнопкой мыши сервер DHCP, для которого необходимо создать новую область DHCP, и выберите пункт Создать область ;
  • В Мастере создания новой области нажмите кнопку Далее , а затем введите имя и описание области. Имя может выбираться произвольным образом. Нажмите кнопку Далее ;
  • Введите диапазон адресов, входящих в область. Поскольку эти адреса будут присваиваться клиентам, они должны быть действительными внутри данной сети и не использоваться в данный момент. При необходимости можно ввести и использовать новую маску подсети. Нажмите кнопку Далее ;
  • Введите IP –адреса которые были статически присвоены некоторым компьютерам в сети, и которые следует исключить из указанного диапазона заданного ранее. Нажмите кнопку Далее ;
  • Введите срок действия аренды IP-адреса из данной области (дней, часов и минут). Нажмите кнопку Далее и выберите пункт Да, настроить эти параметры сейчас , если вам нужно продолжить работу мастера и настроить основные параметры DHCP. Нажмите кнопку Далее ;
  • Введите IP-адрес основного шлюза, который должен использоваться клиентами при получении адреса из данной области. Нажмите Добавить для включения адреса шлюза по умолчанию в список и щелкните кнопку Далее ;
  • Если в сети уже имеется сервер DNS, введите доменное имя вашей организации в поле Родительский домен . Введите имя сервера DNS и нажмите кнопку Сопоставить , чтобы проверить способность сервера DHCP установить связь с сервером DNS и определить его адрес. Нажмите кнопку Добавить , чтобы включить этот сервер в список серверов DNS, назначенных клиентам DHCP. Нажмите кнопку Далее и выполните те же действия еще раз, если в сети имеется сервер WINS (Windows Internet Naming Service), указав его имя и IP-адрес. Нажмите кнопку Далее ;
  • Щелкните Да, я хочу активировать эту область сейчас , чтобы активировать область и разрешить выделение адресов из нее клиентам, и нажмите кнопку Далее ;
  • Нажмите кнопку Готово ;
  • В дереве консоли выделите имя сервера и выберите из меню Действия команду Авторизовать ;

На данном этапе ваш DHCP сервер полностью функционирует.

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

DHCP - это что такое?

Разберемся в этом вопросе. Во избежание ошибок при адресации был реализован протокол динамического конфигурирования хостов (DHCP). Это функция, которая осуществляет динамическую раздачу сетевых настроек подключившимся клиентским машинам. Если на этих устройствах в настройках стоит параметр «получать IP-адрес только с DHCP сервера» и включена служба DHCP, то вся ответственность за правильную настройку сетевых параметров на клиентских компьютерах передается DHCP-серверу. Это значительно снижает стоимость поддержки и управления сетью, а также помогает избежать ошибок в раздаче адресов. Служба, включающая DHCP, по умолчанию запускается автоматически при включении любого устройства с поддержкой интерфейсов проводной или беспроводной сети. Например, на планшетах или телефонах достаточно включить Wi-Fi и среди найденных устройств, раздающих интернет, найти свое и подключиться к нему. При этом автоматическая раздача адресов исключает дублирование IP и, как следствие, помогает избежать конфликтов сети.

Как происходит раздача адресов

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

Параметры, выданные сервером для клиентского устройства, имеют ограниченный настраиваемый срок действия, у которого есть свое название - «время аренды». Адреса, выдаваемые сервером, анализируются на совпадение с действующими адресами с неистекшим временем аренды, поэтому дублирование адресов исключается. Обычно ставится срок аренды небольшой - от нескольких часов до 4-6 дней. По истечении этого срока устройство повторяет запрос к серверу и получает от него этот же адрес (если он еще свободен) или любой свободный.

Настройки клиента для получения автоматических параметров сети в ОС Windows

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

Настройка DHCP в Windows 7 устанавливается аналогично, но местонахождение свойств адаптеров немного отличается от Windows XP. Так же заходим в Пуск - Панель управления - Центр управления сетями и общим доступом. Выбираем в левом меню пункт «Изменение параметров адаптера». Далее - аналогично вышесказанному по настройкам в Windows XP.

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

На Linux- или Android-устройствах подключение при развернутом в сети DHCP-сервере проблем не составляет никаких. Достаточно только включить сетевой интерфейс (проводной или беспроводной), подождать, пока пройдет обмен данными между устройством и сервером DHCP и убедиться, что сетевые настройки получены и применены успешно. Службы DHCP практически на всех устройствах включены по умолчанию.

Если соединения не произошло, то необходимо проверить статус автоматического приема адресов. Например, на ОС Android для этого необходимо зайти в Настройки - Беспроводныве сети - Настройки Wi-Fi - Дополнительно и убедиться в том, что опция "использовать статический IP-адрес" отключена.

Данные, передаваемые DHCP

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

Основные параметры DHCP в пакете, кроме IP-адреса и маски, это 3 (Gateways), 6 Servers), 44 (NBT Name Servers), 46 (NBT Node Type). Эти параметры групповые, то есть могут иметь несколько значений. Например, может быть несколько адресов шлюзов или DNS-серверов. Значения опций конфигурируются в настройках DHCP-сервера.

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

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

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

Домашний DHCP-сервер

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

Настройка автоматической адресации на роутере

Для настройки автоматической раздачи адресов домашним устройствам необходимо подсоединить роутер к компьютеру (ноутбуку) сетевым кабелем. В любом браузере прописываем адрес роутера (обычно это 192.168.0.1). В предложенные поля запроса логина и пароля по умолчанию вводим «admin» (часто эти данные указаны в руководстве по эксплуатации роутера). В результате увидим меню Заходим в разделы Lan или Network (названия могу отличаться) и находим подменю с настройками DHCP. Как включить на роутере раздачу адресов? Просто поставив галочку напротив строчки enable DHCP и перезагрузим роутер.

Конфигурирование DHCP роутера

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

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

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