Debian не получает IP через DHCP

Обновлено: 06.07.2024

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

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

Посредством «аренды» DHCP-сервер выделяет IP-адреса DHCP-клиентам. Время аренды зависит от того, как долго клиентской системе требуется подключение или конфигурация DHCP.

В этой статье мы поговорим о настройке DHCP-клиента в дистрибутиве Ubuntu Linux. В этой статье мы исходили из того, что DHCP-сервер уже настроен на другой вашей машине, или вы также можете установить его с этого URL-адреса.

Настройка DHCP-клиента в Ubuntu

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


После определения имени сетевого интерфейса необходимо внести некоторые изменения в файл сетевых интерфейсов для настройки DHCP-клиента. Итак, откройте файл «/etc/network/interfaces» в вашем любимом текстовом редакторе с помощью следующей команды:

Теперь используйте следующий синтаксис для настройки клиента DHCP:

имя интерфейса iface > inet dhcp

Здесь имя сетевого интерфейса — enp1s0; мы изменили приведенные выше строки на следующий формат:

iface enp1s0 инет dhcp


Сохраните и закройте указанный выше файл конфигурации. Теперь перезапустите службы диспетчера сети, выполнив следующую команду:


Проверьте статус работы службы NetworkManager, выполнив следующую команду:


В процессе загрузки эта система должна запрашивать сетевые параметры у DHCP-сервера.

Чтобы запустить процесс DHCP вручную, можно использовать команду dhclient. Если DHCP-сервер не назначает IP-адрес DHCP-клиенту, используйте следующую команду, чтобы обновить или освободить IP-адрес. Немного подождать; сервер DHCP автоматически назначит IP-адреса клиентскому компьютеру.

С помощью команды ifconfig можно просмотреть имя интерфейса.

Настроить DHCP через сетевой план

В большинстве дистрибутивов Ubuntu управление сетью осуществляется с помощью программы netplan. Следовательно, в этой ситуации вам необходимо отредактировать файлы конфигурации netplan. Чтобы отредактировать соответствующую конфигурацию файла, перейдите в каталог «/etc/netplan» и откройте этот файл.


Добавьте в этот файл следующие строки:

Сохраните указанную выше конфигурацию, нажав «Ctrl+O» в этом файле, и выйдите из этого окна, нажав «Ctrl+x».


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

Настройка DHCP-клиента в среде рабочего стола Ubuntu

Вы также можете использовать другую виртуальную машину с Ubuntu 20.04 Desktop в качестве DHCP-клиента. В Ubuntu метод настройки по умолчанию установлен как DHCP. Если он не использует IP-директор с DHCP-сервера, измените настройку IPV4 вашей сети. Нажмите «Настройка» и перейдите к настройкам проводной или беспроводной сети. В вашей системе должно появиться следующее окно:


Настройте всю конфигурацию IPV4 так, как показано на снимке экрана выше.

Теперь отобразите сведения о сети, щелкнув вкладку "Подробности" следующим образом:


Проверьте конфигурацию, выполнив следующую команду:

Вы увидите, что IP-адрес назначен сетевому интерфейсу.

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

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

Заключение

В этой статье мы рассмотрели, как настроить DHCP-клиент различными способами в дистрибутиве Ubuntu. Все команды мы реализовали в среде Ubuntu 20.04. Настройка DHCP-клиента очень проста. Таким образом, всего за несколько минут вы сможете легко настроить DHCP-клиент в своей системе, выполнив описанные выше действия.

Об авторе

Самрина Аслам

Самрина Аслам имеет степень магистра в области разработки программного обеспечения. В настоящее время она работает фрилансером и техническим писателем. Она энтузиаст Linux и написала различные статьи по компьютерному программированию, различным разновидностям Linux, включая Ubuntu, Debian, CentOS и Mint.

Большую часть настройки сети можно выполнить с помощью файла конфигурации interfaces в /etc/network/interfaces. Здесь вы можете дать вашей сетевой карте IP-адрес (или использовать DHCP), настроить информацию о маршрутизации, настроить маскировку IP-адресов, установить маршруты по умолчанию и многое другое.

Не забудьте добавить интерфейсы, которые вы хотите вызывать во время загрузки, в строку "auto".

Дополнительные параметры см. в разделе man-интерфейсы.

Запуск и остановка интерфейсов

Интерфейсы, настроенные с помощью /etc/network/interfaces, можно активировать и деактивировать с помощью команд ifup и ifdown.

Некоторые устаревшие руководства предписывают перезапустить сетевую службу, чтобы применить изменения к /etc/network/interfaces, однако это устарело, поскольку возможен перезапуск не всех интерфейсов. Вместо этого используйте ifup и ifdown, чтобы применить изменения к каждому интерфейсу, например, к интерфейсу с именем enp7s0:

Повторно инициализировать новую настройку сети

Если вы вносите более фундаментальные изменения в сеть, например. добавив новые виртуальные интерфейсы (например, мост) в /etc/network/interfaces, вы можете повторно инициализировать конфигурацию сети, перезапустив демон networking:

Имена сетевых интерфейсов

См. раздел Имена сетевых интерфейсов. Начиная с Stretch новые системы по умолчанию больше не используют имена интерфейсов в старом стиле, такие как eth0, eth1, wlan0, wlan1. В новой системе используются имена, основанные на расположении оборудования, например eno0, enp0s31f6, wlp1s7 (или, в случае USB-ключей, MAC-адрес: enx2c56ac39ec0d).

Вы можете перечислить интерфейсы с помощью: ls /sys/class/net

В различных приведенных ниже примерах по-прежнему используется "eth0" в качестве имени интерфейса по умолчанию, даже несмотря на то, что оно вряд ли существует в современной системе.

Обновление и имена сетевых интерфейсов

Использование DHCP для автоматической настройки интерфейса

Если вы просто используете DHCP, все, что вам нужно, это что-то вроде:

Для DHCPv6 (используется для IPv6) добавьте также следующий раздел iface

Кроме того, IPv6 можно настроить автоматически, используя автоконфигурацию адресов без сохранения состояния или SLAAC, который указывается с помощью auto вместо dhcp в inet6 строфа:

Настройка интерфейса вручную

Если вы настраиваете его вручную, что-то вроде этого установит шлюз по умолчанию (сеть, широковещательная рассылка и шлюз не являются обязательными):

Если вы также хотите добавить адрес IPv6, добавьте что-то вроде:

Дополнительные параметры см. в разделе man-интерфейсы.

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

Также возможно сочетание ручной и автоматической настройки, например. для использования IPv6 SLAAC для подключения к Интернету и статических адресов в сети:

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

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

Если одна из этих команд успешно установила вашу сетевую карту, вы можете поместить ее в /etc/network/interfaces, чтобы она запускалась при включении интерфейса (например, во время загрузки). Однако прежде чем вы это сделаете, вы должны понимать, что некоторые драйверы и устройства ведут себя не так, как другие. Когда модуль драйвера загружен, сетевая карта может начать автосогласование без возможности остановить его (особенно с драйверами, которые не принимают параметры). Настройки из interfaces применяются в какой-то момент после этого, что может быть прямо в середине согласования. Таким образом, некоторые люди считают необходимым отложить команду ethtool или mii-tool на несколько секунд. Таким образом:

Открытие интерфейса без IP-адреса

Чтобы создать сетевой интерфейс вообще без IP-адреса, используйте ручной метод и используйте команды pre-up и post-down для включения и выключения интерфейса.

Если интерфейс является интерфейсом VLAN, команды up/down должны выполняться до/после перехвата vlan. (Вы также должны установить пакет vlan.)

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

В большинстве случаев редактируемый файл является файлом конфигурации такой программы.

В самых сложных ситуациях лучше всего использовать resolvconf, хотя в более простых конфигурациях это, вероятно, излишне.

Файл конфигурации resolv.conf

Файл конфигурации resolv.conf в /etc/resolv.conf содержит информацию, которая позволяет компьютеру, подключенному к сети, преобразовывать имена в адреса. (Примечание. Не путайте этот файл конфигурации с программой resolvconf, у которой, к сожалению, почти такое же имя.)

Файл resolv.conf обычно содержит IP-адреса серверов имен (преобразователей имен DNS), которые будут пытаться преобразовать имена в адреса для любого узла, доступного в сети. Там будет строка или строки, которые выглядят следующим образом:

В этом примере система использует серверы имен с IP-адресами 12.34.56.78 и 12.34.56.79. Просто отредактируйте файл и введите IP-адреса серверов имен, которые необходимо использовать после каждого сервера имен. Добавьте больше строк nameserver, если у вас больше серверов имен. Не используйте этот метод, если у вас установлена ​​программа resolvconf.

В файле конфигурации resolv.conf есть много других опций для определения того, как преобразователь ищет имена. Подробнее см. в man resolv.conf.

Программа resolvconf

Программа resolvconf отслеживает системную информацию о доступных в данный момент серверах имен. Его не следует путать с файлом конфигурации resolv.conf, который, к сожалению, имеет почти идентичное имя. Программа resolvconf является необязательной в системе Debian.

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

Если resolvconf правильно установлен, файл конфигурации resolv.conf в /etc/resolv.conf заменяется символической ссылкой на /etc/resolvconf/run/resolv.conf, а преобразователь вместо этого использует файл конфигурации, который динамически генерируется resolvconf в /etc/resolvconf/run/resolv .conf.

Программа resolvconf обычно необходима только тогда, когда в системе есть несколько программ, которым необходимо динамически изменять информацию о сервере имен. В простой системе, где серверы имен не меняются часто или меняются только одной программой, достаточно файла конфигурации resolv.conf.

Если установлена ​​программа resolvconf, не следует вручную редактировать файл конфигурации resolv.conf, так как он будет динамически изменяться программами в системе. Если вам нужно вручную определить серверы имен (как в случае со статическим интерфейсом), добавьте в файл конфигурации interfaces в /etc/network/interfaces примерно следующую строку:

Поместите строку с отступом в строфе iface, например, сразу после строки gateway. Введите IP-адреса серверов имен, которые необходимо использовать после dns-nameservers. Поместите их все в одну строку, разделенную пробелами. Не забудьте "s" в конце dns-nameservers.

Программа resolvconf — относительно новое дополнение к Debian, и многие старые программы нуждаются в обновлении или перенастройке для правильной работы с ней. Если у вас возникли проблемы, см. /usr/share/doc/resolvconf/README. В нем содержится много информации о том, как заставить другие программы работать с resolvconf.

Конфигурация DNS для NetworkManager

NetworkManager переопределит настройки DHCP, перезаписав resolv.conf, даже если вы настроили DNS в /etc/dhcp/dhclient.conf, например заставляя DNS сначала искать локальный домен, который может истечь по времени, прежде чем разрешение DNS продолжится, что приведет к длительному времени разрешения DNS.Вы можете получить представление о том, какими, по мнению NetworkManager, должны быть настройки, выполнив команду nm-tool в командной строке.

  1. Выберите подключение (на вкладке "Проводное" или "Беспроводное") и нажмите "Изменить".
  2. Перейдите на вкладку "Настройки IPv4".
  3. Выберите «Только автоматические (DHCP) адреса» вместо «Автоматически (DHCP)».
  4. Введите DNS-серверы в поле «DNS-серверы», разделенные пробелами (например, 208.67.222.222 для OpenDNS).
  5. Нажмите "Применить".

NetworkManager сохраняет эти настройки в /etc/NetworkManager/system-connections/name-of-connection. Пример /etc/NetworkManager/system-connections/Проводное подключение 1 :

