Чтение онлайн

ЖАНРЫ

Сетевые средства Linux

Смит Родерик В.

Шрифт:

Если клиент DHCP расположен на компьютере Macintosh и выполняется в системе MacOS Classic, вы найдете MAC-адрес в окне TCP/IP Control Panel. После щелчка на кнопке Info отобразится диалоговое окно TCP/IP Info, в котором выводится MAC-адрес. В MacOS X данная информация доступна в диалоговом окне Network, показанном на рис. 5.2.

Рис. 5.2. В системе MacOS X MAC-адрес отображается в диалоговом окне Network

Аналогичные средства, позволяющие определить MAC-адрес, имеются и в других операционных системах; для того чтобы использовать соответствующие команды, надо ознакомиться с описанием конкретной системы.

Определение MAC-адреса с сервера

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-адреса, вы должны знать, какой IP-адрес выделен клиенту. Это можно определить по времени аренды либо обратиться за этими сведениями на клиентскую машину.

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
анализировала MAC-адреса клиентов и предоставляла им фиксированные IP-адреса, надо сначала реализовать динамическое распределение адресов. Вы можете использовать в качестве шаблона код, представленный в листинге 5.1, а затем модифицировать его, например, изменить адреса сервера DNS и шлюзов либо добавить глобальные параметры. Затем необходимо добавить для каждого клиента, которому необходимо выделять фиксированный IP-адрес, декларацию
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, указанной там же.

В файле

dhcpd.conf
можно определять любое число клиентов, которым должны выделяться фиксированные IP-адреса. Можно также сформировать конфигурационный файл так, что для одних компьютеров сервер DHCP будет выделять фиксированные адреса, а для других — распределять адреса динамически. Если в файле
dhcpd.conf
содержится и выражение
range
, и одна или несколько деклараций
host
, то компьютеры, MAC-адреса которых явно не указаны в декларациях
host
, будут получать адреса из диапазона, заданного с помощью декларации
subnet
.

Параметры для отдельных клиентов

Как было сказано ранее, в декларации, состоящей из нескольких строк, могут указываться параметры; они применимы только к текущей декларации. Параметрами являются выражения

hardware
и
fixed-address
в декларации
host
. Для конкретных компьютеров можно задать и другие параметры, в частности, в декларации можно указывать глобальные опции, которые были рассмотрены выше в данной главе. Часто для отдельных компьютеров указывают параметр
option host-name "имя"
; в результате сервер DHCP будет передавать имя клиенту. В некоторых случаях этот параметр используется вместо
get-lease-hostnames
и
use-host-decl-names
. Кроме того, можно применять для предоставления имен лишь некоторым из клиентов.

Параметры могут воздействовать на группы клиентов. Один из способов состоит в том, чтобы объединить компьютеры, принадлежащие некоторой группе, в отдельной подсети. Очевидно, что использовать такой способ крайне неудобно. Гораздо лучше создать группу узлов, объединив декларации

host
в составе декларации
group
. Соответствующий фрагмент конфигурационного файла будет иметь приблизительно следующий вид:

group {

 get-lease-hostnames true;

 host teela {

hardware ethernet

fixed-address 192.168.1.2;

 }

 host nessus {

hardware ethernet 00:50:BF:19:7E:99;

fixed-address

 }

}

group {

 use-host-decl-names true;

 host hindmost {

hardware ethernet 00:50:56:81:01:03;

fixed-address 192.168.1.4;

Поделиться с друзьями: