Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Технологии Интернет. Лабораторный практикум

Тема 3. ДИНАМИЧЕСКОЕ ПРИСВОЕНИЕ IP-АДРЕСОВ


Литература и ссылки

Используемое ПО:

  • Unix (Solaris 2.x),
  • DHCP v 2.0 или 3.0 (распространяется свободно).

См. архив на Уране.



Протокол DHCP

В этой теме изучается работа с протоколом 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 сервер под Unix

В лабораторных работах используется DHCP сервер от Internet Software Consortium.

Сервер состоит из программы-демона dhcpd, ее конфигурационного файла /etc/dhcpd.conf и файла dhcpd.leases, в который сервер заносит информацию о выделенных адресах. Для работы с сервером необходимо создать конфигурационный файл, после чего запустить программу-демон.

В конфигурационном файле определяются пространства IP-адресов, назначаемых клиентам, дополнительная информация по конфигурации стека TCP/IP, передаваемая клиентам, а также описываются хосты, которым назначаются фиксированные IP-адреса (по MAC-адресу хоста).

В начале файла можно указать глобальные опции, передаваемые всем клиентам, например:

option domain-name "vvsu.ru"

Далее для каждой обслуживаемой сервером IP-сети создается отдельный раздел, где указываются

  • маска сети (netmask);
  • диапазон(ы) выдаваемых IP-адресов (range);
  • время по умолчанию, на которое выдается адрес, в секундах (default-lease-time);
  • максимальное время, на которое может быть выдан адрес, если хост запрашивает конкретное время, в секундах (max-lease-time);
  • дополнительные опции (option), передаваемые клиентам, например:
    • маска сети, передаваемая клиенту (subnet-mask);
    • широковещательный адрес (broadcast-address);
    • адреса шлюзов (для маршрута по умолчанию) (routers);
    • имя домена (domain-name);
    • адреса DNS-серверов (domain-name-servers).

Если какая-либо из опций уже определена глобально, то локальная опция заменяет значение глобальной опции для данной сети.

Пример конфигурации для обслуживаемой сети:

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 - сетевые интерфейсы, обслуживаемые демоном (если у хоста несколько интерфейсов).

DHCP сервер под Windows NT

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

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

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-адресу).

Добиться полной коннективности. Каждый студент должен участвовать как в конфигурировании сервера, так и клиента.




Следующая тема - Электронная почта

Курс "Технологии Интернет"
Кафедра КТС
Максим Мамаев