Как проверить доступность dhcp сервера

от admin

Устранение неисправностей с сервером DHCP

Самая частая проблема, связанная с DHCP, заключается в назначении неправильного IP адреса. Например, предположим, что ваш сервер DHCP был настроен на использования интервала IP адресов с 192.168.0.1 по 192.168.50. Вам следует ожидать, что сетевому компьютеру будет присвоен IP адрес из этого интервала. Теперь предположим, что рабочая станция в вашей сети начала испытывать проблемы при обращении к другим сетевым серверам. Вам необходимо использовать команду IPCONFIG /ALL для того, чтобы увидеть сетевую конфигурацию и IP адрес. Вместо адреса из ожидаемого интервала адресов мы видим, что рабочей станции был присвоен адрес, начинающийся с 169.254. Так что же произошло? Если компьютеру в вашей сети неожиданно был присвоен адрес, начинающийся с 169.254, то вы можете быть абсолютно уверены, что этот адрес был присвоен не вашим DHCP сервером. Случилось то, что ваша рабочая станция не смогла соединиться с сервером DHCP server. Если такое происходит, что рабочая станция сама назначает себе IP адрес, с помощью средства Windows под названием Automatic Private IP Addressing (APIPA или автоматическая адресация).

Microsoft встроил автоматическую адресацию в операционную систему Windows в качестве помощи тем, кто использует очень маленькие сети. Например, если вы создали небольшую сеть Windows, то вам не нужно вручную настраивать IP адреса, даже если нет сервера DHCP в сети. APIPA поможет вам автоматически присвоить уникальный адрес класса В каждой машине в сети. Это великолепно для небольших домашних сетей, но абсолютно неприменимо для больших сетей. Если рабочая станция воспользовалась услугами APIPA, то это означает, что на ее запрос на получение IP адреса не пришло ответа. Причин возникновения такой ситуации может быть несколько. Если вы знаете, что все остальные компьютеры в вашей сети нормально запрашивают IP адрес у вашего DHCP сервера, то вы можете заключить, что причиной проблемы является не DHCP server.

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

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

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

Если сервер DHCP может связаться с другими компьютерами в сети, то я рекомендую проверить, что серверу DHCP server присвоен IP адрес, и что этот адрес совместим с тем интервалом адресов, для которого этот сервер настроен присваивать адреса для рабочих станций. Например, если интервал адресов, которые сервер DHCP присваивает рабочим станциям, варьируется с 192.168.0.1 до 192.168.0.50, то сервер не сможет присваивать адреса рабочим станциям до тех пор, пока ему самому не будет присвоен статический адрес в том же самом сегменте подсети, например, 192.168.0.0 или 192.168.0.51.

Если это по-прежнему не помогает решить проблему, то я рекомендую проверить основы. Например, вы должны убедиться, что сервер DHCP все еще авторизован Active Directory для раздачи IP адресов. Вы должны также проверить, что этот интервал активен, и что все необходимые службы запущены на сервере DHCP server.

Конфликты IP адресов

Другая проблема, которую я наблюдал, заключается в конфликте IP адресов среди динамически распределяемых адресов. Когда вы создаете интервал DHCP scope, то сервер DHCP отвечает за то, чтобы адреса внутри интервала были уникальны для каждой машины. Если это действительно так, то откуда же возникает конфликт динамически назначаемых адресов?

Были две ситуации, с которыми я столкнулся при возникновении такой проблемы. Первый раз, когда я столкнулся с этой проблемой, я смог определить, каким компьютерам были присвоены одинаковые адреса. Когда я проверил конфигурацию TCP/IP на этих машинах, то обнаружил, что на одной из них адреса были настроены вручную. Это достаточно долгая история, но если коротко, то для работы одного из приложение на этом компьютере необходимо было, чтобы у машины был статически IP адрес. Пользователю надоела постоянно настраивать это приложение под меняющийся адрес, поэтому он просто взял адрес, который был присвоен ему динамически и сделал его статическим.

Вероятность возникновения такой ситуации в наши дни достаточно невелика. Когда возникла такая ситуация повсеместно использовалась операционная система Windows 98. В операционной системе Windows 98 не хватает много инструментов для безопасности, которые есть у нас на сегодняшний день. Правильно настроенная безопасность на рабочей станции с операционной системой Windows XP или Windows Vista позволит запретить все изменения конфигурации пользователю. Но, несмотря на это, я все же хотел упомянуть эту ситуацию, т.к. иногда она поможет вам решить проблему.

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

Операционные системы Windows 2000 Server и Windows Server 2003 спроектированы таким образом, чтобы избежать проблем с пиратскими (rogue) DHCP серверами. В них сервер DHCP может присваивать IP адреса лишь после того, как он был авторизован Active Directory. Но проблема заключается в том, что это применимо лишь для серверов DHCP, которые работают на платформе Windows. Сервера DHCP, работающие на других операционных системах могут присваивать IP адреса клиентам без необходимости быть авторизованными Active Directory.

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

Заключение

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

Команды для проверки и исправления настроек сети

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

Для начала необходимо открыть командную строку. Делается это так: нажимаете кнопку пуск, выбираете пункт «выполнить».

Альтернативные способ — нужно нажать клавишу Win (между Ctrl и Alt) и R одновременно, этот способ работает также и на Висте

Появляется окошко, в которое нужно вписать cmd и нажать ОК

Выполнить cmd

Командная строка

Появляется та самая командная строка

В ней можно набирать и «вводить» команды, нажимая Enter. Результаты можно копировать — если нажать правую кнопку можно выделить нужный кусок, далее нужно еще раз нажать правую кнопку мыши.

Команда ping

Первая команда, с которой нужно познакомиться — это ping, проверяющую доступность заданного адреса. Введите команду ping 127.0.0.1. Должно получиться что-то такое (если команда не ping не работает, то, возможно, решить проблему поможет инструкция по исправлению ошибки cmd no command):

C:\Documents and Settings\Администратор>ping 127.0.0.1

Обмен пакетами с 127.0.0.1 по 32 байт:

Ответ от 127.0.0.1: число байт=32 время

Как мы видим, на адрес 127.0.0.1 было отправлено 4 пакета, и они все достигли цели. Что же это был за адрес и почему я был уверен, что пакеты дойдут? Ответ прост — пакеты никуда не отправлялись, а оставались на вашем компьютере. Этот адрес специфичен и используется для loopback — пакетов, не уходящих никуда вовне. Отлично, можем теперь «пропинговать» адрес этого сайта: 212.193.236.38

Читать:
Гул в наушниках на компьютере когда трогаешь корпус пропадает

C:\Documents and Settings\Администратор>ping 212.193.236.38

Обмен пакетами с 212.193.236.38 по 32 байт:

Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55

Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55

Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55

Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55

Статистика Ping для 212.193.236.38:

Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),

Приблизительное время приема-передачи в мс:

Минимальное = 3мсек, Максимальное = 3 мсек, Среднее = 3 мсек

C:\Documents and Settings\Администратор>

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

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

Команда ipconfig

Следующая важная команда — ipconfig. Введите ее. У меня получилось вот так:

Настройка протокола IP для Windows

Ethernet — Ethernet адаптер:

DNS-суффикс этого подключения . . : srcc.msu.ru

Маска подсети . . . . . . . . . . : 255.255.255.0

Основной шлюз . . . . . . . . . . : 192.168.17.240

C:\Documents and Settings\Администратор>

В данном случае получился адрес 192.168.17.139. Можно этот адрес тоже пропинговать (вы пингуйте свой) — пакеты должны доходить мгновенно. Основной шлюз — это адрес, на который компьютер отправляет пакеты, не найдя подходящего адреса в своей сети. Так, в моем случае все пакеты, кроме пакетов на 192.168.17.* будут отправлены на 192.168.17.240, а тот компьюьтер уже должен решить, что с ними делать и куда их переправлять дальше. Примечание: локальная сеть, то есть те адреса, пакеты на которые не отправляются на шлюз, определяется при помощи маски — нолик на последнем месте и 255 на всех предыдующих как раз и означает, что может буть произвольным последнее число в IP-адресе.

Одно из стандартных действий при поиске проблем подключения — пропинговать свой шлюз. Если пакеты до него не доходят, то, видимо, проблема где-то рядом, например, поврежден или плохо воткнут сетевой шнур. Также стоит знать, где физически находится компьютер с вашим основным шлюзом — у провайдера, где-то в доме, а, может, это — можем в вашей квартире. Примечание: некоторые компьютеры настроены не откликаться на запросы команды ping. Поэтому отсутствие пинга — не стопроцентная гарантия отсутствия связи с адресом.

Более подробную информацию можно получить командой ipconfig /all. У меня получилось:

C:\Documents and Settings\Администратор>ipconfig /all

Настройка протокола IP для Windows

Имя компьютера . . . . . . . . . : sander

Основной DNS-суффикс . . . . . . : MSHOME

Тип узла. . . . . . . . . . . . . : смешанный

IP-маршрутизация включена . . . . : нет

WINS-прокси включен . . . . . . . : нет

Порядок просмотра суффиксов DNS . : MSHOME

Ethernet — Ethernet адаптер:

DNS-суффикс этого подключения . . : srcc.msu.ru

Описание . . . . . . . . . . . . : Broadcom 440x 10/100 Integrated Controller

Физический адрес. . . . . . . . . : 00-16-D4-63-03-65

Dhcp включен. . . . . . . . . . . : да

Автонастройка включена . . . . . : да

Маска подсети . . . . . . . . . . : 255.255.255.0

Основной шлюз . . . . . . . . . . : 192.168.17.240

DHCP-сервер . . . . . . . . . . . : 192.168.17.240

DNS-серверы . . . . . . . . . . . : 212.192.244.2

Аренда получена . . . . . . . . . : 2 февраля 2009 г. 11:00:28

Аренда истекает . . . . . . . . . : 9 февраля 2009 г. 11:00:28

C:\Documents and Settings\Администратор>

Самую полезную информацию я выделил жирным. DHCP-сервер выделил мне динамиеский адрес на основе моего MAC-адреса или физического адреса. Мои DNS-сервера — это 212.192.244.2 и 212.192.244.3.

Другие команды

Команда tracert позволяет проследить путь пакетов от вашего компьютера до цели. Попробуйте, например протрассировать путь до этого сайта: tracert it.sander.su. Строки в выводе трассировки есть точки, через которые проходит пакет на своем пути. Первой точкой будет ваш шлюз. Использование команды tracert позволяет найти источник проблем при связи с каким-либо адресом. Пакеты, посылаемые командой tracert, имеют показатель TTL — time to live — целое положительное число. Каждый маршрутизатор на пути уменьшает этот показатель на 1, если TTL падает до нуля, то трассировка заканчивается. По умолчанию используется начальный TTL равный 30, задать другое значение можно опцией -h.

Посмотреть таблицу маршрутизации можно командой route print, однако я не буду подробно останавливаться на ней — это тема отдельной статьи.

Команда netstat позволяет просмотреть список установленных соединений. В режиме по умолчанию команда пытается преобразовывать все IP-адреса в доманные имена (при помощи службы DNS), что может работать медленно. Если вас устраивает числовой вывод, вызывайте команду netstat -n. Если вас также интересуют открытые порты на вашем компьютере (что означает, что он готов принимать соединения по этим портам), то вызовите команду с ключом -a: например, netstat -na. Можно также вызвать команду netstat -nb, чтобы посмотреть, какие процессы установили соединения. Команда netstat -r эквивалентна команде route print.

Команда netsh позволяет изменить настройки сети через командную строку. Введите команду netsh interface ip show address. У меня получилось:

C:\Documents and Settings\Администратор>ipconfig /all

Настройка интерфейса «Ethernet»

DHCP разрешен: да

Метрика интерфейса: 0

Запоминаем название (Ethernet) и теперь командой netsh interface ip set address name=»Ethernet» source=static addr=192.168.0.33 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=30 задаем IP-адрес. Для динамического подключения: netsh interface ip set address name=»Ethernet» source=dhcp. На этом сайте также можно прочитать об интерактивной настройке параметров сети

Как проверить доступность dhcp сервера

Я бы, в первую очередь при такой ситуации, посмотрел NetworkMonitor’ом, доходят ли до DHCP-сервера пакеты DHCP-discover от клиентов.

Спасибо моей жене Кате, Клевогину С.П., Козлову С.В., Муравлянникову Н.А., Никитину И.Г., Шапиро Л.В. за мои знания! 🙂

  • Предложено в качестве ответа Aleksey Potapov 7 мая 2009 г. 17:23
  • Помечено в качестве ответа Nikita Panov 8 сентября 2009 г. 9:21

Все ответы

DHCP сервер не выдаёт или клиент не может получить адрес?

должны быть хоть какие то логи, может на клиенте?

у Вас в свойствах DHCP сервера в закладке General стоит галочка Enable DHCP Audit Logging? Eсли нет включите, если стоит то вот тут логи C:\WINDOWS\System32\dhcp

DHCP + PING = DHCPING = Testing DHCP Availability

DHCP + PING = DHCPING = Testing DHCP Availability

When network troubles arise, it is important to have knowledge of the protocols used for basic network services. System administrators are often the first to notice and triage network issues. Because of this it is imperative that you have a wide range of tools at your disposal. The most common network tools are ping, traceroute, and dig. With a working knowledge of these utilities you can quickly identify network related issues and therefore keep your services available. In this article we will discuss a less common utility called dhcping (dhcp — ping). This utility that allows you to send DHCPREQUEST or DHCPINFORM packets to a DHCP server to test if it is functioning or not.

Installing dhcping

DHCPing is available to most modern Linux systems.

To install it on a RPM based system like Red Hat or CentOS:

Or Fedora (which now uses DNF):

To install DHCPING on Ubuntu or Debian based systems:

Basic Usage of dhcping

It is important to understand that dhcping does not run through the whole D.O.R.A. process (Discovery, Offer, Request, Acknowledge — More information in the Resources section below). Because of this you will need to troubleshoot from a system that already has an IP address on the network.

Gathering Information

To get started, we need some information. We will need at minimum, our IP address, our hardware/MAC address, and the IP of the DHCP server we want to test.

If you don’t know how to find this information read:

Test the DHCP Server

Now that we have the necessary information, we can construct the command to test the DHCP server.

In the example above, we received «Got answer from: 10.0.0.1». This tells us that the DHCP server is working correctly and able to respond.

If the DHCP server did not respond, you would see «no answer» output to the terminal. Here is an example of the test failing:

DHCPING Options

Although there isn’t much to this utility, it does provide a few options. Here we will outline the most popular and how to use them.

Send DHCPINFORM instead of DHCPREQUEST

By default, dhcping sends a DHCPREQUEST packet. You can force it to use the DHCPINFORM packet by using the -i option.

Quiet Mode, Print no Output

This option comes in handy if using it in scripts. Using the -q option will cause the command to NOT return any output.

Set Maximum Wait Time

You can use the -t option to set the maximum time to wait in seconds. The default is 3.

For a full list of all options, see the dhcping man page.

Conclusion

The DHCPING utlity is a nice little utility that helps in checking if a DHCP server is still functioning as expected. Once you understand how it works, it is fairly simple to use and available on most Linux systems. It has come in handy for me more than once over the years, but it is definitely not something I use on a daily.

Похожие статьи