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

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

  • автор:

Руководство по устранению неполадок DHCP

Попробуйте наш виртуальный агент . Он поможет вам быстро определить и устранить распространенные проблемы DHCP.

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

DHCP — это стандартный протокол, определенный в RFC 1541 (который заменен RFC 2131). DHCP позволяет серверу динамически распределять ip-адреса и сведения о конфигурации между клиентами. Обычно DHCP-сервер предоставляет клиенту по крайней мере следующие основные сведения:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию
  • Другая информация, например адреса серверов службы доменных имен (DNS) и адреса серверов службы windows INTERNET Name Service (WINS). Системный администратор настраивает DHCP-сервер с помощью параметров, которые анализируются для клиента.

Дополнительные сведения см. в статье Основные сведения о DHCP.

Устранение неполадок DHCP-серверов

Для DHCP-серверов проверка следующие устройства и параметры:

  • Служба DHCP-сервера запущена и запущена. Чтобы проверка этот параметр, выполните net start команду и найдите DHCP-сервер.
  • DHCP-сервер авторизован. См . статью Авторизация DHCP-сервера Windows в сценарии присоединения к домену.
  • Убедитесь, что аренды IP-адресов доступны в область DHCP-сервера для подсети, в которую включен DHCP-клиент. Для этого ознакомьтесь со статистикой соответствующих область в консоль управления DHCP-сервера.
  • Проверьте, можно ли найти какие-либо BAD_ADDRESS списки в разделе Аренда адресов .
  • Проверьте, имеют ли какие-либо устройства в сети статические IP-адреса, которые не были исключены из область DHCP.
  • Убедитесь, что IP-адрес, к которому привязан DHCP-сервер, находится в подсети областей, из которых IP-адреса должны быть арендованы. Это происходит в том случае, если агент ретрансляции недоступен. Для этого выполните Get-DhcpServerv4Binding командлет или Get-DhcpServerv6Binding .
  • Убедитесь, что только DHCP-сервер прослушивает UDP-порты 67 и 68. Ни один другой процесс или другие службы (например, WDS или PXE) не должны занимать эти порты. Для этого выполните netstat -anb команду .
  • Если вы работаете с развернутой средой IPsec, убедитесь, что добавлено исключение IPsec DHCP-сервера.
  • Убедитесь, что IP-адрес агента ретрансляции можно проверить с DHCP-сервера.
  • Перечисление и проверка настроенных политик и фильтров DHCP.

Устранение неполадок DHCP-клиентов

Для DHCP-клиентов проверка следующие устройства и параметры:

  • Кабели подключены и работают.
  • Фильтрация MAC включена на коммутаторах, к которым подключен клиент.
  • Сетевой адаптер включен.
  • Установлен и обновлен правильный драйвер сетевого адаптера.
  • Служба DHCP-клиента запущена и запущена. Чтобы проверка это, выполните команду net start и найдите DHCP-клиент.
  • Брандмауэр не блокирует порты 67 и 68 UDP на клиентском компьютере.

Сбор данных

Прежде чем обратиться в службу поддержки Майкрософт, вы можете собрать сведения о проблеме.

Предварительные требования

  1. TSS должны запускаться учетными записями с правами администратора в локальной системе, а лицензионное соглашение должно быть принято (после принятия лицензионного соглашения TSS больше не будет запрашивать запрос).
  2. Мы рекомендуем использовать политику выполнения PowerShell на локальном компьютере RemoteSigned .

Если текущая политика выполнения PowerShell не разрешает выполнение TSS, выполните следующие действия:

  • RemoteSigned Задайте политику выполнения для уровня процесса, выполнив командлет PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned .
  • Чтобы проверить, вступает ли в силу изменение, выполните командлет PS C:\> Get-ExecutionPolicy -List .
  • Так как разрешения уровня процесса применяются только к текущему сеансу PowerShell, после закрытия заданного окна PowerShell, в котором выполняется служба TSS, назначенное разрешение для уровня процесса также вернется в ранее настроенное состояние.

Сбор ключевой информации перед обращением в службу поддержки Майкрософт

  1. Скачайте TSS на всех узлах и распакуйте его в папку C:\tss .
  2. Откройте папку C:\tss из командной строки PowerShell с повышенными привилегиями.
  3. Запустите трассировку на клиенте и сервере с помощью следующих командлетов:
  4. Клиента:
TSS.ps1 -Scenario NET_DHCPcli 
TSS.ps1 -Scenario NET_DHCPsrv 

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

Трассировки будут храниться в ZIP-файле в папке C:\MS_DATA , которую можно отправить в рабочую область для анализа.

Справочные материалы

  • Руководство по устранению неполадок для DHCP
  • Использование автоматической адресации TCP/IP без DHCP-сервера

Журналы событий

Проверьте журналы событий службы системных иDHCP-серверов (журналы >приложений и службMicrosoft>Windows> DHCP-Server) на наличие обнаруженных проблем.

В зависимости от типа проблемы событие регистрируется в одном из следующих каналов событий:

  • Рабочие события DHCP-сервера
  • События администрирования DHCP-сервера
  • Системные события DHCP-сервера
  • События уведомлений фильтра DHCP-сервера
  • События аудита DHCP-сервера

Журнал DHCP-сервера

Журналы отладки службы DHCP-сервера содержат дополнительные сведения о назначении аренды IP-адресов и динамических обновлениях DNS, выполняемых DHCP-сервером. По умолчанию эти журналы находятся в папке %windir%\System32\Dhcp.

Дополнительные сведения см. в разделе Анализ файлов журнала DHCP-сервера.

Обратная связь

Были ли сведения на этой странице полезными?

Устранение неполадок на сервере DHCP

Попробуйте наш виртуальный агент . Это поможет вам быстро определить и устранить распространенные проблемы DHCP.

В этой статье описывается устранение неполадок, возникающих на DHCP-сервере.

Контрольный список по устранению неполадок

Проверьте следующие параметры:

  • Служба DHCP-сервера запущена и работает. Чтобы проверка этот параметр, выполните net start команду и найдите DHCP-сервер.
  • DHCP-сервер является полномочным. См. статью Авторизация DHCP-сервера Windows в сценарии присоединения к домену.
  • Убедитесь, что аренды IP-адресов доступны на DHCP-сервере область для подсети, в которую включен DHCP-клиент. Сведения о доступности см. в статистике соответствующих область на dhcp-сервере консоль управления.
  • Проверьте, можно ли найти список BAD_ADDRESS в адресных арендах.
  • Проверьте, имеют ли какие-либо устройства в сети статические IP-адреса, которые не были исключены из область DHCP.
  • Убедитесь, что DHCP-сервер привязывается по крайней мере к одному IP-адресу и что этот IP-адрес находится в подсети область, из которых ip-адреса должны быть арендованы, если только не используется ретрансляция DHCP. Для этого выполните Get-DhcpServerv4Binding проверку или Get-DhcpServerv6Binding командлет. Привязки подключения сервера настраиваются на DHCP-сервере консоль управления в разделе «Дополнительные свойства IPv4/ IPv6″.
  • Убедитесь, что только DHCP-сервер прослушивает порт UDP 67 и 68, выполнив netstat -anb команду. Ни один другой процесс или другие службы, такие как WDS или PXE, не должны занимать эти порты.
  • Убедитесь, что исключение IPsec DHCP-сервера добавляется, если вы работаете с развернутой средой IPsec.
  • Убедитесь, что IP-адрес агента ретранслятора можно проверить с DHCP-сервера.
  • Перечисление и проверка настроенных политик и фильтров DHCP.

Журналы событий

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

  • Операционные события DHCP-сервера
  • Административные события DHCP-сервера
  • Системные события DHCP-сервера
  • События уведомлений фильтра DHCP-сервера
  • DDL_SERVER_AUDIT_EVENTS

сбор данных

Журнал сервера DHCP

Журналы отладки DHCP-сервера предоставляют дополнительные сведения о назначении аренды IP-адресов и динамических обновлениях DNS, выполняемых DHCP-сервером. Эти журналы по умолчанию расположены в %windir%\System32\Dhcp. Дополнительные сведения см. в статье Анализ файлов журнала DHCP-сервера.

Трассировка сети

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

См. также

  • Руководство по устранению неполадок DHCP
  • Руководство по устранению неполадок для протокола конфигурации динамического узла (DHCP)
  • Общие сведения о наборе инструментов TroubleShootingScript (TSS)

