Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.




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

Библиотека сайта или "Мой Linux Documentation Project"

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

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

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




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

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




Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют