Клиенты получают неверные настройки (IP-адреса) по DHCP

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

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

Установка Windows Server 2008 DCHP Server очень проста. DHCP Server теперь доступен в качестве ‘роли’ в Windows Server 2008 ‘ а не в качестве компонента windows, как это было в прошлом.

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

Чтобы начать процесс установки DHCP, нажмите Добавить роли в окне Задачи начальной конфигурации или из Server Manager ‘ Роли ‘ Добавить роли.

Рисунок 1: Добавление новой роли в Windows Server 2008

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

Далее, выберите ту роль, которую хотите установить DHCP Server Role, и нажмите Далее.

Рисунок 2: Выбор роли DHCP Server

Если вашему серверу не присвоен статический IP адрес, вы получите предупреждение о том, что нельзя устанавливать DHCP с динамическим IP адресом.

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

С другой стороны, вы можете (необязательно) настроить ваш DHCP Server во время этой части установки.

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

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

Рисунок 3: Связывание сетевого подключения

Мастер спрашивает, ‘на каком интерфейсе вы хотите запустить службы DHCP?’ Я выбрал умолчания и нажал Далее.

Затем я ввел имя своего Родительского домена, Предпочитаемый DNS сервер и альтернативный DNS сервер (как показано ниже) и нажал Далее.

Рисунок 4: Введение информации домена и DNS

Я решил НЕ использовать WINS в своей сети и нажал Далее.

Затем мне было предложено настроить границы видимости DHCP для нового сервера DHCP. Я решил задать диапазон IP адресов со значением чтобы охватить 25+ клиентских ПК в своей локальной сети. Для этого я нажал Добавить, чтобы добавить новую границу видимости. Как видно ниже, я назвал границу WBC-Local, настроил начальный и конечный IP адреса со значением , маску подсети , основной шлюз , тип подсети (проводной), и активировал границу.

Рисунок 5: Добавление новой DHCP границы

На странице добавления границы я нажал Далее, чтобы добавить новую границу (когда DHCP Server был установлен).

Я решил Отключить DHCPv6 режим без запоминания для этого сервера и нажал Далее.

Затем я подтвердил выбранные опции установки DHCP (в окне ниже) и нажал Установить.

Рисунок 6: Подтверждение выбранных опций установки

После нескольких секунд DHCP Server был установлен, и я увидел окно, показанное ниже:

Рисунок 7: Успешная установка Windows Server 2008 DHCP Server

Я нажал Закрыть, чтобы закрыть окно установки, а затем перешел к тому, как управлять моим новым сервером DHCP.

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

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

Вводим команду, для установки компонента DHCP сервера:

sudo apt-get install isc-dhcp-server

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

Соглашаемся с установкой нажатием кнопки Y.

Открываем файл конфигурации интерфейса DHCP сервера, командой:

sudo nano /etc/default/isc-dhcp-server 

Добавим в поле INTERFACES=”” в кавычки, название карты, которая смотрит в локальную сеть (в моем случае это enp9s0).

Настройка Ubuntu Server: Конфигурирование файла интерфейса DHCP сервера

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

Настройка конфигурационного файла DHCP сервера

Открываем файл конфигурации сервера, командой:

sudo nano /etc/dhcp/

«Закомментируем»  следующие строки, т.е. установим перед строкой знак #, в этом случае это считается комментарием и данная строка операционной системой не обрабатывается.

(Кстати, вы и сами можете добавлять комментарии к изменяемым вами строкам, для понимания или выделения вносимых вами изменений в файлы конфигурации)

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

option domain-name «»option domain-name-servers , ;default-lease-time 600; max-lease-time 7200;Ubuntu Server: конфигурирование файла

Так как мой сервер DHCP будет единственным в сети, в первую очередь снимаем знак # перед параметром authoritative;

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

Ищем строку # A slightly different configuration for an internal subnet, снимаем комментирование со строк ниже и устанавливаем следующие параметры: subnet netmask { range ; option domain-name-servers ; option domain-name ««; option subnet-mask ; option routers ; option broadcast-address ; default-lease-time 604800; max-lease-time 604800; }

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

