См. архив на Уране.
В этой теме изучается работа с протоколом DHCP (Dynamic Host Configuration Protocol, RFC 2131, 2132), предназначенным для автоматической настройки параметров стека TCP/IP рабочей станции в момент ее загрузки.
Эти данные передаются рабочей станции сервером DHCP после того, как станция во время своей загрузки выдаст широковещательный запрос параметров своей конфигурации, на который и откликается сервер. Данные конфигурации включают в себя IP-адрес рабочей станции, а также (опционально) адреса маршрутизатора (шлюза) и сервера DNS, имя домена и т.п.
Процесс взаимодействия сервера и клиента происходит в следующем порядке. Сервер получает запрос и откликается с предложением об аренде (lease), содержащим конфигурационные данные для хоста; ресурс, содержащийся в предложении, временно блокируется для предложения другим хостам до получения ответа от хоста или истечения тайм-аута. Хост может получить предложения от нескольких DHCP-серверов, работающих в его сети. Хост, на основании настроек своего DHCP-клиента, решает принять предложение определенного сервера (или принять первое поступившее предложение, если никаких настроек нет). Хост отвечает выбранному серверу сообщением "выбор". Сервер подтверждает выдачу аренды; после получения подтверждения хост конфигурирует себя в соответствии с полученными данными.
Один DHCP-сервер может работать в нескольких сетях. Для этого в каждой сети должен быть сконфигурирован DHCP-relay - специальный посредник, который будет ретранслировать сообщения между сервером и хостом, запросившим конфигурацию. Без посредника DHCP-сервер не услышит запросов, так как широковещательные IP-дейтаграммы не выходят за пределы IP-сети.
IP-адрес, присваиваемый рабочей станции, может браться сервером из пространства специально для этого выделенных адресов (берется первый свободный адрес). В этом случае у рабочей станции нет постоянного IP-адреса.
IP-адрес, присваиваемый конкретной рабочей станции, может быть и фиксированным, для этого надо знать MAC-адрес (Ethernet-адрес) рабочей станции и соответствующим образом настроить сервер.
В любом случае использование DHCP позволяет избежать конфигурирования стека TCP/IP на каждом хосте сети отдельно и проводить гибкую, централизованную административную политику.
В лабораторных работах используется DHCP сервер от Internet Software Consortium.
Сервер состоит из программы-демона dhcpd, ее конфигурационного файла /etc/dhcpd.conf и файла dhcpd.leases, в который сервер заносит информацию о выделенных адресах. Для работы с сервером необходимо создать конфигурационный файл, после чего запустить программу-демон.
В конфигурационном файле определяются пространства IP-адресов, назначаемых клиентам, дополнительная информация по конфигурации стека TCP/IP, передаваемая клиентам, а также описываются хосты, которым назначаются фиксированные IP-адреса (по MAC-адресу хоста).
В начале файла можно указать глобальные опции, передаваемые всем клиентам, например:
option domain-name "vvsu.ru"
Далее для каждой обслуживаемой сервером IP-сети создается отдельный раздел, где указываются
Если какая-либо из опций уже определена глобально, то локальная опция заменяет значение глобальной опции для данной сети.
Пример конфигурации для обслуживаемой сети:
subnet 194.84.124.0 netmask 255.255.255.0 {
range 194.84.124.100 194.84.124.127;
range 194.84.124.200 194.84.124.254;
default-lease-time 600 max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 194.84.124.255;
option routers 194.84.124.1;
option domain-name-servers 194.84.124.4, 193.232.88.17;
}
Для каждого из хостов, которым выдается фиксированный адрес, создается отдельный раздел с заголовком "host hostname", где hostname - имя хоста. Внутри раздела указываются MAC-адрес хоста (в случае Ethernet: hardware ethernet address) и IP-адрес, выдаваемый хосту (fixed-address IP-address). Также могут указываться опции такие же, как и для сети. Если опции не указаны, хосту будут переданы опции, определенные в разделе конфигурации сети, в которой находится хост, или глобальные опции, в порядке приоритета.
Пример раздела конфигурации хоста:
host ocean {
hardware ethernet 08:00:26:4c:54:23;
fixed-address 194.84.124.24;
option domain-name-servers 194.84.124.4;
}
Хосты можно объединять в группы, с указанием опций, общих для всех хостов данной группы, перед разделами с описанием хостов:
group {
option domain-name-servers 194.84.124.4;
host ocean {
...
}
host sea {
...
}
}
Запуск программы dhcpd может осуществляться в файле начальной загрузки типа /etc/rc/* (детали зависят от вида операционной системы, в Solaris это файл /etc/rc2.d/S72inetsvc). Некоторые параметры командной строки:
dhcpd [-p port] [-cf configfile] [if0 [...ifN]]
где port - номер UDP порта, если он отличается от стандартного (67); configfile - имя конфигурационного файла, если это не ./dhcpd.conf; if0 ... ifN - сетевые интерфейсы, обслуживаемые демоном (если у хоста несколько интерфейсов).
Windows NT имеет поставляемый с системой сервер DHCP. Для работы этого сервера необходимо:
1. В настройках сети (Настройки - Панель управления - Сеть), в разделе Services добавить Microsoft DHCP Server.
2. Запустить сервер через Control Panel - Services - DHCP Server кнопкой Start.
3. Сервер настраивается с помощью программы DHCP Manager, запускаемой из раздела Administrative Tools.
Для каждого из серверов (программа позволяет управлять несколькими серверами) существует один или несколько контекстов (scope), описывающих конфигурацию и настройки сервера для той или иной сферы действия. В простейшем случае имеется один сервер с одним контекстом. Серверы и их контексты показываются в левой части окна программы.
Если контекста нет, его следует создать через меню Scope-Create. Существующий контекст можно редактировать через меню Scope-Properties. В конфигурации контекста указывается диапазон IP-адресов, выделенный для динамического распределения адресов для клиентов, а также поддиапазоны, которые следует исключить (exclude) из этого диапазона. Параметр Lease Duration указывает максимальную продолжительность использования IP-адреса клиентом; значение Unlimited определяет неограниченное время использования.
Меню Scope-Reservations позволяет зафиксировать IP-адреса за определенными хостами (точнее, за определенными Ethernet-адресами). Ethernet-адрес указывается в поле Unique Identifier.
Передача клиентам дополнительной информации (адрес шлюза, адрес DNS-сервера и доменное имя и т.п.) конфигурируется через меню DHCP Options (Global - для всех контекстов, Scope - для данного контекста). Выберите нужные опции, активизируйте их с помощью кнопки Add и укажите значения требуемых параметров для каждой опции.
Опции для клиентов с фиксированными адресами устанавливаются через меню Scope - Active Leases, далее двойным щелчком вызвать свойства нужного клиента.
Для ввода контекста в действие используйте меню Scope-Activate (Deactivate - для отключения контекста).
DHCP клиент под Unix (от Internet Software Consortium) состоит из программы dhclient, конфигурационного файла /etc/dhclient.conf и файла dhclient.leases в который клиент заносит информацию о выданных ему адресах и настройках. Для запуска клиента во время загрузки системы используется специальный скрипт (сценарий оболочки), поставляемый с клиентом в каталоге scripts (для разных типов Unix свои скрипты). Он подготавливает сетевые интерфейсы для конфигурирования с помощью DHCP, потом активизирует DHCP клиента. Этот скрипт должен быть скопирован в /etc под именем dhclient-script.
Конфигурационный файл в большинстве случаев очень прост и часто он даже может быть пуст. Ниже приведен ряд полезных директив конфигурационного файла dhclient.conf. Директивы завершаются точкой с запятой.
timeout time;
- если через time секунд ответ от сервера не получен, хост пытается сконфигурироваться самостоятельно, используя информацию о предыдущих конфигурациях из файла dhclient.leases (если их срок годности не истек) или используя статически установленные конфигурации; каждая такая конфигурация-кандидат проверяется на работоспособность. Формат записи конфигураций - см. man dhclient.conf. В случае неудачи попытка соединения с сервером повторяется в соответствии с параметром retry; значение timeout по умолчанию - 60 с;
retry time;
- период повторных попыток соединения с сервером в случае неудачи; измеряется в секундах, по умолчанию - 300 с;
request option;
- запросить у сервера передачу опции option;
require option;
- в случае, если сервер не передал опцию option, отвергнуть конфигурацию, предложенную сервером;
send option declaration;
- передать серверу значение declaration опции option, например:
send requested-lease-time 7200;
- запросить выделение IP-адреса на 7200 секунд;
default option declaration;
- установить значение declaration для опции option, если сервер не передал эту опцию;
supersede option declaration;
- установить значение declaration для опции option, независимо от того, что передал сервер;
prepend option declaration;
- добавить значение для опции к значению, переданному сервером, поставив свое значение первым;
append option declaration;
- добавить значение для опции к значению, переданному сервером, поставив свое значение последним.
Директивы prepend и append должны использоваться только для опций, допускающих множественные значения, иначе результат получится непредсказуемым.
reject ip_address;
- не принимать предложения от
DHCP-сервера, который идентифицирует себя адресом ip_address.
interface "if_name" { директивы }
- если у компьютера несколько интерфейсов, директивы в разделе interface будут относиться к конфигурации интерфейса if_name. Интерфейсы, не имеющие соответствующих разделов в конфигурационном файле, будут конфигурироваться с учетом глобальных директив или по умолчанию.
DHCP-клиент под Windows активизируется через Настройки - Панель управления - Сеть - TCP/IP - Свойства - IP-адрес - Получить IP-адрес автоматически. Если на хосте не сконфигурированы параметры DNS и адрес шлюза, они будут получены от DHCP-сервера, иначе будут использоваться уже имеющиеся настройки.
В случае отсутствия DHCP-сервера в сети при включенном автоматическом получении IP-адреса хост присвоит себе адрес самостоятельно. В этом случае возможно отсутствие коннективности из-за некорректного адреса.
Сконфигурировать DHCP-серверы на Аресах 1 и 2, DHCP-клиенты на Аресах 3,4,5 в соответствии с нижеследующим.
Арес-1 и Арес-2 являются DHCP-серверами, выдающими адреса в сети 212.16.196.0/24 (default router - 212.16.196.1). Первый выдает адреса в диапазоне 10-20, второй 40-50. Арес-3 получает адрес от Ареса-1, Арес-4 получает адрес от Ареса-2. Арес-5 получает адрес от DHCP-сервера ВГУЭС.
Обеспечить прием предложений только от "своего" сервера. Обеспечить разумную конфигурацию всех необходимых параметров стека TCP/IP даже в том случае, когда сервер не предоставил необходимых данных.
Для Ареса-1 и Ареса-2 выдавать сначала динамические адреса, потом фиксированные (по Ethernet-адресу).
Добиться полной коннективности. Каждый студент должен участвовать как в конфигурировании сервера, так и клиента.