Рейтинг:0

Определить источник аренды DHCP на рабочем столе Ubuntu 20.04

флаг us

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

Я пытаюсь выяснить, предлагает ли что-то еще в сети аренду DHCP (что очень конкретно объясняет все это), но, к сожалению, с переключением со старого доброго dhcp-клиента на сетевой менеджер это больше невозможно сделать. Сюда так как нет файла dhclient.leases. Также нет записей журнала для DHCPOFFER и идентификатора dhcp-сервера в /var/lib/NetworkManager/*.lease.

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

Greg Nelson avatar
флаг us
@guiverc Я переименовал вопрос, надеюсь, это сделало его недвусмысленным.
Рейтинг:0
флаг br

A) Диагностика DHCP-клиента

Это просто, но иногда недостаточно. «Проблема с несколькими DHCP-серверами» иногда требует более сложного анализа.

Освобождение и обновление IP-адреса:

sudo dhclient -v -r
судо дхклиент -v

Сокращенный пример ответа на команду:

DHCPDISCOVER от eth0 до 255.255.255.255, порт 67, интервал 3 (xid=0xc4b0e053)
DHCPACK 10.1.1.110 из 10.1.1.1 (xid=0xeb675d5d)

Искать от пункт в списке, например. ... из 10.1.1.1 .... Это адрес DHCP-сервера, с которого ваш клиент получил IP-адрес.

B) Диагностика сетевых пакетов

Это очень полезный и надежный вид диагностики. Установите Wireshark и перехватывайте DHCP-пакеты.

sudo apt-get установить wireshark

Во время установки Wireshark подтвердите опцию, говоря, что все пользователи может захватывать данные.

Добавлять проволочная акула группа для вашего пользователя:

sudo usermod -aG wireshark <ваше_имя_пользователя>
группы <your_user_name>

Вторая команда выше подтверждает, что группа wireshark добавлена ​​к вам.

Выйдите из системы и войдите в систему или перезагрузите компьютер. Затем запустите Wireshark. Выберите интерфейс LAN из списка интерфейсов и начните захват.

Помещать загрузка или же udp.port==67 или udp.port==68 строку в поле фильтра захвата в окне Wireshark. Поле сверху. Найти его очень просто, внутри него есть текст: «Применить фильтр отображения». Нажмите Enter после ввода текста предложения фильтра.

Поместите команды в терминал, чтобы активировать активность DHCP:

sudo dhclient -v -r
судо дхклиент -v

Смотрите пакеты в основном поле Wireshark. Вы увидите IP-адреса удаленного устройства, отправляющего DHCP-предложения.

Распакуйте строку «Dynamic Host Configuration Protocol» и проверьте детали.

Greg Nelson avatar
флаг us
Спасибо. Это сработало отлично. Поскольку мне просто нужно было отследить IP-адрес сервера, чей DHCPOFFER был принят, мне не нужно было проходить процесс wireshark (или tcpdump) для отслеживания пакетов, но я уверен, что это будет кому-то полезно.
netbat avatar
флаг br
Всегда пожалуйста. Да, ты прав. Это излишество, если нужен только базовый тест. Но tcpdump или Wireshark полезны, если, например. два DHCP-сервера отправляют предложения, и необходимо получить более подробную информацию (MAC-адреса, время отклика, различия в предложениях и т. д.). Поддельный или забытый нежелательный DHCP-сервер может уничтожить почти все адреса клиентов и их связь в широковещательном домене.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.