Что мы сделали: Указываем диапазон сети; Начало и конец списка выдаваемых IP адресов, оставив первые 19 адресов для различных служебных устройств: точки WiFi, другие серверы и пр.; Имя домена — имя вашей сети, обязательно поставьте в конце .loc означающее что это локальный, а не интернет домен; Адрес роутера, адрес интернет шлюза (наш сервер); Адрес широковещательной рассылки (зарезервированный системой адрес), заканчивается на 255; Время предоставления и максимальное время выделения IP адреса.

Читайте также:  Как восстановить Windows store в Windows 10?

Ubuntu Server: Конфигурируем параметры локальной сети

Перезапускаем DHCP сервер, командой:

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

sudo /etc/init.d/isc-dhcp-server restart

Если все верно, появится вот такое сообщение.

Ubuntu Server5: Успешный перезапуск службы DHCP

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

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

Диагностика на стороне клиента

Чтобы понять, что происходит, первым делом, конечно, следует проверить, подключён ли клиент физически к проводной или беспроводной сети. Если да, то самое время приступать к проверке сетевых настроек на устройстве клиента с помощью утилит ipconfig /all (в командной строке Windows), ifconfig или ip addr (в терминале Linux).

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

Вариант 1. Текущий IP-адрес имеет вид Х.Х

Скорее всего, на клиентской машине при этом установлена ОС Windows. Это значит, что клиенту действительно не удалось получить сетевые настройки, потому что DHCP-сервер не отвечал, и адрес был сгенерирован службой APIPA (Automatic Private IP Addressing) из диапазона – Если клиент — Linux-машина, адрес может принимать вид 0.0.0.0, либо отсутствовать в принципе.

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

  • отключиться от сети на 10–30 секунд и подключиться снова; 
  • перезагрузить устройство; 
  • выполнить последовательно команды. В командной строке Windows: ipconfig /release, затем ipconfig /renew. В терминале Linux: dhclient -v -r, потом dhclient или dhcpcd -k, затем dhcpcd ().

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

Вариант 2. Текущий IP-адрес не из диапазона – , но и не из того диапазона адресов, которые должен выдавать DHCP-сервер

Диагностика на стороне клиента

Как известно, чудес не бывает. Если настройки, которые получает клиент, не от доверенного DHCP-сервера в сети, значит, их раздаёт кто-то другой. Тот, кто случайно или специально подключил к сети DHCP-сервер со своей конфигурацией. Возможно, это обычный Wi-Fi-роутер, к которому кабель по ошибке подключили через один из LAN-портов. Тогда ваша задача — найти недоверенный DHCP-сервер и предотвратить такие попытки в будущем.

Читайте также:  Бездисковая загрузка по технологии iSCSI на базе ОС Windows

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

Очевидно, что предложение от доверенного DHCP-сервера приходит позже, скорее всего, потому, что он дальше от клиента. Для последующей диагностики на устройстве клиента нужно установить анализатор сетевого трафика (Wireshark или tcpdump), запустить его, отфильтровав трафик по типу протокола DHCP или портам 67–68, и посмотреть в DHCP-ответах IP и MAC адрес DHCP-сервера, который их отправляет: 

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

Вариант 3. Текущий IP-адрес корректный, но доступа к интернету и другим сетевым ресурсам по-прежнему нет 

Если это так, то стоит вернуться к проверке не только самого IP-адреса, но и всех остальных настроек. И особенно к проверке маски, адреса шлюза по умолчанию и адресов DNS-серверов, так как именно через шлюз устройству предстоит связываться с другими сетями, а с помощью DNS-серверов — преобразовывать доменные имена в IP-адреса.

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

История аренды IP-адресов на DHCP сервере

Добрый день! Уважаемые читатели и гости одного из популярнейших IT блогов В прошлый раз мы с вами разобрали тему по отключению защитника Windows 8.1. Сегодня мы разберем интересную тему по системному администрированию, а именно, как и где посмотреть историю аренды IP-адресов на сервере DHCP в Windows. Я расскажу вам сценарии, при которых эти знания окажутся для вас весьма полезными и необходимыми, да и вообще инженеры очень редко смотрят и изучают логи DHCP сервера.