Что такое DHCP.

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 (Dynamic Host Configuration Protocol) и зачем он вообще нужен? Эта запись как раз будет про назначение и возможности протокола DHCP, а также мы с вами рассмотрим DHCP опции и их назначение в протоколе . Как всегда, торопиться никуда не будем, сперва рассмотрим DHCP в общих чертах, а затем будем разбираться с частностями.

9.1.1 Введение

В курсах ICND1 и ICND2 протокол DHCP рассматривается очень поверхностно, да и в целом Cisco размазала информацию об этом протоколе на треки разных направлений и по разным уровням. Мы же рассмотрим DHCP довольно подробно и, пожалуй, рассмотренной информации хватит не только для того, чтобы ответить на вопросы по DHCP, которые могут встретиться на экзамене но и на вопросы, которые могут быть на экзамене CCNP R&S.

9.1.2 Зачем нужен протокол DHCP и как он связан с протоколом IP?

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

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

  1. Избавляет инженера от однотипной и монотонной работы по настройке , шлюзов, адресов DNS-серверов и других необходимых параметров для . При выполнении такой работы еще и легко ошибиться, ведь устройств может быть сотни, а то и тысячи.
  2. Протокол DHCP в какой-то мере, но не на 100%, защищает вашу сеть от такого неприятного явления как дублирование IP-адресов. При ручной настройке узлов компьютерной сети у вас может быть два подхода: либо вы ведете учет выданных IP-адресов и куда-нибудь записываете конфигурации ваших узлов, либо вы пускаете это дело на самотек и выдаете IP-адреса своим узлам, руководствуясь желанием своей левой пятки. В маленьких и очень маленьких сетях второй подход применим, а вот в больших сетях возникнут проблемы даже в том случае, когда вы будете вести строгий учет, проблемы возникнут именно с учетом, каждый новый IP-адрес в вашей учетной системе будет делать учет всё более сложным. Протокол DHCP позволяет избавиться от этого ручного учета , ведь DHCP-сервер будет запоминать те IP-адреса, которые он выдал, возможно, он будет запоминать даже кому он выдал тот или иной IP-адрес, чтобы затем выдать его вновь.

В этой теме мы будем разбираться с протоколом DHCP в связке с , хотя стоит заметить, что рассматривать DHCP без протокола IP вообще нет никакого смысла, просто дело всё в том, что DHCPv6 имеет несколько другие задачи, но это совсем другая история. Вообще, протокол DHCP, как и многие другие протоколы (например, NAT), возник из-за недостатков IPv4, дело в том, что в IPv4 нет механизма по автоматическому назначению IP-адресов на интерфейсы, а вот в IPv6 такой механизм уже имеется. То есть DHCP расширяет возможности IPv4 и делает жизнь сетевого инженера более простой и приятной , правда этому инженеру придется изучать как этот DHCP работает.

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

Протокол DHCP был стандартизован в 1993 году и является наследником протокола BOOTP, это мы увидим, когда познакомимся со структурой сообщений в DHCP, кстати говоря, по схожему принципу с DHCP работает протокол RARP, но он нам совсем неинтересен. DHCP описан в спецификации RFC 2131.

9.1.3 Режимы работы DHCP сервера

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

  1. Ручное назначение статических IP-адресов.
  2. Автоматическое назначение статических адресов.
  3. Автоматическое распределение динамических адресов.

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

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

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

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

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

9.1.4 Опции DHCP протокола и зачем они нужны? Список стандартных DHCP опций

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

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

Очевидная проблема, которая у вас может возникнуть: для подключения клиентского устройства к компьютерной сети нужна опция, с которой это устройство работать не умеет, ну вот не добавили поддержку этой опции производители и всё тут. Список стандартных DHCP опций описан в RFC 2132 . Более того, для каждой стандартной опции есть свой RFC, который описывает – зачем эта опция нужна и как она должна работать.

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

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

Для передачи опций между клиентом и сервером в DHCP пакете есть специальное поле переменной длинны , которое так и называется – options. Это поле имеет переменную длину, но при этом все остальные поля DHCP сообщения фиксированные. Если учесть, что и DHCP-клиент, и DHCP-сервер должны уметь обработать пакет размером 576 байт (576 байт взято не с потолка, а из ограничений некоторых старых протоколов), а также знать размер других полей в пакете, то нетрудно будет посчитать, что поле options имеет минимальную длину 340 байт. При этом самое поле options начинается с фиксированной последовательности Magic Cookie, которая выглядит так: 0×63825363. Можно сказать и по-другому, Magic Cookie – это четыре байта со значениями 99, 130, 83, 99. Как это не назови, но по этой последовательности устройство понимает, что фиксированная часть пакета закончилась и начались DHCP опции .

Кстати говоря, в DHCP пакете есть еще два необязательных поля, то есть в пакете есть пространство, вместо которого можно передавать опции – это поля file (64 байта) и snmae (128 байт). Что еще можно добавить про опции DHCP? Каждая стандартная опция имеет уникальный номер от 0 до 255, вернее правильнее будет говорить код, а не номер. У каждой опции есть размер, при этом у некоторых опций определен не строго фиксированный размер, а какие-то границы, в которых опция может плавать. Более подробную информацию о DHCP опциях вам придется смотреть в специальных RFC, дело всё в том, что некоторые опции должны начинаться, например, с нуля, некоторые опции нельзя использовать вместе, есть еще ряд других особенностей, в которые углубляться нам смысла сейчас нет.

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

9.1.6 Список самых часто используемых DHCP опции

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

Код Название Длина Описание опции
1 Subnet Mask 4 Маска подсети
3 Router x4 Перечисление доступных маршрутизаторов. Или проще говоря, IP-адреса доступных шлюзов по умолчанию, в сети их может быть несколько.
6 Name Server x4 Перечисление доступных DNS серверов
12 Host Name 1+ Символьное имя узла
23 Default IP TTL 1 Позволяет задать TTL, которое обязан будет использовать клиент при отправке пакетов в сеть. При помощи этой опции можно ограничить доступ пользователям в сеть Интернет.
26 Interface MTU 2 Если вам нужно чтобы все узлы использовали одинаковый MTU, то вот опция.
33 Static IP Route x8 Вы же помните, что когда-то сети были классовыми, изначально это поле было для выдачи маршрутов узлам в классовых сетях, поэтому для маски здесь место не нашлось. Сейчас, в эпоху VLSM и CIDR, при помощи этой опции можно выдавать узлам статические маршруты к удаленным сетям с маской /32.
35 ARP Cache Timeout 4 У протокола ARP есть кэш, каждая операционная система хранит ARP кэш разное время, чтобы упорядочить этот хаос есть 35 опция DHCP, которая заставляет все узлы хранит ARP-записи одинаковое количество времени.
50 Requested IP Address 4 Эту опцию использует клиент для того, чтобы сообщить серверу о том, какой IP-адрес он хочет получить.
55 Parameter Request List 1+ При помощи этой опции DHCP-клиент сообщает серверу список опций, которые ему хочется получить.
61 Client Identifier 2+ DHCP-сервер ведет сопоставление IP и MAC-адресов, он запоминает какому мак-адресу какой IP был назначен. Но вместо мак-адресов можно использовать идентификатор клиента.
66 TFTP Server Name 1+ Название опции говорит само за себя.
82 Я не знаю, как эта опция называется, а в RFC смотреть лень. Все инженеры вокруг меня просто говорят восемьдесят вторая опция. С этой опцией мы будем знакомиться отдельно, кратким описанием тут не отделаешься.
121 Classless Route 5+ Этой опцией можно выдавать маршруты по умолчанию в бесклассовых сетях.
150 TFTP Server IP Address 4 Тут тоже всё ясно из названия.
255 End 0 Если опции в пакете есть, то эта опция является обязательной, она означает, что других опций уже не будет и это конец DHCP пакета.

9.1.7 Выводы

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

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

