2016-01-13 5 views
0

В пакете dhcp поле означает клиентский аппаратный адрес, но это не то же самое, что и адрес mac, например «fa: 16: 3e: 6f: 1a: 9d».Как оценить BOOTP chaddr по адресу mac?

Если у меня есть MAC-адрес интерфейса «fa: 16: 3e: 6f: 1a: 9d», как оценить chaddr по MAC-адресу?

0     1     2     3 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |  op (1) | htype (1) | hlen (1) | hops (1) | 
    +---------------+---------------+---------------+---------------+ 
    |       xid (4)       | 
    +-------------------------------+-------------------------------+ 
    |   secs (2)   |   flags (2)   | 
    +-------------------------------+-------------------------------+ 
    |       ciaddr (4)       | 
    +---------------------------------------------------------------+ 
    |       yiaddr (4)       | 
    +---------------------------------------------------------------+ 
    |       siaddr (4)       | 
    +---------------------------------------------------------------+ 
    |       giaddr (4)       | 
    +---------------------------------------------------------------+ 
    |                | 
    |       chaddr (16)       | 
    |                | 
    |                | 
    +---------------------------------------------------------------+ 
    |                | 
    |       sname (64)       | 
    +---------------------------------------------------------------+ 
    |                | 
    |       file (128)      | 
    +---------------------------------------------------------------+ 
    |                | 
    |       options (variable)     | 
    +---------------------------------------------------------------+ 

ответ

1

См https://www.ietf.org/rfc/rfc2131.txt

4.4.1 Initialization and allocation of network address 
... 
The client MUST include its hardware address in the 'chaddr' 
field, if necessary for delivery of DHCP reply messages. 

Первые шесть байт содержат аппаратный адрес, остальные нули. Можно проверить содержимое пакетов bootp/dhcp, например, в Linux с помощью dhcpdump.

+0

спасибо. Он решает мой вопрос. – Wilence