Повторный запуск nm-tool должен показать, что NetworkManager теперь имеет правильное представление о том, как следует разрешать ваш DNS.

Конфигурация DHCP-клиента

Настройка дополнительных DNS-серверов

Пример: dhclient3 использует /etc/dhcp/dhclient.conf. Нужная вам настройка

Настройка дополнительных поисковых доменов

добавление поисковых доменов для VPN или локальных виртуальных сетей:

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

Подробности см. на странице руководства dhclient.conf(5).

Пример: подключите сервер к 2 коммутаторам (через eth0 и eth1), определив мост 0 и назначив серверу IP-адрес в этой подсети:

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

Пример: настройка моста без настройки IP-адреса (используйте «ручной» вместо «статический») для «перенаправления» интерфейса на гостевую ВМ. (Конфигурация статического моста содержит только 1 физический интерфейс. Виртуальный интерфейс будет добавлен к мосту при запуске ВМ.)

Примечание. Мост Linux поддерживает только STP, но не RSTP (Rapid Spanning Tree). Поэтому он поддерживает только старые затраты STP, а не новые затраты RSTP (см. Spanning_Tree_Protocol). Обычно это нормально для коммутаторов Cisco, но, например. Коммутаторы Juniper используют затраты RSTP, поэтому это может привести к различным вычислениям связующего дерева и проблемам с петлями. Это можно исправить, настроив стоимость вручную либо на коммутаторе, либо на сервере. Установка стоимости на коммутаторе предпочтительнее, так как Linux переключается обратно на стоимость по умолчанию всякий раз, когда интерфейс отключается/включается.

Соединение без переключения

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

В некоторых случаях это плохо. Например, если мост соединяет 2 магистральных интерфейса и одинаковые MAC-адреса могут быть видны с обоих интерфейсов, в зависимости от VLAN. Поскольку мост Linux не поддерживает VLAN (выделенные таблицы MAC-адресов для каждой VLAN), в таких настройках необходимо отключить изучение MAC-адресов и перевести мост в режим реального «моста» с помощью:

Ручная настройка

Настройка сценария инициализации сети

В /etc/modules добавьте строку:

В /etc/network/interfaces в раздел iface добавьте параметр:

Именем интерфейса должно быть необработанное имя интерфейса (такое же, как указано в vlan-raw-device), затем точка, затем идентификатор VLAN, например eth0.100. Вместо этого это может быть «vlan», а затем идентификатор VLAN, например, vlan100. В любом случае идентификатор VLAN находится в конце, и это единственное место, где он настраивается.

Примечание. Если вы называете свои интерфейсы VLAN ethX.YYY, то нет необходимости указывать vlan-raw-device, так как исходное устройство можно получить по имени интерфейса.

Мосты и виртуальные локальные сети

Если вы создаете интерфейсы VLAN только для того, чтобы поместить их в мост, нет необходимости определять интерфейсы VLAN вручную. Просто настройте мост, и интерфейс VLAN будет создан автоматически при создании моста, например:

Предупреждения при использовании моста и vlan

Если вы используете мостовую настройку VLAN, которая, вероятно, полезна для работы в сети в средах виртуализации, позаботьтесь о том, чтобы подключить мостовое устройство или устройства VLAN только к базовому физическому устройству, как показано выше. Присоединение физического интерфейса (eth0) к мосту (например, bri1) при использовании одного и того же физического интерфейса в явно разных VLAN приведет к тому, что все пакеты останутся помеченными. (Ядро новее 2.6.37 и старше 3.2).

debian_bonding.jpg

Как настроить один из вышеперечисленных серверов с активным резервным копированием соединения 3 vlan Сеть Debian без SPOF без собственного vlan.

Конфигурация сети

Пример конфигурации интерфейса коммутатора Cisco

связывание с активной резервной копией

Создайте файл /etc/modprobe.d/bonding.conf, содержащий:

/etc/сеть/интерфейсы

