Dhcp

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

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

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

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

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

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

концепция

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

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

Как работает DHCP

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

DHCP discover

Клиентские компьютеры передают сообщения в физической подсети для обнаружения доступных DHCP-серверов. Этот клиент-компьютеры создает пакет протокола udp (User Datagram Protocol) с назначением широковещательной передачи по умолчанию 255.255.255.255 или определенным адресом широковещательной передачи подсети, если он настроен.

DHCP offer

Когда DHCP-сервер получает запрос аренды IP от клиента, он резервирует IP-адрес для клиента и расширяет предложение аренды IP, отправив сообщение DHCPOFFER клиенту. Это сообщение содержит MAC-адрес клиента, IP-адрес, который предлагает сервер, маску подсети, Продолжительность аренды и IP-адрес DHCP-сервера, делающего предложение.

DHCP request

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

DHCP acknowledgement

Когда DHCP-сервер получает сообщение DHCPREQUEST от клиента, процесс настройки переходит в свою заключительную фазу.

Фаза подтверждения включает отправку пакета DHCPACK клиенту. Этот пакет включает Продолжительность аренды и любую другую информацию о конфигурации, которую клиент мог бы запросить. На этом этапе процесс настройки IP завершен.

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

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

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

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

Для Windows 8 и Windows 10

  • На настольном компьютере нажмите клавиши Windows + X, чтобы открыть меню Power User;
  • Выберите параметр «Сетевые подключения» (Network Connections);
  • Вы должны увидеть, как минимум, два типа сетевых подключений: Ethernet и Wi-Fi. Дважды кликните по активному сетевому соединению;
  • В окне состояния сетевого подключения нажмите кнопку «Свойства» (Properties);
  • Нажмите кнопку «Интернет протокол версии 4» и нажмите кнопку «Свойства». Возможно, для Интернет протокола версии 6 вам понадобится выполнить также и некоторые дополнительные шаги.
  • Если вы хотите включить DHCP, убедитесь, что выбрана опция «Получить IP-адрес автоматически», а также опция «Получить адрес DNS-сервера» автоматически

Для Windows Vista и Windows 7

  • Откройте панель управления.
  • Нажмите значок «Сеть и общий доступ».
  • В разделе «Просмотр активных сетей» щелкните ссылку «Подключение по локальной сети».
  • В окне «Состояние подключения по локальной сети» нажмите кнопку «Свойства».
  • Выделите вариант «Интернет протокол версии 4» и нажмите кнопку «Свойства». Возможно, для Интернет протокола версии 6 вам понадобится выполнить некоторые дополнительные шаги.

Если вы хотите включить DHCP, убедитесь, что выбраны опции «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера» автоматически.

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

Для Windows XP и более ранних версий ОС

  • Откройте панель управления.
  • Дважды щелкните «Сетевые подключения».
  • Примечание. Вместо нее вы можете увидеть ссылку «Сетевые и интернет-соединения». В этом случае дважды кликните по ней, а затем выберите «Сетевые подключения».
  • Щелкните правой кнопкой мыши на Local Area Connection (Соединение местной сети) и выберите Properties (Свойства).
  • Выделите параметр Internet Protocol (TCP / IP) и нажмите кнопку «Свойства».

Если вы хотите включить DHCP, убедитесь, что выбраны опции «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера» автоматически.

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

Как узнать, используется ли DHCP в данный момент?

Простым способом определения того, включен ли сейчас DHCP или отключен, является использование команды ipconfig / all из командной строки. При вводе этой команды для «Подключение локальной сети Ethernet-адаптера» одна из строк скажет, включен ли DHCP. Если включен, то вы увидите строку

DHCP Enabled. . . . . . . . . . . : Yes

Прием/отправка пакета DHCP

udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,socket.IPPROTO_UDP)
udp_socket.bind((gconfig,67))
  • AF_INET — означет что формат адреса будет IP: порт. Может быть еще AF_UNIX — где адрес задается именем файла.
  • SOCK_DGRAM — означает, что принимаем не «сырой пакет», а уже прошедший через файревол, и с обрезанным частично пакетом. Т.е. получаем только пакет UDP без «физической» составляющей обертки пакета UDP. Если использовать флаг SOCK_RAW, то необходимо будет еще парсить и это «обертку».
                    udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) #переключаем сокет в режим отправки бродкаста
                    rz=udp_socket.sendto(packetack, (gconfig,68))
                        udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # переключаем сокет в режим "много слушаетелей"
                        rz=udp_socket.sendto(packetack, addr)

ARP Таблицы

ARP протокол служит для определения MAC-адреса по заранее известному IP-адресу.

