Dhcpdump - утилита для диагностики и отладки работы DHCP

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:8ea4e4d10ddab2fc0a1da4d7dda34528' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">При наличии в сети <strong>DHCP</strong>-сервера, иногда возникает необходимость детального анализа содержимого <strong>DHCP</strong> запросов/ответов. В этом случае отличным помощником выступает утилита <strong>dhcpdump</strong>. Указав в качестве параметра сетевой интерфейс, получаем расшифровку всех зафиксированных на нем <strong>DHCP</strong>-пакетов.</p>\n<p class=\"rtejustify\">Выполним установку утилиты из системы портов:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/ports/net/dhcpdump &amp;&amp; make install clean &amp;&amp; rehash</strong></td>\n</tr>\n</tbody>\n</table>\n<p>Сложностей с использованием утилиты не возникает. Ключей запуска не так и много:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>dhcpdump</strong><br />\n Usage: $0 &lt;-i interface&gt; [-h macaddress]</p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">По сути, из обязательных ключей запуска - необходимо указать интерфейс, на котором необходимо перехватывать <strong>DHCP</strong> траффик. Также, можно использовать ключ <strong>-h</strong> и регулярные выражения для прослушивания обмена только с определенным хостом/хостами.</p>\n<p class=\"rtejustify\">Пример запуска утилиты:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td># <strong>dhcpdump -i <span style=\"color:#FF0000\">re0</span></strong></td>\n</tr>\n</tbody>\n</table>\n<p>где <strong>re0</strong> - интерфейс, на котором ожидаем DHCP-запросы.</p>\n<p>Пример <strong>DHCP</strong>-запроса от клиента:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\n TIME: 2016-03-15 03:06:19.106\n IP: 10.70.1.26 (74:d0:2b:49:8a:b7) &gt; 255.255.255.255 (ff:ff:ff:ff:ff:ff)\n OP: 1 (BOOTPREQUEST)\n HTYPE: 1 (Ethernet)\n HLEN: 6\n HOPS: 0\n XID: a45b529a\n SECS: 0\n FLAGS: 7f80\nCIADDR: 10.70.1.26\nYIADDR: 0.0.0.0\nSIADDR: 0.0.0.0\nGIADDR: 0.0.0.0\nCHADDR: 74:d0:2b:49:8a:b7:00:00:00:00:00:00:00:00:00:00\n SNAME: .\n FNAME: .\nOPTION: 53 ( 1) DHCP message type 8 (DHCPINFORM)\nOPTION: 61 ( 7) Client-identifier 01:74:d0:2b:49:8a:b7\nOPTION: 12 ( 4) Host name ASUS\nOPTION: 60 ( 8) Vendor class identifier MSFT 5.0\nOPTION: 55 ( 13) Parameter Request List 1 (Subnet mask)\n 15 (Domainname)\n 3 (Routers)\n 6 (DNS server)\n 44 (NetBIOS name server)\n 46 (NetBIOS node type)\n 47 (NetBIOS scope)\n 31 (Perform router discovery)\n 33 (Static route)\n 121 (Classless Static Route)\n 249 (MSFT - Classless route)\n 43 (Vendor specific info)\n 252 (MSFT - WinSock Proxy Auto Detect)</pre></td>\n</tr>\n</tbody>\n</table>\n<p>Пример <strong>DHCP</strong>-ответа сервера:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\n TIME: 2016-03-15 03:06:19.106\n IP: 10.70.1.1 (00:e0:ed:26:69:d9) &gt; 10.70.1.26 (74:d0:2b:49:8a:b7)\n OP: 2 (BOOTPREPLY)\n HTYPE: 1 (Ethernet)\n HLEN: 6\n HOPS: 0\n XID: a45b529a\n SECS: 0\n FLAGS: 7f80\nCIADDR: 10.70.1.26\nYIADDR: 0.0.0.0\nSIADDR: 0.0.0.0\nGIADDR: 0.0.0.0\nCHADDR: 74:d0:2b:49:8a:b7:00:00:00:00:00:00:00:00:00:00\n SNAME: .\n FNAME: .\nOPTION: 53 ( 1) DHCP message type 5 (DHCPACK)\nOPTION: 54 ( 4) Server identifier 10.70.1.1\nOPTION: 1 ( 4) Subnet mask 255.255.255.0\nOPTION: 15 ( 22) Domainname example.com\nOPTION: 3 ( 4) Routers 10.70.1.1\nOPTION: 6 ( 8) DNS server 10.10.10.10,8.8.8.8</pre></td>\n</tr>\n</tbody>\n</table>\n<p>Если в сети много запросов, можно воспользоваться ключем <strong>-h</strong> и указать в качестве значения <strong>МАС</strong>-адрес устройства, от которого ожидаем запрос:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td># <strong>dhcpdump -i <span style=\"color:#FF0000\">re0</span> -h <span style=\"color:#FF0000\">6c:70:9f:d2:e2:2a</span></strong></td>\n</tr>\n</tbody>\n</table>\n<p>В результате перехватываем следующие данные:</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\n TIME: 2016-03-15 16:44:45.293\n IP: 10.34.21.5 (<span style=\"color:#FF0000\">6c:70:9f:d2:e2:2a</span>) &gt; 10.34.21.1 (00:1b:21:ba:ea:b4)\n OP: 1 (BOOTPREQUEST)\n HTYPE: 1 (Ethernet)\n HLEN: 6\n HOPS: 0\n XID: 68d02651\n SECS: 0\n FLAGS: 0\nCIADDR: 10.34.21.5\nYIADDR: 0.0.0.0\nSIADDR: 0.0.0.0\nGIADDR: 0.0.0.0\nCHADDR: 6c:70:9f:d2:e2:2a:00:00:00:00:00:00:00:00:00:00\n SNAME: .\n FNAME: .\nOPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)\nOPTION: 51 ( 4) IP address leasetime 86400 (24h)\nOPTION: 12 ( 15) Host name airport-extreme\nOPTION: 55 ( 7) Parameter Request List 1 (Subnet mask)\n 2 (Time offset)\n 3 (Routers)\n 15 (Domainname)\n 6 (DNS server)\n 12 (Host name)\n 44 (NetBIOS name server)\n\nOPTION: 57 ( 2) Maximum DHCP message size 1500\nOPTION: 61 ( 7) Client-identifier 01:6c:70:9f:d2:e2:2a\nOPTION: 82 ( 18) Relay Agent Information\n Circuit-ID 00:04:0d:5d:01:0a Circuit-ID 02:08:00:06:00:12:cf:82:7d:00\n---------------------------------------------------------------------------\n\n TIME: 2016-03-15 16:44:45.293\n IP: 10.227.180.224 (00:1b:21:ba:ea:b4) &gt; 10.34.21.5 (<span style=\"color:#FF0000\">6c:70:9f:d2:e2:2a</span>)\n OP: 2 (BOOTPREPLY)\n HTYPE: 1 (Ethernet)\n HLEN: 6\n HOPS: 0\n XID: 68d02651\n SECS: 0\n FLAGS: 0\nCIADDR: 10.34.21.5\nYIADDR: 10.34.21.5\nSIADDR: 0.0.0.0\nGIADDR: 0.0.0.0\nCHADDR: 6c:70:9f:d2:e2:2a:00:00:00:00:00:00:00:00:00:00\n SNAME: .\n FNAME: .\nOPTION: 53 ( 1) DHCP message type 5 (DHCPACK)\nOPTION: 54 ( 4) Server identifier 10.34.21.1\nOPTION: 51 ( 4) IP address leasetime 1800 (30m)\nOPTION: 1 ( 4) Subnet mask 255.255.255.0\nOPTION: 3 ( 4) Routers 10.34.21.1\nOPTION: 15 ( 12) Domainname example.com\nOPTION: 6 ( 8) DNS server 10.227.180.2,10.227.180.3\nOPTION: 82 ( 18) Relay Agent Information\n Circuit-ID 00:04:0d:5d:01:0a Circuit-ID 02:08:00:06:00:12:cf:82:7d:00\n---------------------------------------------------------------------------</pre></td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n', created = 1767333068, expire = 1767419468, headers = '', serialized = 0 WHERE cid = '2:8ea4e4d10ddab2fc0a1da4d7dda34528' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767333068, expire = 1767419468, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767333068, expire = 1767419468, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

При наличии в сети DHCP-сервера, иногда возникает необходимость детального анализа содержимого DHCP запросов/ответов. В этом случае отличным помощником выступает утилита dhcpdump. Указав в качестве параметра сетевой интерфейс, получаем расшифровку всех зафиксированных на нем DHCP-пакетов.

Выполним установку утилиты из системы портов:

# cd /usr/ports/net/dhcpdump && make install clean && rehash

Сложностей с использованием утилиты не возникает. Ключей запуска не так и много:

# dhcpdump
Usage: $0 <-i interface> [-h macaddress]

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

Пример запуска утилиты:

# dhcpdump -i re0

где re0 - интерфейс, на котором ожидаем DHCP-запросы.

Пример DHCP-запроса от клиента:

  TIME: 2016-03-15 03:06:19.106
    IP: 10.70.1.26 (74:d0:2b:49:8a:b7) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: a45b529a
  SECS: 0
 FLAGS: 7f80
CIADDR: 10.70.1.26
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 74:d0:2b:49:8a:b7:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         8 (DHCPINFORM)
OPTION:  61 (  7) Client-identifier         01:74:d0:2b:49:8a:b7
OPTION:  12 (  4) Host name                 ASUS
OPTION:  60 (  8) Vendor class identifier   MSFT 5.0
OPTION:  55 ( 13) Parameter Request List      1 (Subnet mask)
                                             15 (Domainname)
                                              3 (Routers)
                                              6 (DNS server)
                                             44 (NetBIOS name server)
                                             46 (NetBIOS node type)
                                             47 (NetBIOS scope)
                                             31 (Perform router discovery)
                                             33 (Static route)
                                            121 (Classless Static Route)
                                            249 (MSFT - Classless route)
                                             43 (Vendor specific info)
                                            252 (MSFT - WinSock Proxy Auto Detect)

Пример DHCP-ответа сервера:

  TIME: 2016-03-15 03:06:19.106
    IP: 10.70.1.1 (00:e0:ed:26:69:d9) > 10.70.1.26 (74:d0:2b:49:8a:b7)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: a45b529a
  SECS: 0
 FLAGS: 7f80
CIADDR: 10.70.1.26
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 74:d0:2b:49:8a:b7:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         10.70.1.1
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:  15 ( 22) Domainname                example.com
OPTION:   3 (  4) Routers                   10.70.1.1
OPTION:   6 (  8) DNS server                10.10.10.10,8.8.8.8

Если в сети много запросов, можно воспользоваться ключем -h и указать в качестве значения МАС-адрес устройства, от которого ожидаем запрос:

# dhcpdump -i re0 -h 6c:70:9f:d2:e2:2a

В результате перехватываем следующие данные:

  TIME: 2016-03-15 16:44:45.293
    IP: 10.34.21.5 (6c:70:9f:d2:e2:2a) > 10.34.21.1 (00:1b:21:ba:ea:b4)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 68d02651
  SECS: 0
 FLAGS: 0
CIADDR: 10.34.21.5
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 6c:70:9f:d2:e2:2a:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST)
OPTION:  51 (  4) IP address leasetime      86400 (24h)
OPTION:  12 ( 15) Host name                 airport-extreme
OPTION:  55 (  7) Parameter Request List      1 (Subnet mask)
                                              2 (Time offset)
                                              3 (Routers)
                                             15 (Domainname)
                                              6 (DNS server)
                                             12 (Host name)
                                             44 (NetBIOS name server)

OPTION:  57 (  2) Maximum DHCP message size 1500
OPTION:  61 (  7) Client-identifier         01:6c:70:9f:d2:e2:2a
OPTION:  82 ( 18) Relay Agent Information
                  Circuit-ID    00:04:0d:5d:01:0a                  Circuit-ID    02:08:00:06:00:12:cf:82:7d:00
---------------------------------------------------------------------------

  TIME: 2016-03-15 16:44:45.293
    IP: 10.227.180.224 (00:1b:21:ba:ea:b4) > 10.34.21.5 (6c:70:9f:d2:e2:2a)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: 68d02651
  SECS: 0
 FLAGS: 0
CIADDR: 10.34.21.5
YIADDR: 10.34.21.5
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 6c:70:9f:d2:e2:2a:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         10.34.21.1
OPTION:  51 (  4) IP address leasetime      1800 (30m)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   10.34.21.1
OPTION:  15 ( 12) Domainname                example.com
OPTION:   6 (  8) DNS server                10.227.180.2,10.227.180.3
OPTION:  82 ( 18) Relay Agent Information
                  Circuit-ID    00:04:0d:5d:01:0a                  Circuit-ID    02:08:00:06:00:12:cf:82:7d:00
---------------------------------------------------------------------------

 

Ваша оценка: Нет Средняя: 3 (2 голоса)

Вставай, Україно!

Литература

Выражение Админа "завести нового пользователя" не означает смерть последнего на российских болотах.