Как установить MTU (максимальная единица передачи / размер пакета) с VLANS через связанный интерфейс

MTU необходимо настроить на связующем интерфейсе и подчиненных интерфейсах после того, как сброс конфигурации был применен к связующим интерфейсам. Это делается с помощью линии post-up в конфигурации интерфейса склеивания.

Устаревший метод

Этот текст /etc/network/interfaces назначает три IP-адреса для eth0.

Псевдоним интерфейса не должен иметь "шлюз" или "dns-nameservers"; допустимо динамическое назначение IP-адресов.

Приведенная выше конфигурация является предыдущим традиционным методом, отражающим традиционное использование ifconfig для настройки сетевых устройств. В ifconfig введена концепция псевдонимов или виртуальных интерфейсов. Эти типы виртуальных интерфейсов имеют имена вида interface:integer, и ifconfig обрабатывает их очень похоже на реальные интерфейсы.

Сейчас ifupdown использует утилиту ip из пакета iproute2 вместо ifconfig. Более новая утилита ip не использует ту же концепцию псевдонимов или виртуальных интерфейсов. Однако он поддерживает присвоение интерфейсам произвольных имен (они называются метками). ifupdown использует эту функцию для поддержки псевдонимов интерфейсов при использовании ip.

метод iproute2

Кроме того, ifupdown поддерживает указание нескольких интерфейсов путем повторения разделов iface с одинаковым именем интерфейса. Основное отличие от описанного выше метода заключается в том, что ifupdown обрабатывает все такие разделы как один интерфейс, поэтому пользователь не может добавлять или удалять их по отдельности. Однако команды up/down, а также сценарии вызываются для каждого раздела, как это было раньше.

Обратите внимание, однако, что этот метод опасен! Определенные комбинации драйвера/оборудования иногда могут не установить соединение, если псевдонимам интерфейсов не присвоены метки. (Видел это в Debian Wheezy и Jessie с контроллером Gigabit Ethernet RTL8111/8168/8411 PCI Express (версия 01) с автоматическим согласованием до 10/полный. Аналогичное предупреждение от другого человека есть в истории этой страницы.)

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

Обновите IP-адрес в Debian 11 с помощью DHCP (все сетевые карты):

Инструмент dhclient — это основной метод Linux для работы с DHCP или динамическими IP-адресами. Когда наша система загружается, dhclient пытается настроить динамический IP-адрес для каждого сетевого устройства в нашей системе. Однако пользователь может в любое время вызвать dhclient для обновления IP-адреса интерфейса.

В первом примере этого руководства мы выполним dhclient с последующим флагом -r, чтобы освободить текущий IP-адрес. Важно отметить, что команда dhclient освободит все IP-адреса, если сетевое устройство не указано.

Примечание. После выполнения этой команды вы потеряете подключение к сети. Вы восстановите его, выполнив следующие шаги этого руководства:


Теперь ваша система освободила свой IP-адрес, и ваше подключение к Интернету пропало.

Вы также можете реализовать параметр -v (многословие), чтобы подробно описать весь процесс выпуска ИС в выходных данных, как показано в примере ниже:


После освобождения вашего IP-адреса вы можете запросить новый с помощью команды dhclient без дополнительных параметров, как показано на снимке экрана ниже:


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


Как видите, IP-адрес 192.168.1.103 был назначен устройству wlp3s0.

Обновите IP-адрес в Debian 11 с помощью DHCP (конкретная сетевая карта):

Как упоминалось ранее, если вы не укажете устройство при запуске команды dhclient, будут затронуты все IP-адреса сетевых карт.

Указать сетевую карту при запуске dhclient довольно просто. Просто добавьте имя сетевой карты в конце команды.

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


Затем, чтобы получить новый динамический IP-адрес конкретно для карты Wi-Fi wlp3s0, выполните следующую команду:


Как видите, IP-адрес был правильно назначен сетевому устройству wlp3s0.

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

