Как посмотреть, что делает DHCP-клиент?


14
  • Клиент dhcp в Linux записывает какие-либо логи?
  • Если нет, можно ли включить логи и как?
  • Если он пишет логи, где их можно найти?
  • Как выглядит типичный журнал клиента dhcp при получении IP-адресов и серверов имен с DHCP-сервера?
  • Где я могу найти исходный код клиента DHCP?

В случае, если есть существенные различия между Linux: я заинтересован в Debian 8.1 (минимальная установка по умолчанию amd64).


1
Вам нужно быть более конкретным, чем «клиент dhcp в Linux». Существует множество различных клиентов dhcp для Linux, и все они ведут журнал разными способами. Вероятно, есть версия по умолчанию для Debian 8.1, хотя я не могу вспомнить, что это такое.
qasdfdsaq

Консорциум интернет-систем DHCP-клиент 4.3.1 Copyright 2004-2014 Консорциум интернет-систем. Все права защищены. Для получения информации, пожалуйста, посетите isc.org/software/dhcp
Гюстав

Ответы:


7

DHCP-клиент ISC обычно вызывается dhclientв большинстве дистрибутивов Linux. От man dhclient:

Клиент обычно не выводит выходные данные во время своей последовательности запуска. Это может быть сделано для генерации подробных сообщений, отображающих события последовательности запуска, пока он не получит адрес, предоставив аргумент командной строки -v. В любом случае клиент регистрирует сообщения с использованием средства syslog (3).

Есть два возможных способа прочитать системный журнал. В большинстве систем, которые используют systemd, вы должны использовать journalctl, тогда как cat /var/log/syslogэто действительно для систем, которые все еще используют традиционную систему инициализации.

Поэтому, если ваша система использует средства ведения журнала systemd, вы можете использовать journalctl | grep -Ei 'dhcp'для получения журналов клиента DHCP. В противном случае введите cat /var/log/syslog | grep -Ei 'dhcp'.

Вот как обычно выглядит мой журнал DHCP-клиента:

Jul 20 14:17:39 trueclient1 NetworkManager[2622]: <info> (wlan1): canceled DHCP transaction, DHCP client pid 3325
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> Activation (wlan1) Beginning DHCPv4 transaction (timeout in 45 seconds)
Jul 20 14:17:42 trueclient1 dhclient: Internet Systems Consortium DHCP Client 4.2.2
Jul 20 14:17:42 trueclient1 dhclient: For info, please visit https://www.isc.org/software/dhcp/
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed nbi -> preinit
Jul 20 14:17:42 trueclient1 dhclient: DHCPREQUEST on wlan1 to 255.255.255.255 port 67
Jul 20 14:17:42 trueclient1 dhclient: DHCPACK from 10.8.8.1
Jul 20 14:17:42 trueclient1 NetworkManager[2622]: <info> (wlan1): DHCPv4 state changed preinit -> reboot

2
На Debian 8.1 journalctl работает, на сервере ubuntu-14.04.2 записи находятся в / var / log / syslog. Благодарю. Но: записей очень мало, например, регистрируется только IP-адрес, а DNS-серверов нет. Можно ли настроить более подробный вывод?
Гюстав

3

Хакерский (но эффективный) способ отладки dhclient на многих платформах Linux - включить трассировку bash в / sbin / dhclient-script .

dhclient запускает этот скрипт на большинстве вариантов ОС, которые я проверял (RedHat, Debian и т. д.).

Простое добавление -xк шебангу (первая строка) в этом скрипте должно включить трассировку каждой строки в консоли, например:

#!/bin/bash -x

Тогда вы можете запустить, например,

dhclient -r #release lease
dhclient #re-acquire lease

И вы должны увидеть много выходных данных, не только из dhclient-script, но и из всех включенных .dскриптов в / etc / dhcp *.

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

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

   env | logger -t dhclient-debugging

Затем проверьте ваш журнал после запуска dhclient (/ var / log / messages или / var / log / syslog)


-3

Пожалуйста, найдите ответ в строке.

  • Клиент dhcp в Linux записывает какие-либо логи?


    Да.

  • Если нет, можно ли включить логи и как?


 1. Edit dhcpd.conf and add this line
  log-facility local7;

 2. Edit syslog.conf and append 
  local7.* /var/log/dhcpd.log


  • Если он пишет логи, где их можно найти?

    /var/log/dhcpd.log


  • Как выглядит типичный журнал клиента dhcp при получении IP-адресов и серверов имен с DHCP-сервера?


galaxy dhcpd: DHCPDISCOVER от 00: 0d: 62: d7: a0: 12 через eth0
galaxy dhcpd: DHCPOFFER с 192.168.1.5 до 00: 0d: 62: d7: a0: 12 через eth0
galaxy dhcpd: DHCPREQUEST для 192.168.1.5 (192.168 .1.1) с 00: 0d: 62: d7: a0: 12 через eth0
galaxy dhcpd: DHCPACK с 192.168.1.5 до 00: 0d: 62: d7: a0: 12 через eth0


2
ОП говорит о клиенте DHCP . DHCPD - это демон DHCP-сервера.
Larssend

Кажется, в моей системе нет файла с именем dhcpd.conf. Есть файл /etc/dhcp/dhclient.conf. Нет файла syslog.conf, но есть файл /etc/rsyslog.conf. Я внес изменения в конфигурацию этих файлов, перезапустил rsyslog, выключил eth0, снова включил его. Но файл журнала не появляется. Я получаю некоторые сообщения DHCP на консоли. Даже после перезагрузки машины я не получаю сообщений журнала.
Гюстав
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.