как узнать работает ли dhcp
Настраиваем соединение по протоколу DHCP
Современному человеку жизнь не мила без всемирной паутины, а неполадки с интернет подключением — наши злейшие враги, с которыми ведется непримиримая борьба. Эта статья вооружит вас знаниями, как справиться с ситуацией, если при установке соединения выдается ошибка «DHCP не включен на сетевом адаптере».
Содержание:
Что такое DHCP?
DHCP — это сетевой протокол, который выполняет функцию автоматической настройки параметров сети TCP/IP, получая их по запросу от DHCP сервера.
На практике это означает обмен определенными сообщениями между DHCP клиентом на устройстве и сервером во время установки сетевого подключения. В ходе коммуникации клиент получает новые или подтверждает старые значения таких параметров сети:
IP адрес для устройства;
DHCP: как работает?
Сервер обрабатывает клиентские запросы и выдает в аренду на определенное время IP адреса из своего диапазона. Если время заканчивается, клиент либо продлевает срок аренды, либо освобождает адрес, что также происходит путем обмена специальными сообщениями. Все запросы сервер записывает в свою базу данных, чтобы избежать конфликта адресов, то есть не выделить один адрес двум узлам одновременно.
Конфликт адресов все же может возникнуть, если на одном из устройств в сети IP присвоен вручную. При подключении нового компьютера, сервер может попытаться выдать ему адрес, который уже занят, в результате чего интернет соединение не будет установлено. Как решить эту проблему, будет рассмотрено далее.
Протокол DHCP широко используется благодаря тому, что дает возможность легко добавлять новые компьютеры к сети и изменять параметры подключения на сервере вместо ручной перенастройки каждого устройства.
Для использования протокола DHCP вам понадобится:
настроить DHCP на маршрутизаторе, который будет играть роль DHCP сервера.
запустить службу DHCP на ПК (она выполняет функцию клиента);
в настройках сетевого адаптера выбрать опцию автоматического получения IP адреса.
Рассмотрим каждый шаг детально.
Как включить DHCP на роутере?
Запустить на маршрутизаторе работу DHCP сервера нужно через веб-интерфейс. Вам потребуется выполнить следующие действия:
подключиться к роутеру по Wi-Fi или при помощи сетевого кабеля;
в адресной строке веб-браузера прописать локальный IP адрес маршрутизатора, который можно найти на наклейке внизу устройства (чаще всего 192.168.0.1 либо 192.168.1.1, но возможны и другие варианты вроде tplinklogin.net);
в появившемся окне набрать логин и пароль, значения которых по умолчанию посмотрите на той же наклейке, чаще всего это логин: admin, пароль: admin или 1234 (если вы поставили другие логин и пароль, воспользуйтесь ими, а если не можете вспомнить, придется провести на роутере сброс настроек до заводских и попробовать заново);
в открывшемся меню, вид которого будет отличаться в зависимости от производителя маршрутизатора, выберете пункт «Настройка локальной сети» или нечто подобное, там поставьте отметку напротив опции включения DHCP сервера;
сохраните новые параметры.
Если сразу не получается открыть настройки роутера, попробуйте войти из другого браузера или из другого устройства. Самое радикальное и действенное решение проблемы — сброс настроек маршрутизатора. Чтобы его сделать, найдите маленькую кнопку с подписью «Reset» нажмите её чем-то тонким и удерживайте в течение 5-15 секунд. Важно иметь в виду: минус этого решения в том, что вам придется настраивать роутер полностью заново.
Запуск и настройка на компьютере с Windows
Чтобы включить DHCP на ПК под управлением Windows 7 или Windows 10, нужно выполнить похожий набор действий.
Проверка службы
Чтобы включить службу DHCP клиент на ПК, или убедиться, что она работает, откройте «Выполнить» (Win+R), напишите «services.msc».
В открывшемся окне «Службы» найдите dhcp клиент, нажмите правой кнопкой и выберете «Свойства».
Если вы видите, что служба работает и запускается автоматически, ничего менять не нужно.
В случае отображения других параметров, запустите службу и поставьте автоматический запуск.
Настраиваем сетевой адаптер
Войдите в «Сетевые подключения» нажатием Win+R и вводом «ncpa.cpl».
Откройте свойства вашей сети, TCP/IPv4.
Выберете автоматическое получение IP адреса и адреса DNS-сервера, сохраните изменения.
Аналогичные манипуляции можно провести из командной строки. Открываем «Выполнить» (Win+R ), пишем «cmd».
Команда для установки IP адреса автоматически:
netsh interface ip set address «имя вашего подключения» dhcp
Команда для установки адреса DNS сервера автоматически:
netsh interface ip set dnsserver «имя вашего подключения» dhcp
Имя подключения посмотрите в его свойствах.
Устранение неполадок на сервере DHCP
В этой статье описывается, как устранять неполадки, возникающие на DHCP-сервере.
Контрольный список по устранению неполадок
Проверьте следующие настройки.
Служба DHCP-сервера запущена и запущена. Чтобы проверить этот параметр, выполните команду net start и найдите DHCP-сервер.
Убедитесь, что аренда IP-адресов доступна в области DHCP-сервера для подсети, в которой находится клиент DHCP. Для этого см. статистику для соответствующей области в консоли управления DHCP-сервером.
Проверьте, имеют ли устройства в сети статические IP-адреса, которые не были исключены из области DHCP.
Убедитесь, что исключение IPsec-сервера Добавлено при работе с средой, развернутой по протоколу IPsec.
Убедитесь, что IP-адрес агента ретранслятора можно проверить с DHCP-сервера.
Перечисление и Проверка настроенных политик и фильтров DHCP.
Журналы событий
проверьте журналы событий службы «система и DHCP-сервер» (журналы приложений и служб > Microsoft > Windows > DHCP-сервер), чтобы сообщить о проблемах, связанных с наблюдаемой проблемой. В зависимости от типа проблемы событие заносится в журнал для одного из следующих каналов событий: DHCP- сервер: рабочиесобытия DHCP-сервер события административных событий DHCP-сервера системные события оповещения DHCP-сервер события аудита DHCP-сервера
сбор данных
Журнал DHCP-сервера
Журналы отладки службы DHCP-сервера содержат дополнительные сведения о назначении аренды IP-адресов и динамические обновления DNS, которые выполняются DHCP-сервером. Эти журналы по умолчанию расположены в папке% WINDIR% \ system32 \ DHCP. Дополнительные сведения см. в разделе Анализ файлов журнала DHCP-сервера.
Трассировка сети
Корреляция трассировки сети может означать, что DHCP-сервер выполнялся в момент записи события в журнал. Чтобы создать такую трассировку, выполните следующие действия.
Скопируйте _ файлtools.zip Тсс и разверните его в расположении на локальном диске, например в папке C: \ Tools.
Выполните следующую команду из раздела C: \ Tools в окне командной строки с повышенными привилегиями:
В этой команде замените и идентификатором события и каналом событий, на который вы будете сосредоточиться в сеансе трассировки. Файл readme ТСС. _ cmd _Help.docx файлы, содержащиеся в файле Тсс _tools.zip, содержат дополнительные сведения обо всех доступных параметрах.
После запуска события средство создает папку с именем C: \ MS _ Data. В этой папке будут содержаться полезные выходные файлы, содержащие общие сведения о конфигурации сети и домена компьютера. Наиболее интересным файлом в этой папке является% ComputerName% _ Date _ Time _ packetcapture _ InternetClient _ dbg. ETL. С помощью приложения сетевой монитор можно загрузить файл и установить фильтр просмотра для протокола DHCP или DNS, чтобы проверить, что происходит в фоновом режиме.
Анализируем DHCP-сервер с помощью PowerShell
DHCP-сервер является важным компонентом ИТ-инфраструктуры в большинстве локальных сетей организаций. Давайте разберемся какие функции мониторинга DHCP может предоставить нам PowerShell. Для этого рассмотрим работу нескольких профильных командлетов.
Команды для управления DHCP-серверами на базе Windows являются частью модуля DhcpServer, к которому можно получить доступ установив RSAT для DHCP на Ваш ПК. Упомянутые здесь командлеты особенно полезны для анализа возникающих проблем.
Определение всех серверов и запрос их настроек
Первый шаг — получить список серверов, на которых в сети развернута служба DHCP. Это особенно важно для больших сред с несколькими DHCP-серверами. командлет Get-DhcpServerInDC как правило вызывается без параметров и в качестве выхлопа мы имеем IP адреса и Dns имена всех найденных DHCP серверов.
Однако для дальнейшего использования в других командах вы можете сохранить имена возвращенных серверов в переменной:
Как следует из названия, командлет возвращает список DHCP-серверов, зарегистрированных в Active Directory. Это означает, что вы не найдете мошеннических серверов DHCP, которые были подключены к сети без ведома ИТ-отдела.
Некоторые основные настройки DHCP-сервера, например, является ли он членом домена и авторизован, можно получить с помощью следующего запроса:
С помощью командлета Get-DhcpServerAuditLog вы можете узнать, было ли активировано ведение журнала для службы DHCP и где хранится файл журнала. Однако вы не можете отобразить содержимое журнала с помощью этой команды.
Командлеты для IPv4 и IPv6
Большинство функций модуля доступно в двух версиях. Все функции имеют в своих именах «4» или «6», что идентифицирует их принадлежность к IPv4 или IPv6 соответственно. Поэтому следующие примеры для IPv4 могут быть применены и к IPv6:
Чтобы получить статистику по службе DHCP IPv4 в целом, воспользуйтесь следующим командлетом:
Анализ диапазонов
Чтобы получить обзор наиболее важных данных для IPv4-областей DHCP-сервера, воспользуйтесь командлетом Get-DhcpServerv4ScopeStatistics
Если нам необходимо узнать какой процент диапазона уже используется и сколько адресов уже занято и доступно:
Свободные, арендованные и зарезервированные IP адреса
В этом примере перечислено 15 свободных адресов, начиная с 172.16.1.100
Возможно вам необходимо узнать, какие адреса и каким устройствам уже назначены:
Помимо свободных и уже назначенных IP адресов, обычно есть также зарезервированные для устройств с фиксированным IP. Их можно запросить следующим образом:
Если клиент не может получить адрес, проверьте, возможно он в списке запрещенных:
Модуль DhcpServer содержит в общей сложности 121 команду, которые не только запрашивает параметры и их состояние, но также могут выполнять настройки службы.
DHCP — что это такое простыми словами, как включить на роутере, адаптере?
Рад видеть Вас на fast-wolker.ru! Продолжаем изучать сетевое администрирование. Многие пытаясь впервые настраивать роутер, сталкиваются с неизбежными вопросами. Один из таких, на первый взгляд второстепенных вопросов — это настройка DHCP. Для маленьких домашних сетей как правило это не актуально, и на эту опцию сначала мало кто обращает внимание.
Но, как только возникает необходимость настроить для своих нужд работоспособную сеть с выходом в Интернет по выделенному IP-адресу, так сказать пробелы в знаниях дают о себе знать. Читаем и берем на вооружение. В этом выпуске:
Эта статья поможет вам разобраться в теме. Все важно, а такие «лишние» знания бесполезными не бывают и простым способом можно повысить безопасность вашей сети. Как всегда, в начале немного теории, без нее все равно никуда. Сегодня все сети построены на ключевых протоколах TCP/IP, которые во многом обеспечивает их функционирование.
Одной из служб этого протокола и является DHCP (DYNAMIC HOST CONFIGURATION PROTOCOL) или «протокол динамического конфигурирования хостов». Хостами обычно называют имена компьютеров в сети. В некотором роде они заменяют собой IP адреса при обращении к компьютеру по имени.
DHCP является вспомогательным средством TCP/IP и функционирует в сети как сервер, как клиент, и как протокол по которому и передаются в сеть служебные данные. Все зависит от того, о каком уровне идет речь.
DHCP- сервер для чего он нужен?
Первые протоколы призванные решать проблему были разработаны для рабочих станций, у которых даже не было своих жестких дисков. Сейчас мне это кажется диким, но в году так 1998 я работал на такой сети. Загружаешься с дискетки, MS-DOS и Far-Manager в сочетании с черно-белым монитором — это была первая моя операционная система! При включении такой компьютер шлет в сеть сообщение. Сервер сети в ответ на это сообщение шлет свое, по которому компьютер и «узнает» свой IP.
С внедрением интернета все стало совершенстоваться и вот уже нужно указывать адрес шлюза, маску подсети. Чтобы устранить недостатки существующих тогда протоколов, которые не умели в полной мере автоматизировать процесс, корпорация Microsoft и придумала DHCP, главное достоинство которого в том, что он умеет динамически назначать IP адреса из списка доступных, а неиспользуемые как бы не видны.
DHCP на роутере что это?
Протокол динамического конфигурирования в качестве сервера сегодня реализован практически на всех моделях интернет-роутеров. И многие впервые настраивая свой маршрутизатор конечно же сталкиваются с непонятной аббревиатурой. При включении этой настройки (а она обычно по умолчанию включена) IP адреса будут автоматически присваиваться всем устройствам, подключающимся к вашей сети и сеть будет работать без участия системного администратора
Особенно удобно это выглядит при организации открытых точек доступа в Интернет по Wi-Fi в кафе, ресторанах, общественных местах. Если DHCP не включать, то не поможет даже наличие открытого доступа к сети. Интернета не будет до тех пор, пока IP адрес, адрес шлюза, маска подсети каждому смартфону не будет присвоены вручную. Поэтому отключение DHCP при организации таких сетей недопустимо.
С точки зрения безопасности в закрытых сетях иногда полезно наоборот отключать DHCP на маршрутизаторе. Если Вы заметили, что вашу сеть Wi-Fi регулярно, пытаются взломать или в вашей сети время от времени стали появляться незарегистрированные устройства, то отключение DHCP сделает эти попытки бесперспективными.
Не зная IP адреса, маски подсети и шлюза злоумышленник даже подключившись к сети через кабель не сможет получить желанный интернет или зайти в сеть. Разумеется, на всех компьютерах сети при отключенном DHCP доступ к настройкам сети должен быть отключен обычным пользователям, а изменения должны вноситься только от имени администратора. А каждой станции сети должен быть вручную прописан свой IP.
Впрочем, на последних моделях некоторых маршрутизаторов для ограничения доступа в Интернет достаточно сделать настройки для незарегистрированных устройств и ограничить им доступ:
DHCP relay что это? Настройка сервера на устройствах Microtic, Zyxel Keenetic Giga
На современных моделях маршрутизаторов теперь можно встретить настройку DHCP — relay, но информации по ней в справочной системе устройства недостаточно. Опция расширяет функциональные возможности вашего устройства для системного администрирования.
Работа DHCP основана на обмене сообщениями между клиентами сети и сервером, который адреса назначает. Сообщения генерируются в определенном формате и содержат служебную информацию. Они обычно не выходят за пределы вашей сети. Но как быть, если вам срочно нужно перенастроить сеть в рабочее время?
Настройка сервера DHCP на роутере Zyxel Keenetic Giga
Фирма Zyxel сегодня выпускают устройства, которые радуют глаз. Эти бренды сегодня популярны прежде всего благодаря функционалу который они предоставляют. Можно организовать несколько сетей на одном устройстве, подключить не одного провайдера а несколько и делать много других недостуных для предыдущих поколений устройств полезных вещей. Не менее хороша фирма Microtic, сделал один раз настройки и забыл о проблемах.
Настройка сервера на маршрутизаторе самостоятельно не представляет ничего сложного. В случае выделенного вам провайдером Интернет IP- адреса нужно настроить подключение к Интернету:
Указываем данные от провайдера, не забываем про DNS, в качестве DNS 3 можно прописать гугловский DNS 8.8.8.8 Не помешает. Затем нужно создать сеть, или вернее сказать один из ее сегментов. В пункте «Мои сети и Wi-Fi» создаем новый сегмент:
В настройках включаем DHCP сервер. В качестве IP указываем адрес роутера, который для рабочих станций будет шлюзом:
IP роутера указан в качестве примера. Вы можете в качестве IP выбирать нестандартные диапазоны для повышения безопасности. Диапазоны определяют количество подсетей и предельное количество рабочих станций в ней. Начальный адрес пула будет адресом «первого» компьютера. Размер пула — это количество компьютеров, которые у вас будут в сети. Время аренды- продолжительность выдачи адреса в секундах.
DHCP не включен на сетевом адаптере подключение по локальной (беспроводной) сети Windows 10, что делать?
По некоторым причинам (обновление Windows10, настройка Wi-FI) иногда можно увидеть эту ошибку в окне сообщений. Для начала проверим запущена ли служба DHCP на вашем компьютере. Нужно в «Панели управления» зайти в Администрирование — Службы…
…убеждаемся, что служба запущена; если это не так — перезапускаем ее. Теперь переходим к настройкам сетевой карты.
Как включить DHCP на сетевом адаптере Windows 10? Для этого правой кнопкой жмем на значок подключения в нижнем правом углу монитора:
Идем в настройки параметров сетевого адаптера:
На компьютере обычно бывает больше одного сетевого адаптера. Если у вас WI-FI, то нужно выбрать его. У меня проводное подключение Нужно щелкнуть по нему правой кнопкой мыши:
Далее, смотрим настройки. Если у вас DHCP на роутере включен, можно поставить флаги так:
Убеждаемся, что на сетевом адаптере включился DHCP,жмем на «Дополнительно»:
Закончили настройки. Для того, чтобы изменения вступили в силу без перезагрузки, ставим галочку:
Все же бывает, что вышеописанные способы не помогают. Долго искать; поэтому опять жмем правой кнопкой на значке подключения:
Дождитесь окончания работы мастера:
После проведенных выше настроек он гарантированно исправляет все ошибки! Вот так легко настраивать DHCP!
Клиенты получают неверные настройки (IP-адреса) по DHCP
Чтобы взаимодействовать с другими, каждому устройству в сети необходимо иметь четыре основные настройки на сетевом адаптере — IP-адрес, маску, шлюз по умолчанию и адреса DNS-серверов (хотя последнее на самом деле опционально). Есть два основных способа назначения сетевых настроек — статически (вручную) и динамически (автоматически по протоколу DHCP от DHCP-сервера).
Второй вариант чаще всего гораздо удобнее, ведь настройки не придётся прописывать руками. Но наверняка многим приходилось сталкиваться с ситуацией, когда клиентское устройство получает совершенно другой IP-адрес вместо корректных настроек от DHCP-сервера. И тогда очень важно понять, почему так происходит и как всё быстро исправить. В посте я расскажу об этом.
Симптомы
Обычно всё начинается с жалоб на неработающий интернет или отсутствие доступа к локальным сетевым ресурсам. Иногда достаточно провести диагностику только на стороне клиента, но может понадобиться полная диагностика и со стороны сервера в том числе. Начнём с первой опции.
Диагностика на стороне клиента
Чтобы понять, что происходит, первым делом, конечно, следует проверить, подключён ли клиент физически к проводной или беспроводной сети. Если да, то самое время приступать к проверке сетевых настроек на устройстве клиента с помощью утилит ipconfig /all (в командной строке Windows), ifconfig или ip addr (в терминале Linux).
Вывод команд покажет текущий IP-адрес и другие настройки на сетевом адаптере (или всех адаптерах, если их несколько). При этом, если на сетевом адаптере нет корректного IP-адреса, возможных вариантов его настроек может быть немного.
Вариант 1. Текущий IP-адрес имеет вид 169.254.Х.Х
Скорее всего, на клиентской машине при этом установлена ОС Windows. Это значит, что клиенту действительно не удалось получить сетевые настройки, потому что DHCP-сервер не отвечал, и адрес был сгенерирован службой APIPA (Automatic Private IP Addressing) из диапазона 169.254.0.0 – 169.254.255.255. Если клиент — Linux-машина, адрес может принимать вид 0.0.0.0, либо отсутствовать в принципе.
Пожалуй, самое очевидное действие в такой ситуации — попытаться снова получить IP-адрес, отправив повторно DHCP-запрос, а заодно убедиться, что на устройстве запущен DHCP-клиент. Это можно сделать несколькими способами:
При выводе каких-либо ошибок и/или предупреждений нужно в первую очередь их устранить — например если DHCP-клиент не запущен, сперва его необходимо включить. После этого нужно снова проверить настройки. Если результат остался прежним, проверьте работоспособность сетевого драйвера и стека протоколов TCP/IP в целом. Проще всего это сделать с помощью команды ping 127.0.0.1 (так называемая проверка внутренней обратной петли). Если в результате выполнения команды ответ от собственного сетевого адаптера получен, можно считать диагностику на стороне клиента завершённой и переходить к диагностике со стороны DHCP-сервера.
Вариант 2. Текущий IP-адрес не из диапазона 169.254.0.0 – 169.254.255.255, но и не из того диапазона адресов, которые должен выдавать DHCP-сервер
Как известно, чудес не бывает. Если настройки, которые получает клиент, не от доверенного DHCP-сервера в сети, значит, их раздаёт кто-то другой. Тот, кто случайно или специально подключил к сети DHCP-сервер со своей конфигурацией. Возможно, это обычный Wi-Fi-роутер, к которому кабель по ошибке подключили через один из LAN-портов. Тогда ваша задача — найти недоверенный DHCP-сервер и предотвратить такие попытки в будущем.
Здесь нужно вспомнить, как работает DHCP-протокол. Клиент отправляет широковещательный запрос (DHCPDISCOVER), который получат все DHCP-серверы в сети и отправят в ответ свои предложения IP-адреса (DHCPOFFER). При этом клиент примет первое полученное предложение (DHCPOFFER), скорее всего, от ближайшего DHCP-сервера, а остальные отклонит.
Очевидно, что предложение от доверенного DHCP-сервера приходит позже, скорее всего, потому, что он дальше от клиента. Для последующей диагностики на устройстве клиента нужно установить анализатор сетевого трафика (Wireshark или tcpdump), запустить его, отфильтровав трафик по типу протокола DHCP или портам 67–68, и посмотреть в DHCP-ответах IP и MAC адрес DHCP-сервера, который их отправляет:
Дальше дело за малым. Во-первых, можно воспользоваться сервисом macvendors.com или аналогичным и по MAC-адресу определить производителя оборудования этого устройства. У Wireshark есть такая функция. Во-вторых, если есть управляемые коммутаторы в сети, найти по MAC, в какой порт какого коммутатора подключено это устройство. После нейтрализации недоверенного DHCP-сервера клиенту, скорее всего, удастся получить верные настройки. Для предотвращения таких инцидентов в будущем рекомендуется внедрить методы защиты от атак на DHCP на сетевом оборудовании.
Вариант 3. Текущий IP-адрес корректный, но доступа к интернету и другим сетевым ресурсам по-прежнему нет
Если это так, то стоит вернуться к проверке не только самого IP-адреса, но и всех остальных настроек. И особенно к проверке маски, адреса шлюза по умолчанию и адресов DNS-серверов, так как именно через шлюз устройству предстоит связываться с другими сетями, а с помощью DNS-серверов — преобразовывать доменные имена в IP-адреса.
Следует помнить, что DHCP-сервер может раздавать настройки выборочно, а сам клиент может выборочно их применять. Например, только IP-адрес, маску и шлюз. Это скорее исключение, но в таком случае адреса DNS придётся прописать руками. Гораздо хуже, если настройки адресов DNS-серверов от DHCP-сервера игнорируются просто потому, что их переопределяет стороннее ПО или неверные статические настройки. Такое тоже бывает.
Диагностика на стороне сервера
Итак, диагностика на стороне клиента показала, что проблем не обнаружено. Независимо от реализации DHCP-сервера, теперь необходимо пошагово проверить ряд предположений, начиная с самых простых и очевидных.
Запущен ли DHCP как сервис?
В зависимости от ОС, дистрибутива и реализации DHCP-сервера, проверить это можно по-разному. Если сервис остановлен и есть ошибки в конфигурационных файлах, то запустить его не удастся. Это первая отправная точка. Если сервис запущен, можно переходить к следующему шагу.
Приходят ли запросы от клиентов на DHCP-сервер?
Чтобы определить это, нужно снова запустить анализатор сетевого трафика. На этот раз на сервере. После запуска на сервере tcpdump, dhcpdump или Wireshark клиенту, у которого проблемы с получением адреса, необходимо попытаться получить его снова любым способом, описанным в начале статьи. Если DHCP-сервер работает в штатном режиме, то должны быть и запросы, и ответы. Но всё может быть иначе.
Нет ни запросов, ни ответов?
Предположим, что у нас есть по крайней мере один клиент, которому не удаётся получить настройки, и запрос от него точно должен был прийти на сервер. Если этого не произошло, очевидно, что клиент либо сам не отправляет запрос, либо запрос не доходит до сервера по разным причинам. Может, он блокируется на промежуточном сетевом оборудовании или в сети некорректно работает ретрансляция DHCP-запросов dhcp_relay.
Чтобы это проверить, можно в первом случае вернуться к диагностике на стороне клиента и проследить с помощью анализатора сетевого трафика, что клиент отправляет DHCP-запрос. Во втором — проверить настройки на промежуточном сетевом оборудовании.
Запрос(ы) есть, ответа(ов) нет?
Самая простая и очевидная причина в этом случае — закончился пул свободных адресов. Это легко проверить на самом DHCP-сервере по списку выделенных IP-адресов (leases). Если причина действительно в этом — задумайтесь: возможно, пришло время для увеличения пула пригодных для использования IP-адресов на сервере. Чтобы решить проблему прямо сейчас, можно почистить список существующих адресов, выданных в аренду клиентам, уменьшить время аренды и перезапустить сервис DHCP. Но быстрые решения помогают не всегда, а причин может быть гораздо больше. В таком случае придётся детально просматривать логи, а также последние изменения в конфигурации на сервере.
Чтобы взаимодействовать с другими, каждому устройству в сети необходимо иметь четыре основные настройки на сетевом адаптере — IP-адрес, маску, шлюз по умолчанию и адреса DNS-серверов (хотя последнее на самом деле опционально). Есть два основных способа назначения сетевых настроек — статически (вручную) и динамически (автоматически по протоколу DHCP от DHCP-сервера).
Второй вариант чаще всего гораздо удобнее, ведь настройки не придётся прописывать руками. Но наверняка многим приходилось сталкиваться с ситуацией, когда клиентское устройство получает совершенно другой IP-адрес вместо корректных настроек от DHCP-сервера. И тогда очень важно понять, почему так происходит и как всё быстро исправить. В посте я расскажу об этом.
Симптомы
Обычно всё начинается с жалоб на неработающий интернет или отсутствие доступа к локальным сетевым ресурсам. Иногда достаточно провести диагностику только на стороне клиента, но может понадобиться полная диагностика и со стороны сервера в том числе. Начнём с первой опции.
Диагностика на стороне клиента
Чтобы понять, что происходит, первым делом, конечно, следует проверить, подключён ли клиент физически к проводной или беспроводной сети. Если да, то самое время приступать к проверке сетевых настроек на устройстве клиента с помощью утилит ipconfig /all (в командной строке Windows), ifconfig или ip addr (в терминале Linux).
Вывод команд покажет текущий IP-адрес и другие настройки на сетевом адаптере (или всех адаптерах, если их несколько). При этом, если на сетевом адаптере нет корректного IP-адреса, возможных вариантов его настроек может быть немного.
Вариант 1. Текущий IP-адрес имеет вид 169.254.Х.Х
Скорее всего, на клиентской машине при этом установлена ОС Windows. Это значит, что клиенту действительно не удалось получить сетевые настройки, потому что DHCP-сервер не отвечал, и адрес был сгенерирован службой APIPA (Automatic Private IP Addressing) из диапазона 169.254.0.0 – 169.254.255.255. Если клиент — Linux-машина, адрес может принимать вид 0.0.0.0, либо отсутствовать в принципе.
Пожалуй, самое очевидное действие в такой ситуации — попытаться снова получить IP-адрес, отправив повторно DHCP-запрос, а заодно убедиться, что на устройстве запущен DHCP-клиент. Это можно сделать несколькими способами:
При выводе каких-либо ошибок и/или предупреждений нужно в первую очередь их устранить — например если DHCP-клиент не запущен, сперва его необходимо включить. После этого нужно снова проверить настройки. Если результат остался прежним, проверьте работоспособность сетевого драйвера и стека протоколов TCP/IP в целом. Проще всего это сделать с помощью команды ping 127.0.0.1 (так называемая проверка внутренней обратной петли). Если в результате выполнения команды ответ от собственного сетевого адаптера получен, можно считать диагностику на стороне клиента завершённой и переходить к диагностике со стороны DHCP-сервера.
Вариант 2. Текущий IP-адрес не из диапазона 169.254.0.0 – 169.254.255.255, но и не из того диапазона адресов, которые должен выдавать DHCP-сервер
Как известно, чудес не бывает. Если настройки, которые получает клиент, не от доверенного DHCP-сервера в сети, значит, их раздаёт кто-то другой. Тот, кто случайно или специально подключил к сети DHCP-сервер со своей конфигурацией. Возможно, это обычный Wi-Fi-роутер, к которому кабель по ошибке подключили через один из LAN-портов. Тогда ваша задача — найти недоверенный DHCP-сервер и предотвратить такие попытки в будущем.
Здесь нужно вспомнить, как работает DHCP-протокол. Клиент отправляет широковещательный запрос (DHCPDISCOVER), который получат все DHCP-серверы в сети и отправят в ответ свои предложения IP-адреса (DHCPOFFER). При этом клиент примет первое полученное предложение (DHCPOFFER), скорее всего, от ближайшего DHCP-сервера, а остальные отклонит.
Очевидно, что предложение от доверенного DHCP-сервера приходит позже, скорее всего, потому, что он дальше от клиента. Для последующей диагностики на устройстве клиента нужно установить анализатор сетевого трафика (Wireshark или tcpdump), запустить его, отфильтровав трафик по типу протокола DHCP или портам 67–68, и посмотреть в DHCP-ответах IP и MAC адрес DHCP-сервера, который их отправляет:
Дальше дело за малым. Во-первых, можно воспользоваться сервисом macvendors.com или аналогичным и по MAC-адресу определить производителя оборудования этого устройства. У Wireshark есть такая функция. Во-вторых, если есть управляемые коммутаторы в сети, найти по MAC, в какой порт какого коммутатора подключено это устройство. После нейтрализации недоверенного DHCP-сервера клиенту, скорее всего, удастся получить верные настройки. Для предотвращения таких инцидентов в будущем рекомендуется внедрить методы защиты от атак на DHCP на сетевом оборудовании.
Вариант 3. Текущий IP-адрес корректный, но доступа к интернету и другим сетевым ресурсам по-прежнему нет
Если это так, то стоит вернуться к проверке не только самого IP-адреса, но и всех остальных настроек. И особенно к проверке маски, адреса шлюза по умолчанию и адресов DNS-серверов, так как именно через шлюз устройству предстоит связываться с другими сетями, а с помощью DNS-серверов — преобразовывать доменные имена в IP-адреса.
Следует помнить, что DHCP-сервер может раздавать настройки выборочно, а сам клиент может выборочно их применять. Например, только IP-адрес, маску и шлюз. Это скорее исключение, но в таком случае адреса DNS придётся прописать руками. Гораздо хуже, если настройки адресов DNS-серверов от DHCP-сервера игнорируются просто потому, что их переопределяет стороннее ПО или неверные статические настройки. Такое тоже бывает.
Диагностика на стороне сервера
Итак, диагностика на стороне клиента показала, что проблем не обнаружено. Независимо от реализации DHCP-сервера, теперь необходимо пошагово проверить ряд предположений, начиная с самых простых и очевидных.
Запущен ли DHCP как сервис?
В зависимости от ОС, дистрибутива и реализации DHCP-сервера, проверить это можно по-разному. Если сервис остановлен и есть ошибки в конфигурационных файлах, то запустить его не удастся. Это первая отправная точка. Если сервис запущен, можно переходить к следующему шагу.
Приходят ли запросы от клиентов на DHCP-сервер?
Чтобы определить это, нужно снова запустить анализатор сетевого трафика. На этот раз на сервере. После запуска на сервере tcpdump, dhcpdump или Wireshark клиенту, у которого проблемы с получением адреса, необходимо попытаться получить его снова любым способом, описанным в начале статьи. Если DHCP-сервер работает в штатном режиме, то должны быть и запросы, и ответы. Но всё может быть иначе.
Нет ни запросов, ни ответов?
Предположим, что у нас есть по крайней мере один клиент, которому не удаётся получить настройки, и запрос от него точно должен был прийти на сервер. Если этого не произошло, очевидно, что клиент либо сам не отправляет запрос, либо запрос не доходит до сервера по разным причинам. Может, он блокируется на промежуточном сетевом оборудовании или в сети некорректно работает ретрансляция DHCP-запросов dhcp_relay.
Чтобы это проверить, можно в первом случае вернуться к диагностике на стороне клиента и проследить с помощью анализатора сетевого трафика, что клиент отправляет DHCP-запрос. Во втором — проверить настройки на промежуточном сетевом оборудовании.
Запрос(ы) есть, ответа(ов) нет?
Самая простая и очевидная причина в этом случае — закончился пул свободных адресов. Это легко проверить на самом DHCP-сервере по списку выделенных IP-адресов (leases). Если причина действительно в этом — задумайтесь: возможно, пришло время для увеличения пула пригодных для использования IP-адресов на сервере. Чтобы решить проблему прямо сейчас, можно почистить список существующих адресов, выданных в аренду клиентам, уменьшить время аренды и перезапустить сервис DHCP. Но быстрые решения помогают не всегда, а причин может быть гораздо больше. В таком случае придётся детально просматривать логи, а также последние изменения в конфигурации на сервере.