Когда вы запускаете команду dhclient или загружаете компьютер, dhclient отправляет широковещательные сообщения (DHCP Discover) в подсети для обнаружения доступных DHCP-серверов. Пакет DHCP Discover включает в себя MAC-адрес физического компьютера, по которому клиент должен быть идентифицирован сервером. Затем DHCP-сервер отправляет ответ (DHCP OFFER), предлагая отправить IP-адрес. Клиент отвечает пакетом запроса или запросом DHCP, принимая предложение. Затем DHCP-сервер назначает IP-адрес клиенту, интегрируя его в сеть. Этот процесс известен как согласование DHCP.

DHCPDISCOVER: клиент отправляет пакет в подсети в поисках доступных DHCP-серверов для получения IP-адреса.

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

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

DHCPACK: Наконец, после того, как DHCP-сервер получил окончательный пакет запроса от клиента. Он ответит пакетом DHCPACK, завершающим назначение IP.

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

В некоторых случаях может потребоваться просмотреть историю динамических IP-адресов. Этого можно добиться, проверив системные журналы, расположенные в /var/log/syslog. Следующая команда позволяет увидеть все процессы согласования, в которых задействована команда dhclient:


Как видите, мы можем видеть весь процесс переговоров и ранее назначенные IP-адреса.

Примечание. Если эта статья была вам интересна, вы можете прочитать Дополнительные сетевые команды Linux.

Вывод:

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

Спасибо, что прочитали это руководство, объясняющее, как обновить IP-адреса DHCP в Debian 11. Следуйте подсказкам Linux, чтобы получить дополнительные советы и руководства по Linux.

Об авторе

Дэвид Адамс

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

Используйте Nmap, tcpdump и Wireshark, чтобы узнать, почему ваш корпоративный коммутатор и клиенты неправильно обмениваются IP-конфигурациями.

Опубликовано: 13 января 2022 г. | Дэймон Гарн (Red Hat)

Как использовать mtr

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

Дополнительные ресурсы по Linux

Существует множество способов устранения этой неполадки, в том числе те, которые я рассмотрю в этой статье: инструменты сканирования сети и анализа пакетов. Преимущество инструментов сканирования и прослушивания состоит в том, что они точно отображают то, что происходит в сети. Не то, что должна делать сеть, а то, что она делает.

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

  • DHCP DISCOVER: клиент сообщает, что ему необходимо арендовать IP-конфигурацию с DHCP-сервера
  • ПРЕДЛОЖЕНИЕ DHCP: сервер отправляет широковещательную рассылку, чтобы предложить конфигурацию IP.
  • ЗАПРОС DHCP: клиент отправляет официальный запрос о предлагаемой конфигурации IP.
  • DHCP ACKNOWLEDGE (ACK): сервер отправляет широковещательную рассылку, подтверждающую конфигурацию арендованного IP-адреса.

Эти широковещательные рассылки используют порты 67/udp и 68/udp. Если вы не знакомы с тем, как работает DHCP, см. раздел Конфигурации статических и динамических IP-адресов: развертывание DHCP.

Начните с основ

Сначала проверьте все основы:

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

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

Поиск DHCP-сервера

Одним из логических шагов является подтверждение того, что устройство службы DHCP присутствует в сети. Сканирование Nmap подтверждает его личность в сети. Многие статьи описывают, как использовать Nmap. Начните с базовой проверки связи, которая идентифицирует все хосты в сегменте. Запустите сканирование с подключенного устройства со статическим IP-адресом.

Чтобы выполнить базовую проверку связи для определения доступных хостов в сети 192.168.1.0/24, введите:

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

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

Поиск DHCP-трафика

Электронная книга по автоматизации ИТ

Возможно, вы спросите: каким DHCP-трафиком осуществляется обмен? Клиенты отправляют запросы DHCP DISCOVER, а сервер предоставляет ответы DHCP OFFER. Используйте анализатор протоколов (или анализатор пакетов) для перехвата сетевого трафика и убедитесь, что обмен данными происходит должным образом. Двумя основными примерами снифферов являются tcpdump и Wireshark. Что вы выберете, зависит от предпочтений, знакомства и того, что установлено в системе.