Работает ARP в следующих режимах:

  • Enabled – работает в обычном режиме. Режим по умолчанию;
  • Disabled – не работает;
  • Proxy-arp – ответ на ARP-запросы от всех подключенных сетей. Когда мы подключаемся из другой сети (client-to-site, например, по L2TP соединению), установив данный режим работы, у нас получится определить MAC адрес другой сети;
  • Local-proxy-ARP – на все запросы в ответе указывает MAC-адрес маршрутизатора вместо указания реального MAC-адреса нужного хоста. В этом режиме трафик обязательно будет обрабатываться маршрутизатором;
  • Reply-only – только ответы на ARP-запросы. ARP-таблица должна быть заполнена статически. Маршрутизатор будет выполнять только ответы на ARP-запросы.

Режим Reply-only увеличивает безопасность сети, за счет того, что хосты не смогут выйти в интернет с IP-адресом, отличным от указанного в ARP-таблице;

Как настроить ARP записи в Mikrotik

По умолчанию ARP таблица заполняется динамически. Эти данные мы можем увидеть открыв:

IP => ARP.

А также  можем статически привязать IP-адрес MAC нажав на нужную строку и выбрав пункт Make Static:

Таким образом, мы добавили ARP-запись.

Ручное добавление ARP записи Mikrotik

Если необходимо добавить ARP-запись вручную, то сделать это можно следующим образом:

IP => ARP => “+”.

В открывшемся окне зададим значения IP и MAC, указав интерфейс:

Добавляем ARP запись через DHCP на Mikrotik

Чтобы ARP-записи добавлялись при помощи DHCP, выполним следующую настройку:

  • IP => DHCP Server;
  • На вкладке DHCP, двойным нажатием левой кнопкой мыши, откроем свойства.

На странице General отметим галочкой пункт Add ARP For Leases:

Теперь DHCP-сервер на маршрутизаторе Mikrotik будет добавлять ARP-записи в таблицу. Это может быть полезно для небольшой сети. Давайте рассмотрим на примере, как можно повысить безопасность сети, используя данную функцию.

DHCP + ARP в Mikrotik. Повышаем безопасность локальной сети

В данном “кейсе” мы модифицируем конфигурацию DHCP сервера, показанную в данной статье, таким образом, что IP-адреса будут выдаваться из существующих записей, добавляя ARP запись. И переведем ARP протокол для внутренней сети в режим Reply-only, чтобы маршрутизатор Mikrotik выполнял только ответы на ARP-запросы.

Для начала назначим статический IP для хоста в сети:

IP => DHCP Server => Leases.

Нажатием правой кнопкой мыши по устройству, выбираем пункт Make Static:

Далее переходим на вкладку DHCP и двойным нажатием открываем свойства.

На странице General меняем настройки:

  • Address Pool: static-only, чтобы сетевые адреса назначались из существующих записей;
  • Установить галочку Add ARP For Leases, при этом DHCP будет заполнять ARP таблицу.

Следующим шагом настроим режим reply-only для ARP, на интерфейсе Bridge:

  • Interface => bridge1;
  • На вкладке General установим свойство ARP в режим reply-only:

На этом настройка закончена. Теперь наш DHCP-Сервер выдает сетевые настройки только тем устройствам, MAC адрес которых присутствует в таблице. При этом заполняет ARP таблицу, запрещая хостам которых нет в таблице доступ в интернет.

Полезно будет ознакомиться со статьями:

  • Настройка DNS Server на Mikrotik
  • Как восстановить прошивку MikroTik с помощью Netinstall
  • Сброс настроек MikroTik hAP ac2
  • Как сохранить, перенести и восстановить настройки MikroTik

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

Еще немного про DHCP

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

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

Есть второй вариант: нужно нагрузить сервер, но при этом не занимать новые IP-адреса в сети, чтобы не исчерпать весь пул свободных адресов (такая атака называется DHCP starvation). Как вы уже поняли, необходимо отправлять большое количество запросов DHCPDISCOVER, поскольку сервер должен обработать каждый из них и отправить в ответ DHCPOFFER. Однако, в рамках данной транзакции DHCPREQUEST мы отправлять не будем, поэтому сервер будет его ждать. IP-адрес не будет считаться выделенным, потому что процедура получения IP не завершена.

Давайте посмотрим, как это выглядит на практике.

Графы нагрузки и процессы до отправки DHCPDISCOVER-запросов:

На рисунках видно, что load average роутера колеблется от 0.1 до 0.3, и процесс dnsmasq занимает 0% CPU.

Графы нагрузки, процессы и список DHCP-клиентов во время отправки DHCPDISCOVER-запросов:

Load average роутера повысился до 1.96, и он уже не успевает отвечать на все запросы DHCPDISCOVER, процесс dnsmasq занимает целых 64% CPU, но при этом в списке DHCP клиентов только наш хост.

В результате, мы и сервер немного нагрузили, и IP-адреса не заняли. Если мы отфильтруем все сгенерированные нами же запросы DHCPDISCOVER, вероятнось того, что мы ответим быстрее реального DHCP-сервера, значительно увеличится. Задача выполнена, идем дальше.

Теперь поговорим о :

Value Message_Type
1 DHCPDISCOVER
2 DHCPOFFER
3 DHCPREQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNAK
7 DHCPRELEASE
8 DHCPINFORM

Первые шесть типов сообщений мы уже разобрали, осталось всего два: седьмой (DHCPRELEASE) и восьмой (DHCPINFORM). Остановимся на них подробнее.

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

Сообщение информации DHCPINFORM предназначено для определения дополнительных сетевых параметров теми клиентами, у которых IP-адрес настроен вручную. Исходя из своего опыта, можем сказать, что такие сообщения отправляют только Windows хосты :(. Сервер отвечает на подобный запрос DHCPACK без выделения IP-адреса. Для этих сообщений существует свой проект rfc. Вы уже поняли, что мы можем выставить в DHCPACK свой шлюз, DNS, и т.д. Главное — ответить раньше реального DHCP сервера, а эта проблема уже решена выше.

Как включить dhcp на windows 7/ windows 8?

На следующем этапе необходимо включить dhcp клиент на вашем ПК. Для этого нажмите Win+R, в открывшемся окне введите команду «services.msc» и кликните «Ok».

Вам откроется окно «Службы», где следует найти службу «dhcp клиент» и проверить, чтобы в столбце «Состояние» было указано «Работает», а в столбце «Тип запуска» прописано «Автоматически».

Если dhcp не включен на сетевом адаптере:

— кликните по выделенной строке правой кнопкой мыши;

— выберите в контекстном меню «Свойства»;

— запустите dhcp клиент службу с помощью кнопки «Пуск».

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

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

Для этого перейдите «Панель управления»-> «Оборудование и звук» и в правом верхнем углу нажмите «Диспетчер устройств». Здесь нужно удостовериться что сетевая карта находиться в списке активных устройств, а ее имя соответствует фактическому названию.

Как работает DHCP

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

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

ПРЕДЛОЖЕНИЕ DHCP
Это сообщение отправляется с сервера на хост в ответ на ранее полученный DHCPDISCOVER. В нем есть все необходимые сетевые настройки, применив которые новое устройство сможет работать в этом сегменте.

DHCREQUEST
Опять же, широковещательное сообщение, которое клиент отправляет серверу в ответ на DHCPOFFER. Это означает, что заказчик выбрал отправленную ему опцию для настройки сетевого подключения.

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

Другие сообщения протокола:

DHCPNAK
Полная противоположность сообщению DHCPACK. Это означает прекращение связи между серверами, описанными выше. Необходимо начинать процедуру заново!

DHCPRELEASE
Сообщение отправляется клиентом, когда он завершает процесс использования IP-адреса, который он занимает.

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

ИНФОРМАЦИЯ О DHCP
Этот тип сообщения отправляется от клиента к серверу в случаях, когда клиенту назначается статический IP-адрес и динамическое выделение не требуется. В ответ сразу же приходит DHCPACK.

Механизм общения клиента и сервера

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

Шаг 1. Клиентское устройство – компьютер, телефон, принтер, телевизор и т.д. – подключен к сети. Отправляет широковещательный запрос DHCPDISCOVER в поисках сервера. Для этого используется транспортный протокол UDP и порт 67. Начинается процесс авторизации.

Этап 2. Сервер получил запрос DHCPDISCOVER, а затем отправляет сообщение DHCPOFFER в ответ, предлагая клиенту параметры для настройки сетевого адаптера: IP-адрес, маску подсети, шлюз и DNS-сервер, а также информацию о шлюзе. Отправка осуществляется не в широковещательном формате, а напрямую на хост, отправивший запрос. Для этого его MAC-адрес записывается в поле CHADDR. Сейчас используется тот же протокол UDP, но порт уже 68.

Шаг 3. Клиент просматривает выбранные конфигурации, выбирает приемлемую для него и генерирует сообщение DHCPREQUEST, в котором указывает, какой вариант он выбрал. Если в сети несколько DHCP-серверов и получено несколько сообщений DHCPOFFER, клиент указывает в ответе нужный ему сервер.

Шаг 4. Сервер получает DHCPREQUEST от клиента и отвечает DHCPACK, информируя клиентское устройство о том, что теперь ему разрешено использовать назначенный ему IP-адрес. На этом процесс связи заканчивается, и в сети появляется новый хост.

Аренда IP-адресов

Как я сказал ранее, IP-адреса выдаются DHCP-сервером в течение заранее определенного времени – Lease Time. Это значение устанавливается во время конфигурации сервера, обычно в минутах или часах, но в некоторых случаях его также можно установить в секундах. Время аренды периодически обновляется, чтобы уведомить сервер об активности узла. Как только контракт будет наполовину выполнен, клиент DCHP попытается автоматически продлить контракт, обмениваясь сообщениями DHCPREQUEST и DHCPACK.

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

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

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

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

DHCP для нескольких подсетей

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

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

Добавить комментарий

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

Adblock
detector