Кажется совершенно очевидным, что поддержка этого протокола была реализована в операционной системе Windows Server 2003. В составе Windows Server 2003 реализован как DHCP-клиент (который устанавливается по умолчанию), так и DHCP-сервер (который может быть установлен и сконфигурирован администратором при необходимости). Реализованная в Windows 2000 Server поддержка протокола DHCP обладает характеристиками, перечисленными ниже.

  • Интеграция с DNS. DNS-серверы обеспечивают разрешение имен для сетевых ресурсов и тесно связаны со службой DHCP. DHCP-серверы и DHCP-клиенты могут осуществлять динамическую регистрацию выдаваемых IP-адресов и ассоциированных с ними доменных имен в базе данных DNS-сервера. При этом в базе данных DNS-сервера создаются ресурсные записи типа PTR (указатель) и А (адрес).
  • Улучшенное управление и мониторинг. Новая возможность обеспечивает уведомление об уровне использования пула IP-адресов. Оповещение производится при помощи соответствующего значка либо при помощи передачи сообщения. Сервер DHCP поддерживает SNMP и MIB, что обеспечивает графическое представление статистических данных. Это помогает администратору отслеживать состояние сети, например, число доступных и занятых адресов, число арендных договоров, обрабатываемых за секунду, и т. п.
  • Распределение групповых адресов. DHCP-сервер может быть использован для выделения клиентам групповых (multicast) адресов. В последнее время появляется большое количество корпоративных приложений, требующих использования групповых адресов (например, видео- или аудио-конференции).
  • Защита от подмены серверов. Одним из обязательных условий функционирования DHCP-сервера является требование его авторизации в каталоге Active Directory. При каждом запуске служба DHCP-сервера пытается обнаружить в каталоге запись, подтверждающую авторизацию службы. Если подобная запись не найдена, служба сервера не запускается.
  • Автоматическая настройка клиентов. Служба DHCP-клиента в случае отсутствия в сети DHCP-сервера может выполнить необходимую настройку самостоятельно. Используя для работы временную конфигурацию стека протоколов TCP/IP, клиент продолжает попытки связаться с DHCP-сервером в фоновом режиме каждые 5 минут. При этом автоматическое назначение адреса всегда прозрачно для пользователей. Адреса для такого рода клиентов выбираются из диапазона частных сетевых адресов TCP/IP, которые не используются в Интернете.
  • Новые специализированные опции и поддержка классов опций. Администратор может создавать собственные классы DHCP (используемые для конфигурации клиентов) в соответствии с необходимостью. Механизм пользовательских классов позволяет применять DHCP в заказных приложениях для сетей масштаба предприятия. Классы поставщиков (vendor classes) могут использоваться для настройки различных функций сетевого аппаратного обеспечения.

Следует также отметить функциональные возможности, которые были впервые добавлены в реализацию службы DHCP в Windows Server 2003.

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

В статье я хочу рассмотреть использование 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 содержит зашифрованное название – протокол динамической настройки узла, именно это он и выполняет. Его роль в подключении ключевая, при помощи обмена данных, клиент получает уникальные параметры, затем они применяются и используются в качестве моста. Применяется в большинстве TCP/IP сетей и уравнивает нагрузку на каналы, регулируя клиентский доступ.

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

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

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

Как включить DHCP на Windows?

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

  • Пуск и следуйте в «Панель управления»;
  • Теперь кликните по плитке «Администрирование»;

  • ЛКМ на «Службы»;
  • Найдите элемент с названием «DHCP клиент» и произведите двойной клик;

  • Установите «Автоматический» запуск и примените.

Указание динамических параметров

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

  • Пуск и выберите «Панель управления»;
  • Теперь найдите «Центр управления сетями и общим доступом» при этом должен использоваться стандартный вид панели;
  • Кликните по ссылке «Изменение параметров адаптера»;

  • ПКМ на элемент и нажмите «Свойства»;
  • Двойной клик по TCP/IPv4 и установите флажки возле получить DNS/IP адрес автоматически;

  • Затем вернитесь назад и нажмите «Настроить»;
  • На вкладке «Управление электропитанием» снимите все галочки и сохраните.

Теперь DHCP Windows 10 или любой иной версии работает корректно, получая все параметры автоматически, что исключает различные проблемы с сетью. Также, если вас интересует, как отключить DHCP, то вам требуется выполнить действия в точности, как в инструкции, только замените параметры на необходимые вам, а именно: в типе запуска клиента нужно установить «Вручную» или «Отключено», а в параметрах укажите статические адреса DNS и IP. Лучше указывать и запасные адреса, если они существуют, чтобы в случае отсутствия ответа, можно было обратиться к другому.

Настройка DHCP сервера в роутере

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

Если у вас есть некоторый диапазон выделенных IP-адресов и вы используете свыше 2-х компонентов для коннекта, то имеет смысл задуматься над установкой сервера при помощи Wi-Fi маршрутизатора. Чтобы перейти в DHCP интерфейс роутера вам необходимо:

  • Перейдите по адресу 192.168.0.1 (иногда используется другой) в браузере;
  • Введите пароль, стандартный admin – admin, найти его можно в документации;
  • Теперь вы сможете увидеть специальный раздел DHCP, иногда он не вынесен отдельно, а находится в разделе Network или LAN;

  • Выберите параметр «DHCP Server» и включите его;
  • Задайте диапазон используемых и назначаемых адресов и время аренды.

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

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

Если у Вас остались вопросы по теме «Что такое DHCP и для чего он используется?», то можете задать их в комментариях


if(function_exists("the_ratings")) { the_ratings(); } ?>