Сниффинг сетевого трафика с помощью tcpdump

Утилита tcpdump довольно часто используется на многих компьютерах администраторов Linux. Если нет, используйте dnf для его установки:

Сетевой интерфейс, который вы хотите отслеживать, должен находиться в неразборчивом режиме. Вы устанавливаете это с помощью команды ip. Например, чтобы настроить eth0 :

Вы можете настроить tcpdump для захвата определенных типов сетевых пакетов, а в загруженной сети рекомендуется сосредоточиться только на необходимом протоколе. В этом примере выполняется сбор информации о eth0 для портов UDP 67 и 68 (DHCP) в подробном режиме. tcpdump записывает вывод в файл с именем dhcp.pcap:

Просмотрите содержимое файла с помощью tcpdump (а не стандартного текстового редактора!). Параметр чтения - -r , за которым следует имя файла:

tcpdump может прочитать файл, но он может быть более привлекательным и простым для фильтрации вывода, открыв файл в Wireshark. Запустите Wireshark, перейдите в меню «Файл», выберите «Открыть» и выберите выходной файл .pcap (конкретный процесс может различаться в зависимости от версии).

Во-первых, установите, отправляли ли клиенты запросы DHCP DISCOVER (помните, что клиент инициирует процесс создания аренды). Если это так, то клиенты, вероятно, работают правильно. Если отправляются запросы DHCP DISCOVER, проверьте ответы DHCP OFFER от сервера. Существуют ли такие ответы и дают ли они правильную информацию?

Сниффинг сетевого трафика с помощью Wireshark

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

Установите фильтр захвата для соответствующего сетевого интерфейса (фильтра захвата для DHCP нет) и начните процесс захвата. Опять же, ключевое значение имеет подтверждение связи DHCP DISCOVER и DHCP OFFER. Затем запустите рабочую станцию ​​DHCP-клиента, чтобы инициировать процесс генерации аренды.Остановите захват максимум через одну минуту. Запрос DHCP возникает очень рано в процедуре запуска операционной системы.

При желании сохраните файл захвата. В поле Фильтр отображения введите dhcp и нажмите Enter, чтобы отфильтровать пакеты. Wireshark теперь отображает пакеты DHCP, полученные из сети. Клиентские пакеты являются сообщениями DHCP DISCOVER, и сервер должен ответить DHCP OFFER. Если отображаются оба набора пакетов, устройства обмениваются данными правильно. Если какой-либо набор отсутствует, проблема связана с соответствующим устройством. Обмен DHCP REQUEST и ACK также отображается, если процесс генерации аренды прошел успешно.

[ Получите доступ к бесплатной пробной версии полного доступа к учебной программе Red Hat. ]

Использовать скрипт Nmap

Хотя Nmap может выполнять общее сканирование, а анализаторы протоколов могут отображать информацию на основе перехваченных пакетов, как насчет более полного решения? Просмотрите сайт Nmap для Nmap Scripting Engine (NSE). Он содержит более 600 скриптов с предварительно настроенными настройками для различных сканирований Nmap. Авторы создают и делятся этими сценариями. В этом случае сценарий Broadcast-Dhcp-Discover помогает устранить неполадки DHCP.

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

Основной синтаксис для скриптов Nmap, например, широковещательный скрипт DHCP, выглядит следующим образом: nmap --script трансляция-dhcp-discover . Более конкретный синтаксис DHCP:

Версия сценария для одноадресной рассылки, dhcp-discover, отправляет прямой запрос на DHCP-сервер. Обратите внимание, что запрос адресован серверу DHCP:

Карьерный совет

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

Примечание. Существуют также соответствующие сценарии для устранения неполадок в сети IPv6.

Начните с простого

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

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

Читайте также: