Dhcp сервер что это
Dhcp сервер что это
DHCP-сервер: что это такое, для чего нужен, настройка на роутере и компьютере
Всем привет! Начнем, пожалуй, с вопроса – а что же такое DHCP, и для чего он нужен? Давайте разберем на конкретном примере. Почти у каждого дома есть Wi-Fi роутер (маршрутизатор), к которому можно подключить компьютер, телефон, планшет, телевизор, сетевой принтер или даже камеру видеонаблюдения. Подключить можно как по Wi-Fi, так и по сетевому кабелю.
В общем любое устройство, на котором есть специальный сетевой порт или Wi-Fi адаптер. К примеру, у нас есть общага, где студенты подключили три устройства к роутеру:
Роутер также выполняет роль шлюза – ведь он подключен одновременно к сети провайдера (интернету) и создает вашу домашнюю (локальную) сеть. Чтобы получить доступ к интернету, каждое из этих устройств должно отправить запрос на роутер. В ответ роутер также должен отправить ответ. Но сам ответ должен прийти нужному адресату – и вот для этих целей используются IP адреса. Все как на почте, нет адреса – некуда отправлять пакет с информацией.
DHCP сервер автоматически назначает адреса всем подключенным устройствам:
Если говорить простыми словами, то DHCP – это специальный протокол, который используется в сетях, позволяющий автоматически назначать IP адреса подключенным устройствам. В данном примере мы рассмотрели IPv4 DHCP адресацию. Но есть также и IPv6 адресация, которая используется немного реже. Чуть ниже я немного шире раскрою это понятие, а также расскажу, где находится DHCP клиент и сервер в домашней среде.
Ищущим знаний и мудрости советую почитать дополнительные статьи про:
Виды IP и DHCP
Чаще всего DHCP на роутере выдает адреса на какое-то время, то есть когда данное время пройдет, адрес обновится на другой. При этом IP становится динамическим (как настройка самого сервера). В более редких случаях адреса выдаются на постоянной основе и существуют всегда – тогда такие IP называются постоянными или статическими.
Также администратор может прописать адрес вручную на самом устройстве: компьютере, ноутбуке или телефоне. Или прописать статический IP в самом роутере. Так часто делают в крупных организациях, чтобы уменьшить риск потери пакетов из-за резкой смены IP адресов.
Принцип действия
IP адресация
В сетевой адресации есть также такое понятие как «SCOPE», когда с помощью IP адресации разделяются сегменты сети. Например, в крупной компании можно разделить сеть на подсети:
Как видите третья цифра обычно и разделяет сети на «области действия». Сделано это с точки зрения безопасности, чтобы сотрудники имели доступ только к своему локальному сегменту.
Проблемы с интернетом и сетью
Как правило DHCP клиент автоматом установлен на компьютере, а DHCP сервер уже запущен на роутере. Но бывают случаи, когда данные настройки DHCP неправильно настроены или вообще выключены. Тогда возникают трудности с интернетом. Мы также рассмотрим именно домашнюю сеть и обычный Wi-Fi маршрутизатор. Так что если у вас наблюдаются такие проблемы или вылезает ошибка «DHCP не включен на сетевом адаптере», то нужно проверить настройки.
Настроить на Windows
Если проблема останется, то значит сервер отключены или не работает на роутере. Его можно попробовать перезагрузить, но лучше проверить конфигурацию в Web-интерфейсе (админка).
На роутерах
Вы также можете встретить такое понятие как «DHCP-relay» – это функция, которая позволяет вашему роутеру подключаться к другому и принимать настройки DHCP от него. То есть после этого адреса будет раздавать не ваш основной маршрутизатор, а другой сервер. Функция полезна при организации больших сетей из нескольких сетевых аппаратов.
«Локальная сеть» – «DHCP-сервер» – проверьте, чтобы в строке «Включить…» стояло значение «Да». Ниже вы можете указать диапазон адресов и время аренды. В самом низу можно вручную назначить адреса для подключенных устройств.
Основы DHCP (протокол динамического конфигурирования узлов)
Протокол DHCP — это стандартный протокол, определяемый RFC 1541 (который заменяется RFC 2131), позволяющий серверу динамически распределять IP-адреса и сведения о конфигурации клиентам. Как правило, DHCP-сервер предоставляет клиенту по крайней мере следующие основные сведения:
также могут быть предоставлены сведения о гатевайосер по умолчанию, такие как адреса серверов службы доменных имен (DNS) и адреса серверов службы имен Windows интернета (WINS). Системный администратор настраивает DHCP-сервер с параметрами, которые анализируются на клиенте.
Дополнительные сведения
Функции DHCP-клиента предоставляются в следующих продуктах Майкрософт:
Windows NT Server версии 3,5, 3,51 и 4,0
Windows NT Workstation версии 3,5, 3,51 и 4,0
Microsoft Network Client версии 3,0 для MS-DOS
Клиент Microsoft LAN Manager версии 2.2 c для MS-DOS
Microsoft TCP/IP-32 для Windows для рабочих групп версии 3,11, 3.11 a и 3.11 b
Разные DHCP-клиенты поддерживают различные параметры, которые они могут получить от DHCP-сервера.
Следующие операционные системы Microsoft Server предоставляют функции DHCP-сервера:
Windows NT Server версии 3,5
Windows NT Server версии 3,51
Windows NT Server версии 4,0
Когда клиент инициализируется в первый раз после настройки на получение данных DHCP, он инициирует диалог с сервером.
Ниже приведена сводная таблица диалога между клиентом и сервером, за которой следует описание процесса на уровне пакета:
Ниже приведен подробный диалог между клиентом DHCP и DHCP-сервером.
DHCPDISCOVER
Клиент отправляет пакет DHCPDISCOVER. Ниже приведен фрагмент записи сетевого монитора, в которой показаны IP-и DHCP-части пакета DHCPDISCOVER. В разделе IP-адреса можно увидеть адрес назначения 255.255.255.255, а исходный адрес — 0.0.0.0. Раздел DHCP идентифицирует пакет как пакет обнаружения и идентифицирует клиент в двух местах, используя физический адрес сетевой карты. Обратите внимание, что значения в полях ЧАДДР и DHCP: Client identifier идентичны.
дхкпоффер
DHCP-сервер отвечает, отправляя пакет ДХКПОФФЕР. В разделе IP фрагмента записи ниже исходный адрес теперь является IP-адресом сервера DHCP, а адресом назначения является широковещательный адрес 255.255.255.255. Раздел DHCP определяет пакет как предложение. Поле ИАДДР заполняется IP-адресом, который сервер предлагает клиенту. Обратите внимание, что поле ЧАДДР по-прежнему содержит физический адрес запрашивающего клиента. Кроме того, в разделе поля параметров DHCP можно найти различные параметры, отправляемые сервером вместе с IP-адресом. В этом случае сервер отправляет маску подсети, шлюз по умолчанию (маршрутизатор), время аренды, адрес WINS-сервера (служба имен NetBIOS) и тип узла NetBIOS.
DHCPREQUEST
Клиент отвечает на ДХКПОФФЕР, отправляя DHCPREQUEST. В разделе IP-адресов записи ниже исходный адрес клиента по-прежнему равен 0.0.0.0, а место назначения пакета по-прежнему 255.255.255.255. Клиент оставляет 0.0.0.0, так как клиент не получал проверку с сервера, что его можно использовать в предложенном адресе. Назначением по-прежнему выполняется вещание, так как может быть получен ответ от нескольких DHCP-серверов и может храниться резервирование для предложения, сделанного клиентом. Это позволяет другим DHCP-серверам понять, что они могут освободить свои предложенные адреса и вернуть их в доступные пулы. Раздел DHCP идентифицирует пакет как запрос и проверяет предложенный адрес с помощью поля DHCP: запрошенный адрес. В поле Идентификатор сервера DHCP: отображается IP-адрес DHCP-сервера, предоставляющего аренду.
ТРАНСЛИРУЕТ
DHCP-сервер отвечает на DHCPREQUEST с помощью DHCPACK, тем самым завершая цикл инициализации. Исходный адрес — это IP-адрес сервера DHCP, а адрес назначения по-прежнему — 255.255.255.255. Поле ИАДДР содержит адрес клиента, а поля ЧАДДР и DHCP: Client identifier являются физическим адресом сетевой карты в запрашивающем клиенте. Раздел параметров DHCP определяет пакет как подтверждение.
Если у клиента ранее был назначен IP-адрес DHCP и он перезапущен, клиент будет запрашивать ранее арендованный IP-адрес в специальном пакете DHCPREQUEST. Адрес источника — 0.0.0.0, а местом назначения — широковещательный адрес 255.255.255.255. Клиенты Майкрософт заполнят поле параметра DHCP DHCP: запрошенный адрес с ранее назначенным адресом. Строго совместимые с RFC клиенты заполняют поле ЦИАДДР с запрошенным адресом. Сервер Microsoft DHCP будет принимать либо.
На этом этапе сервер может не отвечать на запросы. поведение DHCP-сервера Windows NT зависит от используемой версии операционной системы, а также от других факторов, таких как ограничение области. Если сервер определяет, что клиент по-прежнему может использовать этот адрес, он будет либо в автоматическом режиме, либо на подтверждение DHCPREQUEST. Если сервер определяет, что у клиента не может быть адреса, он будет передавать НАКК.
После этого клиент начнет процесс обнаружения, но пакет DHCPDISCOVER по-прежнему будет пытаться арендовать тот же адрес. Во многих случаях клиент получает один и тот же адрес, но не может.
Сведения о DHCP, получаемые клиентом с DHCP-сервера, будут связаны со временем аренды. Время аренды определяет, как долго клиент может использовать сведения, назначенные службой DHCP. Когда аренда достигает определенных вех, клиент попытается обновить свои данные DHCP.
чтобы просмотреть сведения об IP-адресе Windows или Windows для клиента рабочих групп, используйте служебную программу IPCONFIG. если клиент находится Windows 95, используйте WINIPCFG.
Что такое DHCP-протокол
Рассказываю о том, как компьютеры получают IP-адреса для работы в сети.
Способы выдачи IP-адресов
Чтобы компьютер мог работать в сети, ему нужен IP-адрес. Он выглядит как 4 числа через точку. Например, IP-адрес timeweb.com – 185.114.246.105. Это как страна, город, улица и дом в почтовом адресе, только в интернете – это узлы связи и магистральные роутеры. Если устройству не выдали IP-адрес, оно не может общаться с другими устройствами в сети.
«IP» расшифровывается как Internet Protocol. Данный протокол имеет две версии: IPv4 и IPv6.
Устройство может получить IP-адрес двумя способами: статическим (ручным) и динамическим.
Динамический способ подойдет как для предприятий, где количество устройств фиксировано, так и для кафе, через Wi-Fi которых каждый день проходит много разных гаджетов.
Протокол DHCP и динамический IP
Для динамической выдачи IP-адресов используется сетевой протокол DHCP («Dynamic Host Configuration Protocol»), что переводится как протокол динамической настройки узла.
DHCP работает по модели «клиент-сервер». Он автоматически раздает IP-адреса и другие параметры конфигурации устройствам, чтобы те могли работать в сети.
Взаимодействие DHCP-сервера и клиента
Сервер и клиент обмениваются сообщениями по принципу «запрос-ответ». Взаимодействие состоит из 4 этапов и сокращенно называется «DORA». По одной букве на каждый этап:
Подтверждение – Acknowledgement (ACK).
Поиск (Discover): Клиент → Сервер
На этом этапе клиенту главное найти и узнать, где находится сервер.
Мы включили компьютер, который находится в сети. Еще в этой же сети работает DHCP. В данном случае наш компьютер – это клиент, а DHCP – сервер. Теперь нашему устройству необходимо получить IP-адрес и другую необходимую информацию о сети, например шлюз, адреса DNS и маску подсети. Поэтому клиент начинает поиски сервера и посылает сообщение «DHCPDISCOVER» на компьютеры внутри этого сегмента сети.
Такое сообщение называется широковещательным (broadcast) – это значит, что поток данных от клиента получат все устройства внутри его сети. Ответить на такое сообщение смогут только DHCP-серверы.
Запрос клиента получат все участники сети, но ответит только сервер
Предложение (Offer): Сервер → Клиент
DHCP-сервер получает сообщение от клиента, после чего выбирает свободный IP-адрес из числа доступных и отправляет его в ответном сообщении «DHCPOFFER».
Как правило, IP-адрес закрепляется за клиентом на определенное время, поэтому может меняться между сеансами работы в сети.
Если клиенту ответили несколько серверов, он выберет какой-то один и получит от него IP-адрес с настройками.
Запрос (Request): Клиент → Сервер
Клиент получил IP-адрес и отправляет серверу ответное сообщение: «DHCPREQUEST». В нем он еще раз прописывает полученный адрес и тем самым подтверждает, что будет использовать его.
Ответное сообщение с IP-адресом получают все DHCP-серверы в сети, если их несколько. Это необходимо для того, чтобы каждый сервер знал, что этот адрес занят, и не предлагал его другим клиентам.
Только один сервер продолжает взаимодействие с клиентом. Это тот, который предложил выбранный клиентом IP-адрес.
Подтверждение (ACK): Сервер → Клиент
Сервер отправляет сообщение «DHCPACK» и тем самым закрепляет IP-адрес за клиентом. В сообщении содержится сам адрес, срок его использования и дополнительные настройки сети. Клиент проверяет эти настройки, применяет полученную конфигурацию и получает доступ к сети.
В общем виде весь процесс взаимодействия выглядит так:
– (Клиент) Кто тут сервер? Мне надо получить IP-адрес: «DHCPDISCOVER».
– (Сервер) Я сервер, предлагаю тебе использовать вот этот IP: «DHCPOFFER».
– (Клиент) Хорошо, я буду использовать этот IP, что ты мне отправил: «DHCPREQUEST».
– (Сервер) Вот и договорились. Приятной работы в сети: «DHCPACK».
Другие варианты сообщений
«DHCPINFORM» – так клиент запрашивает локальные настройки сети. В ответ на это сообщение сервер посылает запрашиваемую конфигурацию.
«DHCPNAK» – так сервер отказывает клиенту пользоваться IP-адресом.
Длительность использования IP-адреса
Время, на которое клиент получает IP-адрес от сервера, называется «срок аренды» (lease time). Он может составлять несколько минут, часов и даже суток. Когда срок аренды заканчивается, адрес освобождается, и сервер может отдать его другому клиенту.
Клиент может продлить аренду и использовать IP-адрес дальше. Для этого он ждет, пока пройдет половина срока, который изначально назначил сервер. После этого клиент посылает серверу сообщение «DHCPREQUEST», в котором указывает свой текущий IP-адрес. В ответном сообщении «DHCPACK» сервер запускает срок аренды заново. Получилась укороченная схема взаимодействия «клиент-сервер» из двух последних этапов (запрос → подтверждение).
Если сервер молчит и не отправляет подтверждение «DHCPACK», то клиент пробует отправить повторный запрос «DHCPREQUEST», когда пройдет половина от того времени, что осталось сейчас. И так до тех пор, пока не пройдет ⅞ времени всей аренды. После этого клиент начнет отправлять широковещательные запросы на свою сеть и ждать ответа от другого сервера.
Перед тем как завершить работу и отключиться от сети, клиент автоматически отправит серверу сообщение «DHCPRELEASE». Это значит, что IP-адрес свободен и сервер может передать его другому компьютеру.
Способы раздачи IP-адресов в DHCP
DHCP-сервер может назначать IP-адреса тремя способами:
Фиксированный – в этом случае происходит настройка DHCP сервера, в ходе которой администратор вручную прописывает соответствие между каждым MAC-адресом и IP-адресом. Таким образом, за каждым устройством закрепляется свой адрес, который будет выдавать сервер.
Это удобно в рамках небольшой сети, когда известны MAC-адреса всех компьютеров.
Автоматический – при таком способе каждое устройство автоматически получает IP-адрес, который не будет меняться. DHCP-сервер выдает адрес в бессрочную аренду, пока клиент от него не откажется.
Динамический – DHCP-сервер выдает клиенту любой адрес из диапазона свободных. Эти адреса не закрепляются за конкретными устройствами.
Динамическим способом раздают IP-адреса, когда состав пользователей и их количество в сети постоянно меняется, например при использовании Wi-Fi в кафе. В этом случае кафе покупает определенное количество IP-адресов и выдает посетителям, которые подключаются к сети.
Связь DHCP и клиента в разных подсетях
Обычно сеть дополнительно разделяют на подсети. Это помогает повысить производительность и обеспечить безопасность. Производительность повышается за счет того, что таким образом равномерно распределяется широковещательный трафик.
DHCP-сервер и клиент могут оказаться в разных подсетях, разделенных одним или несколькими маршрутизаторами. Как правило, маршрутизаторы не пропускают широковещательный трафик.
Вспомним, что первое сообщение, которое отправляет клиент, чтобы найти сервер («DHCPDISCOVER»), – широковещательное. Следовательно, клиент и сервер из разных подсетей не смогут просто так взаимодействовать.
Эту проблему решают с помощью ретрансляции или DHCP relay. С помощью этой настройки маршрутизаторы смогут передавать только широковещательный трафик, который относится к протоколу DHCP.
Таким образом, если маршрутизатор может работать в режиме DHCP relay, то у него получится передать первый запрос клиента «DHCPDISCOVER» серверу в другой подсети. В этом случае взаимодействию «клиент-сервер» ничего не помешает.
Краткие выводы
Для связи с другими устройствами и работы в сети компьютеру требуется IP-адрес.
Устройство может получить статический или динамический IP-адрес.
Динамические IP-адреса назначаются с помощью протокола DHCP.
Чтобы получить IP-адрес, устройство-клиент взаимодействует с DHCP-сервером по модели «DORA».
Сервер может назначить IP-адрес клиенту тремя способами: фиксированно, автоматически или динамически.
Если сервер и клиент находятся в разных подсетях, они смогут взаимодействовать с помощью ретрансляции DHCP relay.
DHCP-сервер
Протокол динамической конфигурации хоста DHCP (Dynamic Host Configuration Protocol) – один из основополагающих протоколов, как в локальных сетях, так и в Интернет.
Под словом «хост» в ИТ чаще всего подразумевается компьютер, иногда сервер (тоже компьютер). Почему компьютер или сервер называется «хост» (host – англ. «хозяин»), никто не знает. Вероятно, возникновение этого термина восходит ко временам больших ЭВМ (мейнфреймов), к которым тогдашние пользователи могли подключаться удалённо, например, по телефонной линии. Только вместо собственного компьютера у них был лишь алфавитно-цифровой дисплей с клавиатурой.
Рис. 1. «Менйфрейм» со множеством дисплеев.
Таких дисплеев к главному и единственному компьютеру (хосту) можно было подключить много (в режиме разделения времени), и пользователи, работающие на них, считали, что весь «мейнфрейм» находится полностью в их распоряжении. А чтобы каждый пользователь получал только предназначенную ему информацию и не мог вторгнуться в анналы другого пользователя на хосте, были придуманы различные методы разделения доступа, результатом эволюции которых явился протокол DHCP. Он был разработан в 1993 году, когда уже существовали персональные компьютеры, а «мейнфреймы» стали отходить на второй план. Поэтому термин «host» продолжал использоваться, но уже в отношении персонального компьютера.
Таким образом, DHCP – это стандартный протокол в сети с архитектурой «клиент-сервер», который динамически назначает IP-адреса и другую необходимую информацию конфигурации для новых устройств в сети. Каждое сетевое устройство должно иметь собственный, уникальный IP-адрес, чтобы в сети не возникали конфликты. IP-адрес, конечно, можно прописать для компьютера вручную, т.е. статически, и не менять его в дальнейшем. В небольших сетях, на 2-5 компьютеров, так иногда и делается. Но если компьютеров в сети десятки и сотни, то уследить за уникальностью сетевых адресов будет весьма проблематично. Хотя и в таких сетях тоже могут использоваться статические IP-адреса, например, для принтеров.
Для автоматизации процесса назначения уникальных IP-адресов устройствам, входящим в сеть, был разработан протокол DHCP, который работает на специальном сервере, называемом, соответственно, DHCP-сервер.
Протокол DHCP широко используется в повседневной жизни, причем, совершенно незаметно для обычных пользователей. Примеры его использования:
Пользователь не замечает, как его устройство получает от DHCP-сервера IP-адрес и начинает работу в сети. Бывают и ситуации, когда сетевой адрес устройства лучше прописывать постоянно и не менять, если это, например, основной сервер или принтер. Поэтому, в протоколе DHCP используется резервирование, т.е. область IP-адресов, зарезервированная для статического назначения определённым устройствам.
DHCP-сервер автоматически распределяет и обновляет IP-адреса и другую информацию конфигурации компьютеров (DHCP-клиентов) в сети. Для DHCP-клиентов эта информация предоставляется при помощи обмена сообщениями, порядок которых определяется протоколом DHCP, и такой обмен называется DHCP-транзакцией. Если DHCP-сервер и DHCP-клиент расположены в разных подсетях (subnets), то используется агент-ретранслятор DHCP (DHCP relay agent), чтобы DHCP-транзакцию можно было провести между разными подсетями.
DHCP, как определено в документе RFC 2131, был разработан на базе протокола BOOTP (Bootstrap Protocol), с помощью которого клиент может автоматически получить IP-адрес, обычно, во время загрузки компьютера.
Как работает DHCP
Архитектура DHCP включает DHCP-клиенты, DHCP-серверы и агенты-ретрансляторы DHCP. Клиент общается с DHCP-сервером используя стандартные сообщения DHCP для получения и обновления выделяемых ему IP-адресов.
DHCP-клиент
DHCP-клиент – это любое IP-устройство, подключаемое к сети, запрашивающее IP-адрес и параметры конфигурации от DHCP-сервера. Они передаются в поле Options сообщения DHCP. Это поле используется для назначения дополнительных параметров, таких как адрес IP-шлюза, адрес DNS-сервера и доменное имя DNS.
DHCP-сервер
DHCP-сервер содержит пространство (пул) IP-адресов, которые он использует по собственному усмотрению для автоматического назначения их устройствам, по мере их появления в сети. DHCP-сервер назначает устройствам в сети следующие параметры:
Агент-ретранслятор DHCP
Агент-ретранслятор DHCP (DHCP relay agent) передаёт сообщения DHCP между сервером и клиентами, когда они не находятся в одной подсети. Таким образом, в больших сетях, состоящих из многих подсетей, один DHCP-сервер может обслуживать всю сеть при помощи агентов-ретрансляторов, которые располагаются на граничных маршрутизаторах подсетей. В сети можно сконфигурировать до 400 агентов-ретрансляторов. Их можно использовать для защиты от спуфинг-атак, когда недоверенные компьютеры пытаются получить доступ к IP-адресам сети.
DHCP-транзакция
При DHCP-транзакции выполняются обмен следующими сообщениями между портами DHCP-сервера и DHCP-клиента:
Рис. 2. Процесс DHCP-транзакции.
Возобновление назначения IP-адреса
Если клиенту нужно продлить время назначения (lease time), по истечении примерно 50% времени назначения IP-адреса, он должен выполнить процедуру возобновления назначения (lease renewal). При этом выполняется более простая процедура, чем начальное назначение IP-адреса.
Клиент посылает на DHCP-сервер запрос DHCP REQUEST, в котором указан назначенный ему ранее IP-адрес. Это сообщение отправляется только на сервер, выдавший этот адрес при назначении, а не по общей рассылке. Если сервер имеет возможность вновь назначить тот же IP-адрес, то он сразу же посылает сообщение DHCP ACK.
Освобождение IP-адреса
Если клиенту более не нужен назначенный ему IP-адрес, то он посылает сообщение об освобождении IP-адреса DHCP RELEASE на DHCP-сервер. После этого этот IP-адрес может быть назначен другому устройству при следующем запросе DHCP-сервера.
Конфигурация DHCP
При DHCP-транзакции могут конфигурироваться DHCP-серверы, DHCP-клиенты, агенты-ретрансляторы (Relay agent), а также пороги ограничения времени назначения (Short lease threshold).
Конфигурация DHCP-клиента
Интерфейс на сетевом устройстве может быть сконфигурирован либо со статическим (постоянным), либо динамическим IP-адресом, а также другими параметрами в поле Option сообщения DHCP:
Код параметра в поле Option
Описание
1
Маска подсети для устройства (subnet mask)
3
Список маршрутизаторов по умолчанию
6
Список серверов DNS
15
Имя домена, используемой для определения имён хостов в нём, либо список доменов.
51
Истечение заданного времени назначения (lease time)
Конфигурация DHCP-сервера
Для назначения IP-адресов клиентам, DHCP-сервер использует пул адресов. Этот пул содержит определённые параметры конфигурации, которые DHCP-сервер может назначать клиентам. Таких пулов на сервере может быть несколько для обслуживания разных сетей.
Конфигурация пула адресов предусматривает следующее:
Конфигурация агента-ретранслятора
Агент-ретранслятор DHCP передает сообщения протокола BOOTP между серверами и клиентами. Если в сети серверы DHCP и BOOTP не находятся в одной и той же подсети, то необходимы маршрутизаторы на границе подсетей, которые будут выполнять функции агента-ретранслятора адресов. Оба протокола, BOOTP и DHCP, используют сообщения BOOTP, что позволяет агенту-ретранслятору передавать все их пакеты.
Конфигурация порога короткого времени назначения (short lease threshold)
Время короткого назначения (short lease time) конфигурируется для различных ситуаций, например, для бесплатного доступа wifi в кафе. Можно назначить, например, один час бесплатного доступа, после чего пользователю будет необходимо вновь регистрироваться в сети. В условиях предприятия время назначения можно задавать в пределах дней или недель.
В некоторых сетях находится много мобильных устройств, которые многократно запрашивают IP-адрес, до того, как их время назначения истекает. Такое может случаться, если устройства покидают зону wifi на короткое время и снова возвращаются, либо связь теряется в случае нестабильности радиосигнала wifi в разных помещениях в зоне действия беспроводной сети.
Это означает, что один и тот же IP-адрес может иметь несколько времен назначения, что может занимать много места в системе резервирования файлов. Для этого установки времен назначения необходимо сохранять в постоянной памяти, чтобы, например, в случае перезагрузки DHCP-сервера или сбое питания, он не будет терять информацию о временах назначения IP-адресов для клиентов.
Можно сделать и так, что устройство будет просто запрашивать новый адрес при необходимости. В этом случае, можно установить порог кроткого времени назначения (short lease threshold), которое может составлять от 1 минуты до 24 часов. В этом случае, любое время назначения не превышающее порог short lease threshold, не будет сохраняться в резервной постоянной памяти.
Решение DDI
Основными элементами управления в IP-сетях являются DNS, DHCP и управление IP-адресами IPAM (IP address management). Эти элементы тесно связаны друг с другом. Однако, раздельное управление этими элементами создает много проблем в плане эффективности и операционными рисками, например:
Решение DDI даёт возможность интегрированного администрирования DNS-DHCP-IPAM и сетевых интерфейсов устройств в едином процессе. При этом можно достигнуть высокой доступности, эластичности в масштабировании ресурсов сети в едином процессе администрирования на основе задаваемых политик. Кроме того, такое решение может значительно повысить «видимость» управления на базе единой панели администрирования и общую «целостность» сети.
Что такое DHCP сервер и как его настроить
Что такое DHCP-сервер
На фото DHCP сервер.
DHCP-сервер представляет собой фоновый процесс, использующий в качестве транспорта UDP-порт 67 и ожидающий запросы от клиентов, которые хотят подключиться к сети. Применение технологии DHCP-сервера дает возможность прописывать на каждом клиенте:
DHCP доступен как для IPv4 (DHCPv4), так и для IPv6 (DHCPv6).
Присвоение IP-адреса проводится через DHCP-сервер в несколько этапов:
Что необходимо знать, чтобы произвести установку требуемого сервера
Для инсталляции службы DHCP Servers на компьютеры с ОС Windows необходимо выполнить:
После этого потребуется нажать на клавишу «Готово», а потом на пункт «Закрыть».
Как настроить DHCP-сервер
Создание новой области проходит поэтапно и включает:
После проведения настроек в дереве консоли необходимо выбрать имя сервера и нажать кнопку «Авторизуя» в меню «Действия».
Настройка DHCP-сервера в Linux включает следующие этапы:
При этом стоит отметить, что использование Linux как альтернативы или полноценной замены ОС Windows может стать невыгодным, поскольку Linux не имеет серьезных преимуществ в выборе программ (в том числе бесплатных), в подключении устройств, в безопасности, надежности и скорости работы.
Виды ошибок при установке DHCP-сервера
К типичным ошибкам, возникающим при установке сервера DHCP и приводящим к сбою его настроек, относятся:
Плюсы и минусы использования DHCP
Поскольку каждое из этих устройств получает IP-адрес автоматически, устройства могут свободно перемещаться из одной сети в другую (при условии, что все они настроены с помощью DHCP), что очень удобно для мобильных устройств.
Однако, помимо преимуществ, у использования серверов DHCP есть определенные недостатки. Так, динамические IP-адреса не должны использоваться для стационарных устройств (принтеров и файловых серверов), требующих постоянного доступа. Для таких устройств следует назначать статические IP-адреса.
Дополнительная информация о DHCP
DHCP-сервер позволяет определить область или диапазон (пул) IP-адресов для обслуживания устройств, которым присвоены эти адреса. При этом даже небольшого пула бывает достаточно, чтобы к сети в течение определенного периода времени могло подключиться множество устройств.
Кроме того, в сети одновременно с устройствами, имеющими динамические IP-адреса, доставленные через DHCP, могут использоваться статические IP-адреса.
Какое оборудование подходит для DHCP-сервера
Присвоедие IP-адресов не является трудоемкой задачей, по-этому для данного вида серверов можно использовать самое простое, надежное оборудование. На данную роль подходят такие модели как HPE Proliant DL20 gen10 и Dell R430. В компениях с численностью более 100 сотрудников, рекомендуем развернуть несколько DHCP-серверов, что позволит обеспечить высокую отказоустойчивость.
Сотрудники Сервер Гейт помогут подобрать вам правильное оборудование и сэкономить деньги, выбирая б/у серверы.
[Конспект админа] Как подружиться с DHCP и не бояться APIPA
Сервис, выдающий IP-адреса устройствам в локальной сети, кажется одним из самых простых и всем знакомых. Тем не менее у моих младших коллег до сих пор временами всплывают вопросы вроде «компьютер что-то получает какой-то странный адрес», а появление второго DHCP-сервера в одном сетевом сегменте вызывает некоторый трепет или проблемы в работе сети.
Чтобы у прочитавших этот материал такие вопросы не возникали, мне хотелось бы собрать в кучу основную информацию про работу механизмов выдачи адресов IP, особенности и примеры настройки отказоустойчивых и защищенных конфигураций. Да и возможно матерым специалистам будет интересно освежить нейронные связи.
Немного теории и решения интересных и не очень практических задач — под катом.
В современной локальной сети выдачей адресов обычно занимаются специализированные сервисы с поддержкой протоколов. Самым популярным из них является DHCP (Dynamic Host Configuration Protocol).
Zeroconf или зачем нам вообще какой-то DHCP
В принципе, специально для функционирования небольших сетей был создан стек технологий под названием Zeroconf. Он позволяет обойтись без каких-либо централизованных сервисов и серверов, включая, но не ограничиваясь выдачей IP-адресов. Им закрываются (ну, или почти закрываются) следующие вопросы:
Получение IP-адреса (Automatic Private IP Addressing или APIPA). Система сама назначает себе IP из сети 169.254.0.0/16 (кроме сеток /24 в начале и конце диапазона), основываясь на MAC-адресе и генераторе псевдослучайных чисел. Такая система позволяет избежать конфликтов, а адрес из этой сети называют link-local — в том числе и потому, что эти адреса не маршрутизируются.
Поиск по имени. Система анонсирует свое сетевое имя, и каждый компьютер работает с ним как с DNS, храня записи у себя в кэше. Apple использует технологию mDNS (Multicast DNS), а Microsoft — LLMNR (Link-local Multicast Name Resolution), упомянутую в статье «Домены, адреса и Windows: смешивать, но не взбалтывать».
Поиск сетевых сервисов. Например, принтеров. Пожалуй, самым известным протоколом является UPnP, который помимо прочего умеет сам открывать порты на роутерах. Протокол довольно сложен, в нем используется целый набор надстроек вроде использования http, в отличие от второго известного протокола — DNS-SD (DNS Service Discovery), который попросту использует SRV-записи, в том числе при работе mDNS.
При всех плюсах Zeroconf — без каких-либо сакральных знаний можно собрать рабочую сеть, просто соединив компьютеры на физическом уровне, — IT-специалистам он может даже мешать.
Немного раздражает, не так ли?
В системах Windows для отключения автонастройки на всех сетевых адаптерах необходимо создать параметр DWORD с именем IPAutoconfigurationEnabled в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и поставить ему значение 0.
Разумеется, Zeroconf подходит разве что для небольших изолированных сетей (например, встретились с приятелем с ноутбуками, соединили их по Wi-Fi и давай играть Diablo II, не тратя время на какие-то сервера), да и выводить локальную сеть в интернет тоже хочется. Чтоб не мучаться со статическими настройками каждого компьютера, были созданы специальные протоколы, включая героя дня — DHCP.
DHCP и его прародители
Одна из первых реализаций протокола для выдачи IP-адресов появилась более 30 лет назад и называлась RARP (Reverse Address Resolution Protocol). Если немного упростить принцип его работы, то выглядело это так: клиент делал запрос на широковещательный адрес сети, сервер его принимал, находил в своей базе данных привязку MAC-адреса клиента и IP — и отправлял в ответ IP.
Схема работы RARP протокола.
И все вроде работало. Но у протокола были минусы: нужно было настраивать сервер в каждом сегменте локальной сети, регистрировать MAC-адреса на этом сервере, а передавать дополнительную информацию клиенту вообще не было возможности. Поэтому на смену ему был создан протокол BOOTP (Bootstrap Protocol).
Изначально он использовался для бездисковых рабочих станций, которым нужно было не только выдать IP-адрес, но и передать клиенту дополнительную информацию, такую, как адрес сервера TFTP и имя файла загрузки. В отличие от RARP, протокол уже поддерживал relay — небольшие сервисы, которые пересылали запросы «главному» серверу. Это сделало возможным использование одного сервера на несколько сетей одновременно. Вот только оставалась необходимость ручной настройки таблиц и ограничение по размеру для дополнительной информации. Как результат, на сцену вышел современный протокол DHCP, который является совместимым расширением BOOTP (DHCP-сервер поддерживает устаревших клиентов, но не наоборот).
Важным отличием от устаревших протоколов является возможность временной выдачи адреса (lease) и передачи большого количества разной информации клиенту. Достигается это за счет менее тривиальной процедуры получения адреса. Если в старых протоколах схема была простая, вида запрос-ответ, то теперь схема следующая:
Схема общения клиента с сервером пересылки и сервером.
Подробнее про схему взаимодействия сервера и клиента и про структуру запросов и ответов можно почитать, например, в материале «Структура, формат и назначение DHCP пакетов».
На нескольких собеседованиях меня спрашивали: «А какой транспорт и порт использует DHCP?» На всякий случай отвечаем: «Сервер UDP:67, клиент UDP:68».
С разными реализациями DHCP-сервера сталкивались многие, даже при настройке домашней сети. Действительно, сейчас сервер есть:
Конкретных реализаций довольно много, но, например, на SOHO-маршрутизаторах настройки сервера ограничены. В первую очередь это касается дополнительных настроек, помимо классического «IP-адрес, маска, шлюз, сервер DNS». А как раз эти дополнительные опции и вызывают наибольший интерес в работе протокола. С полным списком можно ознакомиться в соответствующем RFC, я же разберу несколько интересных примеров.
Удивительные опции DHCP
В этом разделе я рассмотрю практическое применение опций DHCP на оборудовании MikroTik. Сразу обращу внимание на то, что не все опции задаются очевидно, формат параметров описан в wiki. Следует отметить также то, что опции клиент применяет, только когда сам их попросит. В некоторых серверах можно принудительно отправить настройки: например, в ISC DHCP Server за это отвечает директива dhcp-parameter-request-list, а в Dnsmasq —* *—dhcp-option-force. MikroTik и Windows такого не умеют.
Option 6 и Option 15. Начнем с простого. Настройка под номером 6 — это серверы DNS, назначаемые клиентам, 15 — суффикс DNS. Назначение суффикса DNS может быть полезным при работе с доменными ресурсами в недоменной сети, как я описывал в статье «Как мы сокращали персонал через Wi-Fi». Настройка MikroTik под спойлером.
Знание, что сервер DNS — это тоже опция, недавно пригодилось мне, когда разным клиентам нужно было выдать разные серверы DNS. Решение вида «выдать один сервер и сделать разные правила dst-nat на 53 порт» не подходило по ряду причин. Часть конфигурации снова под спойлером.
Option 66 и Option 67. Эти настройки пришли еще с BOOTP и позволяют указать TFTP-сервер и образ для сетевой загрузки. Для небольшого филиала довольно удобно установить туда микротик и бездисковые рабочие станции и закинуть на маршрутизатор подготовленный образ какого-нибудь ThinStation. Пример настройки DHCP:
Option 121 и Option 249. Используются для передачи клиенту дополнительных маршрутов, что может быть в ряде случаев удобнее, чем прописывать маршруты на шлюзе по умолчанию. Настройки практически идентичные, разве что клиенты Windows предпочитают вторую. Для настройки параметра маршруты надо перевести в шестнадцатеричный вид, собрав в одну строку маску сети назначения, адрес сети и шлюз. Также, по RFC, необходимо добавить и маршрут по умолчанию. Вариант настройки — под спойлером.
Предположим, нам нужно добавить клиентам маршрут вида dst-address=10.0.0.0/24 gateway=192.168.88.2, а основным шлюзом будет 192.168.88.1. Приведем это все в HEX:
Данные для настройки | DEC | HEX |
Маска | 24 | 0x18 |
Сеть назначения | 10.0.0.0 | 0x0A 00 00 |
Шлюз | 192.168.88.2 | 0xc0 a8 58 02 |
Сеть по умолчанию | 0.0.0.0/0 | 0x00 |
Шлюз по умолчанию | 192.168.88.1 | 0xc0 a8 58 01 |
Соберем все это счастье в одну строку и получим настройку:
Подробнее можно прочитать в статье «Mikrotik, DHCP Classless Route».
Option 252. Автоматическая настройка прокси-сервера. Если по каким-то причинам в организации используется непрозрачный прокси, то удобно будет настроить его у клиентов через специальный файл wpad (pac). Пример настройки такого файла разобран в материале «Proxy Auto Configuration (PAC)». К сожалению, в MiroTik нет встроенного веб-сервера для размещения этого файла. Можно использовать для этого пакет hotspot или возможности metarouter, но лучше разместить файл где-либо еще.
Option 82. Одна из полезнейших опций — только не для клиента, а для DHCP-релея. Позволяет передать серверу информацию о порте коммутатора, к которому подключен клиент, и id самого коммутатора. Сервер на основе этой информации в свою очередь может выдать уже клиенту какой-то определенный набор настроек или просто занести в лог — чтобы в случае необходимости найти порт подключения клиента, не приходилось заходить на все свитчи подряд (особенно, если они не в стеке).
После настройки DHCP-Relay на маршрутизаторе в информации о клиентах появятся поля Agent Circuit ID и Agent Remote ID, где первое — идентификатор порта коммутатора, а второе — идентификатор самого коммутатора.
Выдача адресов с option 82.
Информация выдается в шестнадцатиричном формате. Для удобства восприятия при анализе журнала DHCP можно использовать скрипты. Например, решение для решения от Microsoft опубликовано в галерее скриптов Technet под названием «Декорирование DHCP опции 82».
Также опция Option 82 активно используется в системе биллинга провайдеров и при защите сети от посторонних вмешательств. Об этом чуть подробнее.
Добавим сети надежности и безопасности
Ввиду простоты протокола и присутствия широковещательных запросов есть эффективные атаки на инфраструктуру — в основном типа MITM («человек посередине»). Атаки производятся посредством поднятия своего DHCP-сервера или релея: ведь если контролировать выдачу сетевых настроек, можно запросто перенаправить трафик на скомпрометированный шлюз. Для облегчения атаки используется DHCP starvation (представляясь клиентом или релеем, злоумышленник заставляет «родной» DHCP-сервер исчерпать свои IP-адреса). Подробнее про реализацию атаки можно почитать в статье «Атакуем DHCP», методом же защиты является DHCP Snooping.
Это функция коммутатора, которая позволяет «привязать» DHCP-сервер к определенному порту. Ответы DHCP на других портах будут заблокированы. В некоторых коммутаторах можно настроить и работу с Option 82 при ее обнаружении в пакете (что говорит о присутствии релея): отбросить, заменить, оставить без изменения.
В коммутаторах MikroTik включение DHCP Snooping производится в настройках бриджа:
Настройка в других коммутаторах происходит аналогичным образом.
Стоит отметить, что не все модели MikroTik имеют полную аппаратную поддержку DHCP Snooping — она есть только у CRS3xx.
Помимо защиты от злых хакеров эта функция избавит от головной боли, когда в сети появляется другой DHCP-сервер — например, когда SOHO-роутер, используемый как свич с точкой доступа, сбрасывает свои настройки. К сожалению, в сетях, где встречается SOHO-оборудование, не всегда бывает грамотная структура кабельной сети с управляемыми маршрутизаторами. Но это уже другой вопрос.
Красивая коммутационная — залог здоровья.
К другим методам защиты можно отнести Port Security («привязка» определенного MAC-адреса к порту маршрутизатора, при обнаружении трафика с других адресов порт будет блокироваться), Анализ трафика на количество DHCP-запросов и ответов или ограничение их количества, ну и, конечно, различные системы IPS\IDS.
Если говорить не только о защите сети, но и о надежности, то не лишним будет упомянуть и про возможности отказоустойчивого DHCP. Действительно, при своей простоте DHCP часто бывает одним из ключевых сервисов, и при выходе его из строя работа организации может быть парализована. Но если просто установить два сервера с идентичными настройками, то ни к чему, кроме конфликта IP-адресов, это не приведет.
Казалось бы, можно поделить область выдачи между двумя серверами, и пусть один выдает одну половину адресов, а второй — другую. Вот только парализованная половина инфраструктуры немногим лучше, чем целая.
Разберем более практичные варианты.
В системах Windows Server начиная с 2012 система резервирования DHCP работает «из коробки», в режиме балансировки нагрузки (active-active) или в режиме отказоустойчивости (active-passive). С подробным описанием технологии и настройками можно ознакомиться в официальной документации. Отмечу, что отказоустойчивость настраивается на уровне зоны, поэтому разные зоны могут работать в разном режиме.
Настройка отказоустойчивости DHCP-сервера в Windows.
В ISC DHCP Server для настройки отказоустойчивости используется директива failover peer, синхронизацию данных предлагается делать самостоятельно — например, при помощи rsync. Подробнее можно почитать в материале «Два DHCP сервера на Centos7. »
Если же делать отказоустойчивое решение на базе MikroTik, то без хитростей не обойтись. Один из вариантов решения задачи был озвучен на MUM RU 18, а затем и опубликован в блоге автора. Если вкратце: настраиваются два сервера, но с разным параметром Delay Threshold (задержка ответа). Тогда выдавать адрес будет сервер с меньшей задержкой, а с большей задержкой — только при выходе из строя первого. Синхронизацию информации опять же приходится делать скриптами.
Лично я в свое время изрядно потрепал себе нервов, когда в сети «случайно» появился роутер, подключенный в локальную сеть и WAN, и LAN интерфейсами.
Расскажите, а вам приходилось сталкиваться с проказами DHCP?
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Как устроен и работает протокол DHCP
В современных сетях служба DHCP является одной из базовых, обеспечивая автоматическую настройку сетевых параметров у клиентов и от правильности ее работы зависит надежное функционирование всей сети. Поэтому важно иметь хотя бы базовые представления о работе одноименного протокола, что позволит не только грамотно подойти к настройке, но и оперативно устранить возможные проблемы. Тем более что протокол DHCP достаточно прост и разобраться в нем может каждый, достаточно иметь начальные знания о работе сетей.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Получение адреса
Рассмотрим процесс получения IP-адреса, он достаточно прост и состоит из четырех этапов, которые в упрощенном виде показаны на следующей схеме:
Все это можно увидеть, если заглянуть внутрь DHCP-пакета:
В данном случае это запрос обнаружения (Discover), цветом мы отметили упоминавшиеся выше поля и опции. Вроде бы все просто, но есть некоторые моменты, которые обычно обходятся молчанием, но способны вызвать определенные затруднения от неверного их понимания.
Запрос обнаружения рассылается для всех узлов сети, но отвечают на него только DHCP-сервера, формируя сообщение Предложения DHCP (DHCP OFFER), которое содержит предлагаемую сервером сетевую конфигурацию. Если серверов несколько, то предложений клиент получит несколько. Из предложенных конфигураций клиент выбирает одну, как правило полученную первой. Предлагаемый клиенту адрес содержится в специальном поле yiaddr, а поле siaddr передается адрес DHCP-сервера.
Так как MAC-адрес отправителя известен, то сервер направляет ответ непосредственно клиенту (unicast), хотя в некоторых случаях может ответить и широковещательным пакетом. Например, DHCP-сервера dnsmasq и Mikrotik отвечает непосредственно клиенту (юникастом), в то время как DHCP Windows Server отвечает широковещательным пакетом. По большому счету это не имеет особого значения, просто вы должны знать, что это вполне допустимые режимы работы DHCP-сервера и не являются признаком неправильной работы.
В структуре ответа мы также отметили цветом вышеописанные опции, также обратите внимание, что в данном случае ответ был отправлен широковещательным пакетом (Windows Server). Ниже показана структура ответа dnsmasq:
Здесь видно, что сервер ответил непосредственно клиенту (отправив фрейм на его MAC-адрес), не прибегая к широковещательной рассылке.
Остальные сетевые параметры передаются в виде опций, в нашем случае это опции 1, 3 и 6 (маска, шлюз, DNS):
Приняв предложение клиент официально запрашивает у сервера данную конфигурацию, для чего отправляет широковещательно Запрос DHCP (DHCP REQUEST), он полностью повторяет по структуре сообщение обнаружения (Discover), только добавляет к нему опцию 54 с адресом сервера, конфигурацию которого клиент принял. Опция 50 содержит предложенный сервером IP-адрес. Несмотря на то, что MAC-адрес DHCP-сервера известен, запрос (Request) рассылается широковещательно, это нужно для того, чтобы остальные DHCP-сервера понимали, что их предложение отвергнуто.
Выше показана структура запроса, можете сравнить его с пакетом обнаружения, обратите внимание на заполненное значение опции 54.
Получив запрос сервер направляет клиенту в ответ Подтверждение DHCP (DHCP ACK), которое отправляется на MAC-адрес клиента (хотя может и широковещательно) и получив которое клиент должен настроить свой сетевой адаптер согласно указанного адреса и опций.
По структуре сообщение подтверждения (Ask) практически не отличается от предложения (Offer), за исключением того, что поле siaddr с адресом DHCP-сервера не заполняется, но его адрес передается в опции 54.
Получив адрес клиент может проверить его на предмет использования при помощи широковещательного ARP-запроса (в большинстве реализаций так и происходит) и если будет обнаружено, что выделенный адрес уже используется (скажем, назначен вручную), то клиент посылает широковещательное сообщение Отказа DHCP (DHCP DECLINE) и начинает процесс получения адреса заново. Сервер, получив сообщение отказа, должен пометить указанный адрес как недоступный и уведомить администратора о возможной проблеме в конфигурации (например, записью в логе).
Также клиент может самостоятельно отказаться от выданного адреса, отправив серверу сообщение Освобождения DHCP (DHCP RELEASE), в отличии от других сообщений, освобождение направляется юникастом серверу, выдавшему адрес. Получив такое сообщение сервер помечает адрес как доступный, но на всякий случай оставляет запись о клиенте, если он захочет получить адрес повторно. Это поведение не является обязательным, но реализовано в большинстве DHCP-серверов.
Обновление адреса
В зависимости от срока прошедшего с момента получения адреса клиент может находится в одном из нескольких состояний.
Для этого он отправляет сообщение запроса (Request), в котором указывает текущий IP-адрес. Если сервер подтверждает аренду, то отвечает сообщением подтверждения (Ask), клиент сбрасывает счетчики T1 и T2 и начинает отсчет срока аренды заново.
Данные о сроке аренды и времени обновления адреса и обновлении конфигурации передаются сервером в опциях 51, 58 и 59:
Если сервер не ответил клиенту, то он берет промежуток времени до окончания состояния обновления и делит его пополам, в это время будет отправлен повторный запрос, при его отсутствии промежуток времени снова будет поделен пополам, потом снова пополам, при этом полученный промежуток времени не может быть меньше 60 сек. Таким образом, чем ближе окончание срока обновления, тем чаще будут делаться запросы.
После наступления момента времени T2, если клиенту не удалось обновить адрес, он переходит в состояние обновления Обновления конфигурации (REBINDING). В этом случае он посылает сообщение Обнаружения DHCP, теперь клиенту может ответить любой DHCP-сервер, а не только тот, который выдал IP-адрес. Если ответа от сервера не было, то оставшееся время также делится пополам и запрос повторяется. Все это время клиент может продолжать пользоваться уже полученной сетевой конфигурацией и нормально работать.
Если же до окончания срока аренды ответ так и не был получен, то клиент прекращает все сетевые операции и переходит в состояние Инициализации (INIT). В последствии, при получении предложений (Offer) от различных серверов клиент предпочтет выбрать предложение от сервера, который выдавал ему адрес прошлый раз и продолжит пользоваться старым адресом.
Также при обновлении могут быть иные сценарии развития событий. Скажем, клиент был включен в другую подсеть. В этом случае при получении запроса DHCP (клиент не знает, что он в другой подсети и пытается продлить аренду) сервер определяет неподходящий адрес в запросе и отвечает ему сообщением Отмены DHCP (DHCP NAK), после чего клиент должен начать процедуру получения адреса заново.
Если сеть клиента корректна, но запрашиваемый адрес занят, то сервер также ответит сообщением отмены (Nak) и клиент начнет получение адреса повторно.
Получение дополнительной информации
Если клиент имеет статически назначенный IP-адрес, но хочет получить дополнительные параметры, скажем адрес серверов имен или статические маршруты, то он отправляет специальное широковещательное сообщение Информации DHCP (DHCP INFORM), в ответ сервера отправляют сообщение подтверждения (Ask) без выделения IP-адреса.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Принципы работы протокола DHCP
DHCP — протокол автоматизации назначения IP-адреса клиенту. Он широко используется в современных сетях. В статье рассмотрим принципы работы, процесс DORA, основные опции и другие аспекты протокола.
Для чего нужен протокол DHCP
DHCP — протокол прикладного уровня модели TCP/IP, служит для назначения IP-адреса клиенту. Это следует из его названия — Dynamic Host Configuration Protocol. IP-адрес можно назначать вручную каждому клиенту, то есть компьютеру в локальной сети. Но в больших сетях это очень трудозатратно, к тому же, чем больше локальная сеть, тем выше возрастает вероятность ошибки при настройке. Поэтому для автоматизации назначения IP был создан протокол DHCP.
Впервые протокол был описан в 1993 году в документе RFC 1531, но с тех пор в описание вносились правки. На сегодняшний день основным документом, регламентирующим протокол, является RFC 2131. Помимо автоматизации процесса настройки IP, DHCP позволяет упростить диагностику подключения и переход из одной подсети в другую, оставляя уведомления для системного администратора в логах.
Принцип работы DHCP
Из вступления ясно, какие функции предоставляет DHCP, но по какому принципу он работает? Получение адреса проходит в четыре шага. Этот процесс называют DORA по первым буквам каждого шага: Discovery, Offer, Request, Acknowledgement.
Давайте подробнее рассмотрим DORA — принцип работы DHCP.
Протокол DHCP, получение адреса IP — DORA
Discovery, или поиск
Изначально клиент находится в состоянии инициализации (INIT) и не имеет своего IP-адреса. Поэтому он отправляет широковещательное (broadcast) сообщение DHCPDISCOVER на все устройства в локальной сети. В той же локальной сети находится DHCP-сервер. DHCP-сервер — это, например, маршрутизатор или коммутатор, существуют также выделенные DHCP-серверы.
Не всегда одну сеть обслуживает один DHCP-сервер, нередко организации устанавливают сразу несколько. Какие порты использует DHCP? Сервер всегда слушает 67 порт, ожидает широковещательное сообщение от клиента, а после его получения отправляет ответное предложение — DHCPOFFER. Клиент принимает сообщение на 68 порту.
Offer, или предложение
DHCP-сервер отвечает на поиск предложением, он сообщает IP, который может подойти клиенту. IP выделяются из области (SCOPE) доступных адресов, которая задается администратором.
Если имеются адреса, которые не должны быть назначены DHCP-сервером, область можно ограничить, указав только разрешенные адреса. Например, администратор может задать диапазон используемых IP-адресов от 192.0.0.10 до 192.0.0.255.
Бывает и так, что не все доступные адреса должны быть назначены клиентам. Например, администратор может исключить (exclude) диапазон 192.0.0.100 — 192.0.0.200 из используемой области. Такое ограничение называется исключением.
DHCP выделяет доступные IP-адреса из области только временно (об этом позже), поэтому нет гарантии, что при следующем подключении у данного клиента останется прежний IP. Но есть возможность назначить какому-либо клиенту определенный IP навсегда. К примеру, забронировать 192.0.0.10 за компьютером системного администратора. Такое сохранение IP для отдельных клиентов называют резервацией (reservation).
DHCPOFFER содержит IP из доступной области, который предлагается клиенту отправкой широковещательного (broadcast, «если вы тот, кто запрашивал IP-адрес, то доступен вот такой») или прямого (unicast, «вы запрашивали IP, предлагаю вот такой») сообщения. При этом, поскольку нужный клиент пока не имеет IP, для отправки прямого сообщения он идентифицируется по MAC-адресу.
Request, или запрос
Клиент получает DHCPOFFER, а затем отправляет на сервер сообщение DHCPREQUEST. Этим сообщением он принимает предлагаемый адрес и уведомляет DHCP-сервер об этом. Широковещательное сообщение почти полностью дублирует DHCPDISCOVER, но содержит в себе уникальный IP, выделенный сервером. Таким образом, клиент сообщает всем доступным DHCP-серверам «да, я беру этот адрес», а сервера помечают IP как занятый.
Acknowledgement, или подтверждение
Сервер получает от клиента DHCPREQUEST и окончательно подтверждает передачу IP-адреса клиенту сообщением DHCPACK. Это широковещательное или прямое сообщение утверждает не только владельца IP, но и срок, в течение которого клиент может использовать этот адрес.
Со схемой отправки сообщений разобрались, но, если в сети несколько DHCP-серверов, пославших предложение, какое из них выберет клиент? Хороший вопрос. В состоянии INIT, если клиент получает адрес впервые, он будет принимать только первое предложение IP. Однако, если клиент уже общался ранее с определенным DHCP-сервером, он отдаст предпочтение этому серверу и, наоборот, сервер выберет знакомого клиента.
Срок аренды
Когда DHCP-сервер выделяет IP из области, он оставляет запись о том, что этот адрес зарезервирован за клиентом с указанием срока действия IP. Этот срок действия называется срок аренды (lease time). Срок аренды может составлять от 24 часов до нескольких дней, недель или даже месяцев, он задается в настройках самого сервера.
Предоставление адреса в аренду, а не на постоянной основе необходимо по нескольким причинам. Во-первых, это разумное использование IP-адресов — отключенные или вышедшие из строя клиенты не резервируют за собой адрес. Во-вторых, это гарантия того, что новые клиенты при необходимости смогут получить уникальный адрес.
После получения адреса из области, клиент берет его в аренду на время, называемое T. Клиент переходит в связанное (BOUND) состояние и продолжает нормальную работу, пока не наступит время половины срока аренды — T1.
По наступлении T1 клиент инициализирует процедуру получения нового IP или обновления адреса — состояние RENEWING. Процесс повторного получения происходит по упрощенной схеме: клиент прямым сообщением запрашивает (DHCPREQUEST), а сервер подтверждает (DHCPACK) запрос. Время аренды начинает отсчитываться заново.
Если подтверждение (DHCPACK) от сервера не поступает, клиент снова запрашивает адрес, но только когда истекает половина T1. Если запрос адреса остается без ответа второй раз, клиент отправляет еще одно сообщение, когда истекает половина от T1/2 (25% от полного срока аренды). Следующий запрос будет отправлен после истечения еще половины оставшегося времени, потом еще половины. И так далее, пока не наступит T2, которое равняется 87,5%, или 7/8 от всего времени аренды. После T2 все попытки продлить аренду IP будут широковещательными. Это значит, что, если первый сервер по какой-то причине недоступен, на запрос адреса сможет ответить любой другой, и работа не будет прервана.
Три подхода к распределению адресов
Сервер назначает IP одним из трех основных способов.
Статическое распределение (static allocation). Почти как ввод адреса на каждом компьютере вручную. Отличие в том, что системный администратор задает нужные соответствия IP для MAC-адресов клиентов на самом DHCP-сервере. IP останется за клиентом, даже если тот выйдет из сети, отключится, перейдет в новую сеть и т.п.
Автоматическое распределение (automatic allocation). Сервер закрепляет IP из области за каждым клиентом навсегда. Срок аренды не ограничен.
Динамическое распределение (dynamic allocation). DHCP-сервер назначает адрес из области на определенное время, называемое сроком аренды. Такой подход полезен, если число доступных IP ограничено. IP назначается каждому клиенту при подключении к сети и возвращается в область, как только клиент его освобождает. В таком случае IP может отличаться при каждом подключении, но обычно назначается прежний.
Особые DHCP сообщения
Кроме DORA — четырех сообщений для получения адреса — DHCP использует и другие. Давайте рассмотрим каждое.
DHCPNAK. Нередко в источниках можно встретить написание DHCPNACK, что является неправильным, так как RFC 2131 регламентирует именно NAK. DHCPNAK отправляется сервером вместо окончательного подтверждения. Такой отказ может быть отправлен клиенту, если аренда запрашиваемого IP истекла или клиент перешел в новую подсеть.
DHCPRELEASE. Клиент отправляет это сообщение, чтобы уведомить сервер об освобождении занимаемого IP. Иными словами, это досрочное окончание аренды.
DHCPINFORM. Этим сообщением клиент запрашивает у сервера локальные настройки. Отправляется, когда клиент уже получил IP, но для правильной работы ему требуется конфигурация сети. Сервер информирует клиента ответным сообщением с указанием всех запрошенных опций.
Опции DHCP
Для работы в сети клиенту требуется не только IP, но и другие параметры DHCP — например, маска подсети, шлюз по умолчанию и адрес сервера. Опции представляют собой пронумерованные пункты, строки данных, которые содержат необходимые клиенту сервера параметры конфигурации. Дадим описания некоторым опциям:
Option 82 — ретрансляция DHCP-сервера
Option 82 — информация об агенте ретрансляции (relay agent information). Благодаря ретранслятору клиент и сервер могут общаться, находясь в разных подсетях. По умолчанию широковещательные сообщения не могут выходить за пределы текущего широковещательного домена (подсети). Внимательный читатель скажет, что выше мы писали, как клиент отправляет широковещательное сообщение DHCPDISCOVER всем доступным DHCP-серверам. А что если в сети нет DHCP?
Предположим, широковещательные сообщения не выходят за пределы подсети компании, которая не установила DHCP-сервер. В таком случае сообщение DHCPDISCOVER должно будет пропасть, и ни один компьютер компании не сможет выйти в интернет. Однако в реальности отсутствие DHCP-сервера не мешает выходу в сеть.
Значит ли это, что широковещательные сообщения каким-то образом выходят за пределы подсети? Не совсем. За пределы подсети выходят только широковещательные DHCP-сообщения. Это становится возможным благодаря агенту ретрансляции. Обычно в его роли выступает маршрутизатор или сервер. Ретранслятор получает сообщения от клиента в своей подсети, направляют его на DHCP-сервер, который тем же образом — через ретранслятор — отправляет ответ. Так ретранслятор выступает в качестве посредника между подсетями.
Опции DHCP для загрузки PXE
Протокол DHCP позволяет загрузку компьютера без использования носителя данных. Такая загрузка происходит с сетевой карты и называется PXE (Preboot eXecution Environment). Для конфигурации сетевой загрузки LEGACY BIOS PXE используются DHCP-опции 43, 60, 66 и 67.
Взаимодействие DHCP и DNS
Как мы упоминали выше, Option 6 — это сервер DNS. Давайте рассмотрим подробнее взаимодействие двух протоколов.
DNS (система доменных имен) отвечает за соответствие доменных имен и IP-адресов. Доменное имя — это не только адрес в интернете, например, selectel.ru, но также имя компьютера в локальной сети, например, Director PC. DNS проводит соединительную линию между IP и буквенно-числовым доменным именем компьютера или веб-сайта. DHCP занимается выделением и назначением IP из области. Очевидно, что два протокола должны тесно взаимодействовать между собой.
В статье мы уже говорили, что DHCP-сервер имеет область IP-адресов, которые допускается распределять между клиентами в сети. DNS-сервер занимается тем, что сопоставляет IP-адреса и доменные имена. Это не только имена сайтов, но и имена компьютеров в сети, (например, NetworkServer PC).
Если вы хотите создать свою локальную сеть на базе Linux, потому что это бесплатно и вы не хотите связываться Windows, то вы можете столкнуться с проблемой взаимодействия DNS и DHCP. Linux не имеет Active Directory, как в Windows, позволяющей тесно связать DHCP и DNS, избегая необходимости обращаться к клиенту каждый раз по IP. Однако способы организовать такую связь существуют и для свободной системы.
Первый вариант — настроить DHCP-сервер так, чтобы фиксировал адрес за клиентом. Второй вариант — настроить взаимодействие DHCP- и DNS- серверов. Первый вариант подходит, если область IP-адресов широкая и вы можете позволить себе фиксировать IP за каждым клиентом. Если же для вас такой метод будет расточительным, то необходимо дать двум серверам работать вместе.
Взаимодействие DHCP и DNS необходимо для того, чтобы DNS-сервер вовремя получал информацию о новом IP клиента и мог сопоставить его с именем клиента в сети. Если сервера не будет взаимодействовать, это чревато ошибками и недоступностью клиентов.
Настроить данное взаимодействие можно в четыре шага при помощи пакета dnsmasq, доступного в стандартных репозиториях Ubuntu и Debian. Мы не будем давать детальную инструкцию по осуществлению, а лишь кратко опишем каждый шаг.
Шаг 1 — конфигурация сети
В первую очередь необходимо определиться с компьютером, который будет выполнять роль сервера. Важно выбрать тот компьютер (Ubuntu Server или Ubuntu Desktop), который вы не планируете выключать слишком часто. Если после полной настройки вы решите выключить компьютер, то вся сеть тоже выключится.
Выбранному компьютеру необходимо назначить статический IP. Делается это редактированием конфигурационного файла в директории /etc/network/interfaces.
Шаг 2 — установка dnsmasq
Установите пакет dnsmasq командой из терминала:
А затем откройте файл конфигурации /etc/dnsmasq.conf. Файл конфигурации dnsmasq очень большой, но он содержит комментарии с объяснениями того, за что отвечает каждая настройка. Чтобы добавить требуемые настройки, откройте файл и удалите решетку (#), означающую комментарий, в начале нужных строк.
Шаг 3 — настройка фаервола
Для изменения настроек фаервола можно использовать Ubuntu Uncomplicated Firewall. Используйте следующие команды:
Шаг 4 — изменение настроек роутера
Зайдите в настройки вашего роутера из браузера, отключите DHCP для локальной сети, измените все настройки DNS так, чтобы они указывали на ваш только что настроенный сервер. Последнее действие — перезапуск сети на сервере. Для этого вы можете просто перезагрузить компьютер или использовать команды:
Недостатки протокола DHCP
DHCP имеет свои уязвимости. Основная заключается в четырех шагах, необходимых для получения IP. Процесс DORA подразумевает рассылку сообщений широковещательного типа, когда первый откликнувшийся DHCP-сервер получает возможность предложить IP из своей области. Если злоумышленник сможет использовать свой сервер, который даст самый быстрый ответ клиенту, то у него откроется возможность получить контроль над действиями пользователя в сети и нанести существенный ущерб.
Еще одна брешь в безопасности — в том, что DHCP использует UDP-протокол. UDP — протокол обмена датаграммами без установления соединения, а значит, и без шифрования. Передаваемая по UDP информация не защищена и может быть «подслушана», что также может быть использовано злоумышленниками.
Третий недостаток — вновь ненадежность UDP, но другого рода. UDP не обеспечивает гарантию доставки информации. Этот протокол допускает потери и ошибки, которые могут сказаться и на работе DHCP, в частности при PXE-загрузке.
Заключение
Мы рассмотрели основные принципы работы DHCP-серверов. Несмотря на недостатки и частые доработки, протокол DHCP широко используется в современных сетях. Также изучили процесс DORA, основные опции и другие аспекты протокола. Надеемся, эта статья оказалась вам полезна.
ИТ База знаний
Курс по Asterisk
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Все, что вам нужно знать про DHCP
Про динамические адреса
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
DHCP за 200 секунд
Порассуждаем
Каждому устройству, подключенному к сети, нужен уникальный IP-адрес. Сетевые администраторы назначают статические IP-адреса маршрутизаторам, серверам, принтерам и другим сетевым устройствам, местоположение которых (физическое и логическое) вряд ли изменится. Обычно это устройства, предоставляющие услуги пользователям и устройствам в сети, поэтому назначенные им адреса должны оставаться постоянными. Кроме того, статические адреса позволяют администраторам удаленно управлять этими устройствами – до них проще получить доступ к устройству, когда они могут легко определить его IP-адрес.
Однако компьютеры и пользователи в организации часто меняют места, физически и логически. Это может быть сложно и долго назначать новые IP-адреса каждый раз, когда сотрудник перемещается. А для мобильных сотрудников, работающих из удаленных мест, вручную настройка правильных параметров сети может быть весьма непростой задачей.
Использование DHCP в локальной сети упрощает назначение IP-адресов как на настольных, так и на мобильных устройствах. Использование централизованного DHCP-сервера позволяет администрировать все назначения динамических IP-адресов с одного сервера. Эта практика делает управление IP-адресами более эффективным и обеспечивает согласованность внутри организации, включая филиалы.
DHCPv4 динамически назначает адреса IPv4 и другую информацию о конфигурации сети. Отдельный сервер DHCPv4 является масштабируемым и относительно простым в управлении. Однако в небольшом офисе маршрутизатор может быть настроен для предоставления услуг DHCP без необходимости выделенного сервера.
DHCPv4 включает три разных механизма распределения адресов для обеспечения гибкости при назначении IP-адресов:
Динамическое распределение является наиболее часто используемым механизмом DHCP и при его использовании клиенты арендуют информацию с сервера на определенный период. DHCP серверы настраивают так, чтобы установить аренду (лизинг) с различными интервалами. Аренда обычно составляет от 24 часов до недели или более. Когда срок аренды истекает, клиент должен запросить другой адрес, хотя обычно он снова получает старый.
Механизм работы DHCP
DHCPv4 работает в режиме клиент/сервер. Когда клиент взаимодействует с сервером DHCPv4, сервер назначает или арендует IPv4-адрес этому клиенту. Он подключается к сети с этим арендованным IP-адресом до истечения срока аренды и должен периодически связываться с сервером DHCP, чтобы продлить аренду. Этот механизм аренды гарантирует, что клиенты, которые перемещаются или выходят из строя, не сохраняют за собой адреса, которые им больше не нужны. По истечении срока аренды сервер DHCP возвращает адрес в пул, где он может быть перераспределен по мере необходимости.
Рассмотрим процесс получения адреса:
Теперь рассмотрим, как происходит продление аренды адреса:
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Dhcp сервер что это
DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети.
Был предложен в 1993 г., и наиболее полное современное описание DHCP содержится в документе RFC 2131 (март 1997 г.).
DHCP является расширением протокола BOOTP, использовавшегося ранее для обеспечения бездисковых рабочих станций IP-адресами при их загрузке, и сохраняет с ним обратную совместимость.
Цель DHCP — устранить два основных ограничения, накладывающихся на другие анагологичные протоколы, а именно: отсутствие поддержки динамического назначения IP-адресов и возможность передавать от сервера на станцию-клиент лишь небольшое число параметров конфигурации.
Содержание
Архитектура [ править ]
Работа протокола DHCP базируется на классической схеме клиент-сервер.
Сервер поддерживает пул свободных адресов и, кроме того, ведет собственную регистрационную базу данных.
Сообщения [ править ]
Взаимодействие DHCP-серверов с клиентами осуществляется путем обмена сообщениями.
Структура сообщения показана на рисунке, где в скобках указан размер поля в байтах.
Опишем подробнее поля:
Поле | Описание |
---|---|
op | Тип сообщения (1 = BOOTREQUEST, 2 = BOOTREPLY) |
htype | Тип адреса оборудования |
hlen | Длина адреса оборудования |
hops | Используется ретранслирующим агентом |
xid | Идентификатор транзакции между сервером и клиентом |
secs | Время с момента выдачи DHCPREQUEST или начала обновления конфигурации |
flags | Флаги (первый бит маркирует широковещательные сообщения) |
ciaddr | IP-адрес клиента |
yiaddr | (клиентский) IP-адрес |
siaddr | IP-адрес следующего сервера, участвующего в загрузке |
giaddr | IP-адрес ретранслирующего агента |
chaddr | адрес клиента |
sname | Хост-имя сервера (опция) |
file | Имя загрузочного файла |
options | Поле дополнительных параметров |
В роли транспортного протокола для обмена DHCP-сообщениями выступает UDP.
Эти номера портов, как и схожая структура сообщений, обеспечивают обратную совместимость DHCP с BOOTP. Конкретные процедуры взаимодействия клиентов и серверов BOOTP и DHCP регламентирует документ RFC 1542.
Алгоритм работы [ править ]
Получение IP адреса [ править ]
Выбор адреса DHCP-сервером [ править ]
Алгоритм работы DHCP-сервера при получении DHCPDISCOVER:
Следует отметить, что сервер не обязан отвечать на каждый поступивший запрос DHCPDISCOVER. Такой подход дает возможность управления использованием сети: например, можно разрешить серверу отвечать только тем клиентам, которые предварительно зарегистрировались с помощью специальной процедуры.
Истечение срока аренды адреса [ править ]
Когда срок аренды адреса подходит к концу клиент может:
Параметры конфигурации [ править ]
Для каждого клиента DHCP-сервер заводит в своей базе запись с параметрами конфигурации. Каждой записи соответствует уникальный ключ (например, ). Поддерживаемые параметры конфигурации определены в RFC 1122, RFC 1123, RFC 1196, RFC 1256.
Наиболее важные параметры:
Передача параметров конфигурации происходит в процессе получения IP-адреса. Если на клиенте адрес был задан вручную, то он отправляет сообщение DHCPINFORM, содержащее уже имеющийся адрес и запрос об отдельных параметрах конфигурации. DHCP-сервер проверяет правильность адреса клиента (но не наличие аренды) и отправляет DHCPACK с требуемыми параметрами конфигурации.
Протокол DHCP
Для выхода в сеть любому устройству (компьютеру, смартфону) нужен IP-адрес. В зависимости от способа подключения он может быть постоянным или меняющимся. В первом случае адрес присваивается на постоянной основе, а во втором – действует только в течение одного подключения. Такое подключение работает по протоколу DHCP. В статье мы расскажем, что это за протокол и как он работает, а также покажем, как подключить DHCP на Windows.
Какой IP-адрес может быть у устройства
IP-адрес устройства может быть статическим или динамическим.
Статический адрес присваивается на постоянной основе, а динамический выдается на время (например, на одну сессию). Для автоматической выдачи динамических адресов используется прокол DHCP.
Чтобы получить статический адрес, нужно заказать его у своего интернет-провайдера. В этом случае к сети вы будете всегда подключаться под одним и тем же IP-адресом. Если вы не заказывали эту услугу, то каждый раз при выходе в сеть будете подключаться под разными IP.
В первом случае пользователь с правами администратора сети делает настройку сетевого адаптера вручную — задает ему статический адрес. Во втором — динамический IP присваивается автоматически через протокол DHCP.
Что такое Dynamic Host Configuration Protocol (DHCP)
DHCP — это протокол прикладного уровня, который помогает назначать IP-адреса устройствам при подключении к серверу. Протокол DHCP автоматизирует выдачу адресов, а также их передачу следующим пользователям после отключения устройств или их перехода из одной подсети в другую. Протокол динамического присвоения IP-адресов функционирует по принципу DORA. DORA – это аббревиатура, которая обозначает названия этапов работы протокола DHCP:
Протокол DHCP: принцип работы
Discovery (обнаружение). На первом этапе сервер проверяет, в сети ли устройство. Технически этот процесс выглядит, как отправка отдельного запроса на универсальный адрес 255.255.255.255. Поскольку на этапе обнаружения у нового пользователя отсутствует свой IP, с его стороны отправляется MAC-адрес (уникальный идентификатор устройства) и IP 0.0.0.0.
Offer (предложение). На втором этапе подключения подбираются доступные варианты сетевой конфигурации присоединенного устройства. Сервер, работающий по протоколу DHCP, подбирает предложения с возможными подключениями и отправляет их на устройство по его уникальному MAC-адресу. По итогу для подключения выбирается только один вариант (чаще всего именно последний доступный вариант присоединения к сети).
Request (запрос). На третьем этапе подключения по DHCP отправляется запрос на подключение с устройства клиента. После того как клиент получил предложение со стороны сетевого адаптера, он отправляет запрос на присоединение к сети. Запрос включает в себя MAC-адрес клиента и IP, который отправил сервер на предыдущем этапе.
Acknowledge (подтверждение). На четвертом этапе сервер подтверждает подключение устройства. Он отправляет по MAC-адресу клиента сообщения с данными параметров, с помощью которых устройство будет авторизовано в сети. После успешной автоматической проверки соответствия всех настроек, соединение становится активным. С этого момента устройство может обмениваться данными с сервером.
Особенности протокола
Плюс DHCP в том, что IP-адреса распределяются автоматически между устройствами, что облегчает работу администратора. Однако у протокола есть уязвимость: при распределении IP злоумышленник может перехватить данные или подставить свои. Несмотря на это, протокол повсеместно применяется во всем мире, так как на данный момент DHCP — это единственное решение для выдачи динамических IP-адресов при администрировании серверов.
Как работает протокол DHCP при обновлении арендных IP-адресов
Сервер, работающий по протоколу DHCP, присваивает IP-адреса устройствам в момент их подключения к сети. Затем происходит обмен данными. Однако система динамического образования подразумевает, что адреса выдаются в своего рода аренду на ограниченный период времени. Время, на которое сервер выдает устройству IP-адрес, настраивается администратором. Оно может быть равно как нескольким минутам, так и месяцам.
Можно подумать, что недостаток протокола DHCP — необходимость отключать пользователя от сети каждый раз, когда время действия выданного IP-адреса закончится. Однако это не так: обновить IP-адрес можно без разрыва соединения. Этот процесс проходит в два этапа:
После того как половина времени, отведенного на действие выданного IP-адреса, истечет, система автоматически подаст запрос на обновление. Технически это происходит так же, как и подключение по принципу DORA. Только процедура сразу начинается с этапа отправки запроса.
Если по запросу на обновление адреса от сервера не приходит ответная информация, то система продолжает отправлять запросы. Если пройдет 87,5% времени аренды IP-адреса, но он так и не обновится, система заново выполнит алгоритм подключения по принципу DORA с самого первого этапа. Это поможет избежать ситуации, когда под одним адресом одновременно синхронизируются два клиента.
Как включить DHCP на Windows 10
По умолчанию протокол DHCP уже включен на Windows. Однако, если по какой-то причине он отключился, вы можете настроить его заново по инструкции. Ниже мы расскажем, как это сделать на Windows 10.
Через строку поиска откройте Службы:
Протокол DHCP, как включить
Правой кнопкой мыши кликните по пункту DHCP-клиент и нажмите Свойства:
Кликните Запустить, а затем ОК:
Если статус клиента находится в состоянии «Выполняется» или «Активно», значит протокол DHCP уже настроен.
Через строку поиска откройте Состояние сети:
Перейдите в раздел Настройки параметров адаптера:
Выберите нужную сеть, кликните по ней правой кнопкой мыши и откройте свойства:
Выберите протокол (IPv4 или IPv6) и нажмите Свойства:
Галочкой отметьте пункты «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера автоматически» и нажмите ОК:
Протокол DHCP
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
Этот раздел можно использовать для краткого обзора DHCP в Windows Server 2016.
Помимо этого раздела, доступна следующая документация по DHCP.
Протокол DHCP — это протокол клиента или сервера, который автоматически предоставляет узел протокола IP с его IP-адресом и другие связанные сведения о конфигурации, такие как маска подсети и шлюз по умолчанию. RFC 2131 и 2132 определяют протокол DHCP в качестве стандарта Internet Engineering Task Force (IETF), основанного на протоколе начальной загрузки (BOOTP), протокола, с помощью которого DHCP предоставляет много сведений о реализации. DHCP позволяет узлам получать необходимые сведения о конфигурации TCP/IP от DHCP-сервера.
Windows Server 2016 включает DHCP-сервер, который является необязательной ролью сервера сети, которую можно развернуть в сети для аренды IP-адресов и других сведений клиентам DHCP. все клиентские операционные системы на основе Windows включают dhcp-клиент как часть TCP/IP, а dhcp-клиент включен по умолчанию.
Зачем использовать DHCP?
Каждое устройство в сети на основе TCP/IP должно иметь уникальный IP-адрес одноадресной рассылки для доступа к сети и ее ресурсам. Без DHCP IP-адреса новых компьютеров или компьютеров, перемещаемых из одной подсети в другую, необходимо настроить вручную. IP-адреса для компьютеров, удаленных из сети, необходимо вручную освободить.
При использовании DHCP весь процесс автоматизирован и управляется централизованно. DHCP-сервер поддерживает пул IP-адресов и арендованный адрес любому клиенту с поддержкой DHCP при запуске в сети. Так как IP-адреса являются динамическими (арендованными), а не статическими (без постоянного назначения), адреса, которые больше не используются, автоматически возвращаются в пул для перераспределения.
Сетевой администратор устанавливает DHCP-серверы, которые сохраняют информацию о конфигурации TCP/IP и предоставляют клиентам с поддержкой DHCP в виде предложения аренды. DHCP-сервер хранит сведения о конфигурации в базе данных, которая включает в себя:
Допустимые параметры конфигурации TCP/IP для всех клиентов в сети.
Допустимые IP-адреса, поддерживаемые в пуле для назначения клиентам, а также исключенные адреса.
Зарезервированный IP-адрес адреса, связанные с конкретными клиентами DHCP. Это обеспечивает единообразное назначение одного IP-адреса одному клиенту DHCP.
Срок действия аренды или период времени, в течение которого IP-адрес может быть использован до продления срока аренды.
Клиент с поддержкой DHCP при принятии предложения аренды получает:
Допустимый IP-адрес для подсети, к которой подключается.
Запрошенные параметры DHCP, которые являются дополнительными параметрами, настроенными DHCP-сервером для назначения клиентам. Некоторые примеры параметров DHCP: маршрутизатор (шлюз по умолчанию), DNS-серверы и доменное имя DNS.
Преимущества DHCP
DHCP предоставляет следующие преимущества.
Конфигурация надежных IP-адресов. DHCP свертывает ошибки конфигурации, вызванные ручной конфигурацией IP-адресов, например типографскими ошибками, или конфликты адресов, вызванные назначением IP-адреса более чем одному компьютеру одновременно.
Сокращенное администрирование сети. Служба DHCP включает следующие функции для сокращения сетевого администрирования:
Централизованная и автоматизированная конфигурация TCP/IP.
Возможность определять конфигурации TCP/IP из центрального расположения.
Возможность назначать полный диапазон дополнительных значений конфигурации TCP/IP с помощью параметров DHCP.
Эффективная обработка изменений IP-адресов для клиентов, которые должны обновляться часто, например для портативных устройств, которые перемещаются в разные места в беспроводной сети.
Пересылка начальных сообщений DHCP с помощью агента ретранслятора DHCP, что устраняет необходимость в DHCP-сервере для каждой подсети.
Что такое и как работает DHCP-протокол
Если обратиться к документации, то можно увидеть, что DHCP (Dynamic Host Configuration Protocol) — это прикладной протокол, который умеет автоматически назначать IP-адрес любому устройству в сети. Далее объясним суть этого протокола человеческим языком и расскажем, как он работает.
Посмотрите на ваш компьютер. Он может работать в сети благодаря наличию IP-адреса, который состоит из четырёх блоков цифр, разделённых точкам. Например: 176.53.182.139. Это как почтовый адрес человека, только вместо города, дома и квартиры указываются узлы связи и маршрутизаторы. Без IP-адреса вы не сможете обмениваться данными с другими компьютерами, подключёнными к сети.
Не только ваш компьютер, но и вообще любое устройство при выходе в сеть получает static IP или dynamic IP. Статический присваивается вручную администратором сети (им может быть сисадмин в вашей компании или ваш провайдер). Динамический присваивается автоматически во время подключения к сети. Он ваш только на определённый период времени. Новый сеанс подключения почти всегда означает, что вам будет присвоен новый IP. Это удобно, когда к сети подключено большое количество устройств — не нужно каждому из них вручную задавать сетевые параметры.
Протокол DHCP отвечает за автоматическое назначение IP-адреса для любого подключающегося к сети устройства. Он представляет собой набор правил и цепочек действий, регулирующих соединение и обмен информационными пакетами между сетевыми устройствами. Работает по модели «клиент-сервер», где в роли клиента выступает ваш компьютер или любое другое устройство, которому требуется IP-адрес. Сервер же раздаёт эти адреса, но с тем расчётом, чтобы у разных устройств IP не были одинаковыми.
Обмен сообщениями между DHCP-сервером и клиентом
Обмен данными можно разбить на четыре базовых этапа, которые коротко называют DORA. Разберём каждый из них.
Прочие варианты сообщений
Выше мы перечислили базовые типы сообщений, которыми могут обмениваться сервер и клиент. Теперь поговорим о сообщениях, которые тоже могут встретиться при взаимодействии с DHCP-сервером.
Если DHCP-сервер и клиент находятся в разных сетях
Многие сети разделены на подсети. Сегментирование даёт возможность значительно улучшить эффективность работы сети, а также обеспечить её безопасность в случае компрометации или сбоя в одном из сегментов. Но при этом появляется вероятность того, что связка сервер–клиент будет разбита маршрутизаторами. А маршрутизаторы broadcast-трафик обычно не пропускают, из-за чего клиент и сервер из разных подсетей теряют возможность обмениваться сообщениями. Им надо помочь.
DHCP relay (ретрансляция) помогает решить проблему, так как позволяет роутеру передавать broadcast-трафик, относящийся к протоколу DHCP. Благодаря этой настройке между клиентом и сервером может вестись полноценный обмен сообщениями.
Что такое DHCP и как это работает?!
Привет, друзья! Сегодня я хочу рассказать что же такое DHCP, для чего это нужно и как всё работает. Почему я поднимаю эту тему? Да просто уже устал объяснять прописные истины. Ко мне постоянно поступает множество вопросов по настройкам модемов и роутеров и я понимаю, что большинство просто не в курсе даже самых-самых основополагающих принципов функционирования локальной сети. Смысл тогда лезть в настройку устройства, если не понимаешь даже что собираешься делать?! Именно для повышения уровня компьютерной грамотности я и написал эту статью.
Напомню сначала, что есть два основных типа вычислительных сетей — локальные (LAN) и глобальные (WAN).
Локальная сеть работает в пределах одной комнаты \ квартиры \ здания \ организации. То есть её размер ограничен одним или несколькими сегментами.
Глобальная сеть — это, конечно же, самая крупная глобальная сеть в мире — Интернет. К какой бы сети Вы не подцепились — Вы должны получить в ней адрес, помогающий идентифицировать любое подключенное устройство. Он будет присвоен на время (динамически) или навсегда (статически). Кроме этого вы получаете маску сети, адрес шлюза и DNS-серверов. Без этого работать ничего нормально не будет. Так вот контролировать этот процесс в автоматическом режиме и призван протокол DHCP. Без него в крупной сети будет полнейший бардак.
Есть такой протокол DHCP….
И вот мы плавно подошли к основной теме статьи. DHCP — Dynamic Host Configuration Protocol— это протокол динамической настройки узла. Он клиент-серверный и предназначен для настройки каждого подключенного хоста с помощью удаленного сервера. На сегодняшний день DCHP поддерживается «из коробки» практически каждого современной операционной системой. В крупных сетях это реально отличная альтернатива рутинной ручной настройке сетевых параметров для сервера и подключаемых устройств, позволяющая системному администратору упросить настройку и управление своим сегментом сети.
Протокол DHCP имеет свой собственный порядок обмена сообщениями между сервером и клиентами, в процессе которого они обмениваются сообщениями. Структура сообщений DHCP выглядит так:
Поле | Длина (байты) | Описание |
op | 1 | Тип сообщения |
htype | 1 | Тип адреса аппаратной части |
hlen | 1 | Длина адреса аппаратной части |
hops | 1 | Используемое количество агентов ретрансляции. Клиенты устанавливают значение на 0. |
xid | 4 | ID (уникальный идентификационный номер) транзакции используемой клиентом и серверов во время сессии |
secs | 2 | Прошедшее время (в секундах) с момента запроса клиентом начала процесса |
flags | 2 | Значение флагов |
ciaddr | 4 | IP-адрес клиента (если имелся ранее). |
yiaddr | 4 | IP-адрес, предложенный сервером клиенту |
siaddr | 4 | IP-адрес сервера |
giaddr | 4 | IP-адрес relay-агента (агента ретрансляции) |
chaddr | 16 | Адрес аппаратной части клиента (в основном MAC). |
sname | 64 | Имя сервера. |
file | 128 | Название загрузочного файла. |
options | Переменная. Поле опций, где указываются различные дополнительные параметры конфигурации | Дополнительные опции |
Как работает DHCP
При работе протокола динамической адресации используются четыре типа сообщений, которыми обмениваются клиент и сервер. Давайте рассмотрим их подробнее.
DHCPDISCOVER
С данного сообщение начинается процесс взаимодействия между клиентом и сервером посредством DHCP. Оно отправляется клиентом (компьютером, телефоном, планшетом, телевизором или устройством), которое подключилось к данной сети. Сообщение широковещательное, то есть в нём используется 255.255.255.255 как IP-адрес доставки, а исходным адресом является 0.0.0.0
DHCPOFFER
Это сообщение отправляется сервером хосту в ответ на полученный ранее DHCPDISCOVER. В нём содержатся все необходимые сетевые настройки, применив которые новое устройство сможет работать в этом сегменте.
DHCPREQUEST
Опять широковещательно сообщение, которое клиент отправляет серверу в ответ DHCPOFFER. Оно означает, что клиент выбрал отправленный ему вариант конфигурации сетевого подключения.
DHCPACK
Финальное сообщение от сервера DHCP клиенту в ответ на DHCPREQUEST. Оно обозначает конец процесса общения, начатого с сообщения DHCPDISCOVER. Получив его, клиент должен применить согласованные ранее настройки сетевого интерфейс, используя предоставленные опции.
Прочие сообщения протокола:
DHCPNAK
Полная противоположность сообщению DHCPACK. Оно означает прекращение общения между сервером, описанного выше. Необходимо начать процедуру заново!
DHCPRELEASE
Сообщение отправляется клиентом в тот момент, когда он завершает процесс использования занимаемого им IP-адреса.
DHCPDECLINE
Если предлагаемый сервером IP-адрес уже занят, то клиент отправляет серверу данное сообщение и после этого процесс их общения перезапускается с самого начала.
DHCPINFORM
Этот вид сообщений отправляется клиентом серверу в тех случаях, когда клиенту присвоен статический IP-адрес, и выделение динамического не требуется. В ответ сразу прилетает DHCPACK.
Механизм общения клиента и сервера
Теперь, когда мы узнали все типы используемых в протоколе DHCP сообщений, давайте посмотрим как на практике происходит общение клиента и сервера.
Этап 1. Клиентское устройство — компьютер, телефон, принтер, телевизор и т.п.- подключается к сети. Он отправляет широковещательный запрос DHCPDISCOVER в поисках сервера. Для этого используется транспортный протокол UDP и порт 67. Начинается процесс авторизации.
Этап 2. Сервер получил запрос DHCPDISCOVER, то в ответ шлёт сообщение DHCPOFFER, где предлагает клиенту варианты настройки сетевого адаптера — IP-адрес, маску подсети, шлюз и DNS-серверы. и информация о шлюзе. Отправка идёт уже не в широковещательном формате а непосредственно хосту, отправившему запрос. Для этого в поле CHADDR прописывается его MAC-адрес. Теперь используется тот же протокол UDP, но порт уже 68.
Этап 3. Клиент просматривает выбранные конфигурации, выбирает приемлемую ему и формирует сообщение DHCPREQUEST, указав в нём какой вариант он выбрал. Если в сети несколько DHCP-серверов и прилетело несколько сообщений DHCPOFFER, то клиент указывает в ответе нужный ему сервер.
Этап 4. Сервер получает от клиента DHCPREQUEST и отправляет в ответ DHCPACK, говоря клиентскому устройству о том, что оно теперь в праве использовать назначенный ему IP-адрес. На этом процесс общения оканчивается и новый хост появляется в сети.
Аренда IP-адресов
Когда срок аренды адреса истечёт, а подтверждение не прилетит, либо прилетит пакет DHCPRELEASE, сервер сможет присвоить данный IP-адрес другому компьютеру или устройству, подключающемуся в данный момент времени.
Настройка DHCP на роутере
Первым делом Вы должны попасть в настройки своего WiFi-роутера. Сделать это можно либо с компьютера, введя в браузере его локальный IP (обычно это 192.168.1.1 или 192.168.0.1). После авторизации необходимо в главном меню веб-интерфейса найти раздел, отвечающий за локальную сеть (LAN). В некоторых случаях, как в моём примере, настройка DCHP на роутере выведена в отдельный раздел:
Включение и выключение сервера обычно выполняется с помощью галочек «Включить»/»Отключить» или «Enable»/»Disable». На некоторых моделях это может быть выполнено в виде выпадающего списка.
Как правило, на любом WiFi-маршрутизаторе можно задать пул IP-адресов для клиентов, которые будут выдаваться сервером. При необходимости его можно увеличить, либо убавить, оставив адреса для статических подключений.
Ещё один важный параметр — это время аренды IP-адреса (тот самый Lease Time) о котором я рассказывал выше. По умолчанию на моём роутере он выставлен на 120 минут. Максимальное значение — 2000 минут. После того, как Вы внесёте какие-то изменения в настройки устройства — обязательно не забудьте сохранить настройки. В противном случае, после перезагрузки в силу вступят старые параметры.