Авторизация DHCP сервера и устранение проблем

Настройка серверов windows и linux

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

Что такое авторизованный DHCP

Когда вы устанавливаете Active Directory в своей компании, то у вас появляется тройка ролей, которые очень часто идут вместе, я говорю про AD, DNS и DHCP. Эта тройка позволяет системному администратору получить все прелести и преимущества доменной структуры. Очень важным аспектом любой современной IT инфраструктуры, является аспекты безопасности и в случае DHCP, это очень актуально. Небольшое воспоминание из практики. Когда я еще только начинал свой путь инженера, то я плохо разбирался в сетевых протоколах и технологиях, знал так сказать азы. Я знал, что у нас в окружении установлен Windows DHCP сервер и, что он сам раздает ip-адреса. В один из рабочих дней мне позвонил менеджер и сказал, что у него пропал интернет и доступ к сетевым шарам.

Когда я к нему подошел, то стал проводить сетевую диагностику, где одним из этапов было вычисление полученного ip-адреса. Какого же было мое удивление, когда я за место диапазона 192.168.100.0 увидел диапазон адресов 192.168.1.0. Я точно знал, что на моем DHCP сервере такой области нет. В итоге оказалось, что один из программистов принес WIFI роутер в то время, это было диковинкой, а так как мозги данного устройства работали на Linux платформе, то его DHCP сервер отрабатывал быстрее, чем в Windows сервере, что в итоге вело к выдаче адресов из другой области. Вот для предотвращения таких вещей и есть авторизация DHCP сервера.

Требования к серверу перед авторизацией

Авторизация DHCP сервера является обязательной процедурой и требует соблюдения некоторых вещей:

  • Ваш сервер DHCP должен быть членом Active Directory
  • У вас должны быть права на авторизацию его в AD, администратор предприятия или делегированная группа.
  • Не должно быть проблем с созданием и редактированием атрибутов и классов в схеме Active Directory

Интересные моменты

  • Сервер DHCP проверяет свою авторизацию в AD DS каждый час. Он использует протокол LDAP [MS-ADTS] для связи с Active Directory и проверки, авторизован ли он для обслуживания IP-адресов.
  • При установке в среде с несколькими лесами DHCP-серверы запрашивают авторизацию изнутри. После авторизации серверы DHCP в среде с несколькими лесами сдают в аренду IP-адреса всем доступным клиентам.
  • Если вы устанавливаете роль DHCP на контроллере домена, сервер автоматически авторизуется. Если вы устанавливаете его на рядовой сервер, вам нужно будет вручную выполнить процесс авторизации одним из следующих способов.
  • Если в сети появится DHCP сервер, отличный от Windows платформы, то он сможет раздавать IP-адреса и авторизация ему не потребуется. Чтобы этого избежать нужны технологии на подобии DHCP snooping и системы анализа трафика.

Методы авторизации DHCP в Active Directory

  • Авторизация после установки из оснастки в мастере
  • Из оснастки, после всех настроек
  • Авторизация после установки роли, через PowerShell
  • Авторизация сервиса после установки роли через командную строку и утилиту netsh

Первый метод авторизации DHCP

Я покажу его на примере Windows Server 2019, когда вы установили роль DHCP, вас попросят закончить настройку. В итоге у вас откроется окно мастера, где вас попросят авторизовать в Active Directory, обращаю внимание, что вы на этом этапе можете ее пропустить. Напоминаю, что права должны быть минимум администратора домена или аналогично делегированные.

авторизации DHCP Windows server 2019

Второй метод авторизации DHCP

Вторым методом я могу выделить возможность, произвести авторизацию сервиса в AD в самой оснастке, после настройки области IPV4 или IPV6. Для этого нажмите в оснастке по самому корню правым кликом и выберите в контекстном меню пункт «Авторизовать».

авторизации DHCP в Active Directory-01

Так же в данной оснастке можно авторизовать и удаленный сервер, для этого щелкните правым кликом по корню и выберите пункт «Список авторизованных серверов».

Список авторизованных серверов

В окне «Список авторизованных серверов» нажмите кнопку «Авторизовать». У вас откроется дополнительное окно, где можно указать DNS имя или IP-адрес. Я впишу мой второй дополнительный сервер с ip-адресом 192.168.31.3.

авторизации DHCP в Active Directory-05

Произойдет поиск роли DHCP на данном сервере. Если она там есть то появится дополнительное окно, где нужно нажать «ОК».

авторизация удаленного DHCP сервера

Все сервер у вас должен появится в списке авторизованных.

Авторизовать DHCP-сервер с помощью Netsh

Откройте командную строку с правами администратора и введите следующую команду для авторизации DHCP-сервера.

netsh dhcp show server

Команда показывает мои текущие авторизованные серверы в домене, как видим у меня он один dc01/root/pyatilistnik.org. В окне «Управление авторизованными серверами» его видно. Далее авторизуем новый сервер svt2019s01.root.pyatilistnik.org с ip-адресом 192.168.31.3

netsh dhcp add server svt2019s01.root.pyatilistnik.org 192.168.31.3

После этого я сделал вывод списка авторизованных DHCP и вижу, что их теперь два.

Авторизация dhcp в Active Directory через netsh

Авторизовать DHCP-сервер с помощью PowerShell

Get-DhcpServerInDC

Вижу, что в данный момент он один.

Список dhcp серверов через PowerShell

Теперь, чтобы добавить второй сервер, выполните команду:

Add-DhcpServerInDC -DnsName «svt2019s01.root.pyatilistnik.org» -IPAddress 192.168.31.3

авторизация dhcp через powershell

Как деактивировать DHCP сервер

Логично предположить, что методов деактивации тоже четыре.

  • Из оснастки DHCP сервера, для этого правым кликом по названию сервера и из контекстного меню выбираем пункт «Запретить».

Запретить dhcp сервер в домене

  • Второй метод деактивации — это из окна «Управление авторизованными серверами», выбираем нужный и нажимаем кнопку «Запретить»

Запретить dhcp сервер в AD

  • Третий метод запретить конкретный сервис, это утилита командной строки netsh.

netsh dhcp delete server svt2019s01.root.pyatilistnik.org 192.168.31.3

  • Последний метод деактивации, это в PowerShell

Remove-DhcpServerInDC -DnsName «svt2019s01.root.pyatilistnik.org -IPAddress 192.168.31.3

Где прописывается DHCP в конфигурации Active Directory

Теперь хочу вам показать, где в классах и с какими атрибутами прописываются записи авторизованных DHCP серверов. Откройте редактор атрибутов AD и зайдите в раздел конфигурации. Перейдите по пути: CN=Services,CN=Configuration,DC=root,DC=pyatilistnik,DC=org. В данном контейнере вы увидите записи ваших авторизованных DHCP сервисов и очень важную запись CN=DhcpRoot, если ее нет, то это плохо.

Когда вы пытаетесь авторизовать сервер, то первым делом проверяется наличие записи CN=DhcpRoot ,и если она не найдена, то вы не сможете завершить вашу операцию

список dhcp в конфигурации ad

dhcpserver атрибут

Показать узел служб

В итоге у вас появится контейнер «Services», далее «NetServices», в котором вы увидите весь список.

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

dhcpServer в ad службы и сайты

Из-за не правильной деактивации DHCP или восстановлении сервера из резервной копии приличной давности, он у вас может не запускать и при попытке пройти авторизацию написать «Параметр задан неверно»

Параметр задан неверно

В таких случаях вам нужно проверять наличие CN=Services,CN=Configuration,DC=root,DC=pyatilistnik,DC=org записи вашего сервера. Если ее нет, то придется создать ее с нуля. Через правый клик создаем новый объект AD.

Создание объекта в конфигурации AD

Выбираем класс объекта dhcpServer.

Создание объекта dhcpServer

Прописываем Common-name вашего сервера.

Common-name в dhcpServer

dhcp-Unique-key ставим 0.

dhcp-Unique-key

dhcp-type ставим 1.

dhcp-type

В dhcp-identification прописываем distinguished name сервера.

dhcp-identification

После создания записи, попробуйте перезапустить DHCP на нужно сервере. Если не поможет, то удаляете данную запись, и заново пробуете его авторизовать, бывает помогает.

Как дать права на авторизацию DHCP сервера

На сколько мне известно, чтобы у вас была возможность авторизовывать серверы DHCP, то вы должны быть администратором предприятия (Enterprise Admin). Понятно, что в данной группе должно быть минимум людей. Вы можете делегировать данные права, любой группе или пользователю. Для этого, в оснастке Active Directory — сайты и службы с включенной опцией «Показать узел служб» вы нажимаете правым кликом по контейнеру NetServices и выбираете пункт делегирование управления.

Делегирование управления dhcp

На первом шаге, вам необходимо указать пользователя или группу, для которой будут выданы права на управление DHCP авторизацией.

Выбор группы для делегирования dhcp

Выбираем создание особой задачи для делегирования.

Особая задача по делегированию

Оставляем пункт «Этой папкой, существующими в ней объектами и созданием новых объектов в этой папке»

Делегирование авторизации DHCP в AD-01

На следующем шаге, даем полные права. После этого у нужной группы появится возможность авторизовывать сервера DHCP в вашем домене Active Directory.

Делегирование авторизации DHCP в AD-02

На этом я хочу закончить эту статью, она получилась и так очень длинной. Если у вас остались вопросы, то пишите их в комментариях, я на них постараюсь ответить. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org,

Популярные Похожие записи:
  • Ошибка DHCP, потеряна связь с партнером
  • Поиск mac-адреса на DHCP с помощью PowerShellПоиск mac-адреса на DHCP с помощью PowerShell
  • DHCP BAD_ADDRESS: This address is already in useDHCP BAD_ADDRESS: This address is already in use
  • Ошибка NETLOGON 5719: Перестал отвечать дочерний домен
  • Ошибка активации 0xC004F034 на KMS сервере
  • Ошибка 0xC000018C An Error occured during Logon

Принципы работы протокола DHCP

В статье рассказываем о принципах работы DHCP-протокола, процессе 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.254.

Бывает и так, что не все доступные адреса должны быть назначены клиентам. Например, администратор может исключить (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 1 — маска подсети IP;
  • Option 3 — основной шлюз;
  • Option 6 — адрес сервера DNS (основной и резервный);
  • Option 51 определяет, на какой срок IP-адрес предоставляется в аренду клиенту;
  • Option 55 — список запрашиваемых опций. Клиент всегда запрашивает опции для правильной конфигурации. Отправляя сообщение с Option 55, клиент выставляет список запрашиваемых числовых кодов опций в порядке предпочтения. 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.

  • Option 43 зарезервирована для обмена информацией производителей;
  • Option 60 — классовый идентификатор; здесь указывается, например, PXE клиент;
  • Option 66 и 67 необходимы для указания имени сервера PXE и имени файла загрузки соответственно.

Снижаем цены на выделенные серверы в реальном времени

Арендуйте готовые конфигурации или предложите свой вариант.

Взаимодействие 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 командой из терминала:

sudo apt-get install dnsmasq -y

А затем откройте файл конфигурации /etc/dnsmasq.conf. Файл конфигурации dnsmasq очень большой, но он содержит комментарии с объяснениями того, за что отвечает каждая настройка. Чтобы добавить требуемые настройки, откройте файл и удалите решетку (#), означающую комментарий, в начале нужных строк.

Шаг 3 — настройка фаервола

Для изменения настроек фаервола можно использовать Ubuntu Uncomplicated Firewall. Используйте следующие команды:

sudo ufw allow bootps
sudo ufw allow 53/udp
sudo ufw allow 53/tcp

Шаг 4 — изменение настроек роутера

Зайдите в настройки вашего роутера из браузера, отключите DHCP для локальной сети, измените все настройки DNS так, чтобы они указывали на ваш только что настроенный сервер. Последнее действие — перезапуск сети на сервере. Для этого вы можете просто перезагрузить компьютер или использовать команды:

sudo service dnsmasq restart
sudo service network-manager restart

Недостатки протокола DHCP

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

Следующий недостаток — ненадежность UDP. UDP не обеспечивает гарантию доставки информации. Этот протокол допускает потери и ошибки, которые могут сказаться и на работе DHCP, в частности при PXE-загрузке.

Заключение

Мы рассмотрели основные принципы работы DHCP-серверов. Несмотря на недостатки и частые доработки, протокол DHCP широко используется в современных сетях. Также изучили процесс DORA, основные опции и другие аспекты протокола. Надеемся, эта статья оказалась вам полезна.

OSPF-протокол: основные термины и алгоритмы работы

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

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