MAC-адрес клиента также можно определить с помощью сервера DHCP. Для этого необходимо, чтобы средства поддержки стека протоколов на клиентском компьютере работали исправно. Сконфигурируйте клиент для работы с сервером DHCP так, чтобы после загрузки клиент получил от сервера динамический IP-адрес. Затем ознакомьтесь с содержимым файла аренды (обычно это файл /var/lib/dhcp/dhcpd.leases
lease 192.168.1.50 {
starts 4 2002/07/19 21:37:20;
ends 4 2002/07/19 23:17:20;
binding state active;
next binding state free;
hardware ethernet 00:50:56:82:01:03;
}
В приведенной записи указаны IP-адрес, выделенный клиенту, время начала и завершения аренды, а также прочая информация, в том числе MAC-адрес (hardware ethernet 00:50:56:82:01:03
MAC-адреса могут также содержаться в файле протокола Linux (обычно это файл /var/log/messages
dhcpd, можно найти с помощью следующей команды:# grep dhcpd /var/log/messages | tail -n 1
Jul 19 18:27:38 speaker dhcpd: DHCPACK on 192.168.1.50 to
00:50:56:82:01:03 via eth0
Эту команду можно выполнить сразу после того, как сервер DHCP выделит IP-адрес клиенту. Если вы не знаете IP-адреса, присвоенного клиенту, вы рискуете ошибочно определить MAC-адрес. Так может случиться, если после запроса интересующего вас компьютера какой-то клиентов обратится к серверу DHCP для того, чтобы продлить аренду. Зная IP-адрес, проверьте запись в файле протокола. Если адрес не совпадает, просмотрите другие записи, задавая значения опции -n
tail, отличные от 1.И, наконец, независимо от того, использует ли клиент статический IP-адрес или получил адрес от сервера DHCP, вы можете определить MAC-адрес с помощью команды arp
arp на любом Linux-компьютере вашей сети, указав в качестве параметра IP-адрес клиента.# arp 192.168.1.50
Address HWtype HWaddress Flags Mask Iface
192.168.1.50 ether 00:50:56:82:01:03 C eth0
Не исключено, что перед вызовом arp
ping. Соответствующая команда выглядит следующим образом:ping -с 192.168.1.50
Описание узлов с помощью MAC-адресов
Для того чтобы программа dhcpd
host. Эта декларация может содержаться в декларации subnet либо следовать за ней. Пример декларации host приведен ниже.host teela {
hardware ethernet 00:05:02:a7:76:da;
fixed-address 192.168.1.2;
}
Декларация начинается с ключевого слова host
use-host-decl-names.) В фигурных скобках указаны два параметра. Первый из них (hardware) задает тип сетевого интерфейса и MAC-адрес, к которому должна применяться эта декларация. В данном примере содержится запись для Ethernet-карты, а при работе в сети иного типа надо задать другой тип сетевого устройства; например, для сети Token Ring следует указать ключевое слово token-ring. Второй параметр (fixed-address) определяет IP-адрес, выделяемый клиенту. Следите за тем, чтобы этот адрес принадлежал сети, которую обслуживает сервер DHCP, и лежал за пределами диапазона, определенного с помощью параметра range, заданного в декларации subnet. В данном примере указан адрес 192.168.1.2, который не относится к диапазону 192.168.1.50-192.168.1.150, указанному в листинге 5.1, но принадлежит сети 192.168.1.0/24, указанной там же.