Модуль UTM5 DHCP

22    

Введение#

Модуль UTM5 DHCP выполняет функции DHCP-сервера. Он принимает DHCP запросы и обрабатывает их в соответствии с RFC 2132. При формировании ответа UTM5 DHCP использует следующие сущности: профиль оборудования, коммутатор, DHCP пулы и IP-группы.

UTM5 DHCP позволяет привязать статический IP-адрес или пул динамических адресов к MAC-адресу, к коммутатору или к определенному порту коммутатора.

 

UTM5 DHCP может назначать только IPv4-адреса.

UTM5 DHCP использует информацию из базы данных, а также взаимодействует с ядром UTM5 по протоколу Stream и может получать от него сообщения об изменении информации в базе данных и необходимости ее обновления.

UTM5 DHCP по умолчанию работает в режиме not authoritative. Режим работы можно изменить в конфигурационном файле (параметр is_authoritative).

 

Без дополнительной лицензии модуль UTM5 DHCP позволяет одновременно арендовать не более десяти IP-адресов.

Сущности, используемые UTM5 DHCP#

1.Профиль оборудования – это сущность, содержащая общие характеристики определенного типа коммутаторов:

Наименование

строка, содержащая имя коммутатора. Уникальность наименования не проверяется, но рекомендуется;

Емкость

количество портов коммутатора. Можно указать несколько значений через запятую;

Параметры DHCP Option 82

описание параметров DHCP Option 82, используемых коммутатором данного типа при формировании DHCP-запроса:

Remote ID

идентификатор DHCP-ретранслятора, через который был получен запрос;

Порт

Порт DHCP-ретранслятора, через который был получен запрос;

VLAN ID

идентификатор VLAN (если используется).

В характеристики этих параметров входят: тип параметра (строка/бинарный), расположение в DHCP Option 82, смещение и длина параметра. Эти характеристики используются при чтении параметров DHCP Option 82, входящих в DHCP-запрос

2.Коммутатор – это сущность, содержащая параметры конкретного коммутатора:

наименование

строка длиной до 255 символов, содержащая имя коммутатора. Целесообразно использовать некое информативное название, которое поможет идентифицировать коммутатор. Уникальность наименования не проверяется, но рекомендуется;

фактический адрес

комментарий, позволяющий однозначно идентифицировать физическое местоположение коммутатора;

тип

внутренний идентификатор профиля оборудования, содержащего параметры, присущие данному типу коммутаторов;

Remote ID

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

количество портов

количество портов коммутатора. Возможные значения этого параметра задаются в профиле оборудования;

параметры доступа к коммутатору

IP-адрес, логин и пароль коммутатора.

Перечисленные выше параметры можно использовать в правилах firewall (модуль UTM5 RFW), которые подразумевают необходимость отправки команд коммутатору. Например, если при образовании задолженности необходимо отключить порт коммутатора, чтобы заблокировать пользователю доступ в Интернет.

Данным параметрам в правилах firewall соответствуют следующие переменные:

USW_IP

USW_LOGIN

USW_PASS

USW_REMOTE_ID

USW_ID

USW_PORT

UVLAN

SWITCH_IP

SWITCH_PORT

Подробнее см. Переменные

В свойства коммутатора можно добавить значения дополнительных опций DHCP. Эти опции и их значения будут включены в ответ DHCP-сервера, если DHCP-клиент добавит их в список запрашиваемых опций.

3.DHCP пул - это сущность, содержащая параметры пула IP-адресов и значения стандартных опций DHCP, которые используются DHCP-сервером при формировании ответа при выдаче IP-адреса из этого пула. Среди них есть обязательные параметры:

Шлюз

Маска

DNS сервер 1

Время аренды

время аренды в секундах. Не рекомендуется задавать время аренды менее 3600 секунд. Значение по умолчанию: 86400 секунд (24 часа).

Необязательные параметры:

DNS сервер 2

NTP сервер

Домен

В свойства пула DHCP можно добавить значения дополнительных опций DHCP. Эти опции и их значения будут включены в ответ DHCP-сервера, если DHCP-клиент добавит их в список запрашиваемых опций.

Параметры Шлюз и Маска используются для установления принадлежности IP-адреса определенному пулу DHCP.

В свойства пула DHCP также входят диапазоны IP-адресов.

Кроме того, для пула DHCP задается действие при блокировании. Этот параметр определяет логику обработки DHCP-запроса, поступающего от заблокированного пользователя. Возможные действия: Использовать пул для заблокированных абонентов и Игнорировать запрос.

 

Если в DHCP-запросе указаны конкретные опции DHCP, в DHCP-ответ будут добавлены те из них, значения которых заданы и имеются в базе данных. Если в DHCP-запросе не указано никаких опций, в DHCP-ответ будут добавлены все опции, значения которых заданы и имеются в базе данных.

4.IP-группа - это описание сети и связанных с ней параметров, принадлежащих сервисной связке услуги передачи IP трафика. На основании настроек IP-групп происходит выдача IP-адреса и идентификация трафика для дальнейшей тарификации. В IP-группе задается соответствие между статическим IP-адресом или пулом динамических IP-адресов и следующими параметрами:

MAC-адрес

Внутренний ID коммутатора

Порт коммутатора

VLAN ID

Для задания соответствия необходимо указать статический IP-адрес или выбрать пул динамических адресов. Необходимо также указать значения описанных выше параметров, к которым следует привязать IP-адрес или пул динамических адресов.

 

Диапазоны статических IP-адресов не должны пересекаться с диапазонами динамических IP-адресов. То есть пул статических адресов не следует указывать в качестве пула динамических адресов ни в одной IP-группе. В противном случае модуль UTM5 DHCP может вести себя непредсказуемо.

Порт и VLAN ID - это параметры DHCP Option 82. UTM5 DHCP считывает их согласно Профилю оборудования, выбранному для данного коммутатора.

После создания сервисной связки услуги передачи IP трафика, добавления IP-группы, содержащей параметры, к которым можно привязать IP-адрес, в базе данных появится запись, хранящая соответствие между статическим IP-адресом или пулом DHCP и этими параметрами.

Обработка DHCP запроса#

При получении DHCP-запроса, UTM5 DHCP сравнивает параметры запроса с соответствующими параметрами IP-групп, имеющимися в базе данных. При этом приоритет параметров по убыванию следующий: MAC-адрес > ID коммутатора > Порт > VLAN ID. Записи в базе данных сортируются по данным параметрам в порядке убывания, и затем производится поиск. Каждая запись содержит параметры одной IP-группы.

UTM5 DHCP сервер просматривает записи, для которых заполнены поля:

MAC-адрес

MAC-адрес и ID коммутатора

MAC-адрес, ID коммутатора и Порт

MAC-адрес, ID коммутатора, Порт и VLAN ID

ID коммутатора

ID коммутатора и Порт

ID коммутатора, Порт и VLAN ID

1.В первую очередь сравнивается MAC-адрес (если он задан в базе данных).

2.Далее происходит чтение DHCP Option 82 (если она включена в поступивший DHCP-запрос) на основании параметров профиля оборудования, соответствующего коммутатору, указанному в проверяемой в данный момент записи в базе данных.

3.Если чтение параметров прошло успешно, то происходит сравнение параметров, указанных в DHCP-запросе. Сравниваются только те параметры, значения которых заданы в проверяемой на данный момент записи в базе данных.

4.Если какой-либо параметр не был задан в запросе, сравнение по нему не проводится.

5.Поиск является успешным при наличии совпадений и отсутствии несовпадений соответствующих значений в базе данных и в DHCP-запросе.

После выдачи IP-адреса и прочих настроек сети, UTM5 DHCP добавляет в базу данных запись о начале и сроке аренды данного IP-адреса (срок аренды задается в свойствах пула DHCP).

Конфигурационный файл#

По умолчанию UTM5 DHCP использует конфигурационный файл /netup/utm5/dhcpd5.cfg.

Формат конфигурационного файла:

параметр=значение

Набор символов до знака равенства является названием параметра, после – значением параметра. Пробелы учитываются. Пустые строки игнорируются. Строка, начинающаяся с символа #, считается комментарием.

Список возможных параметров:

Параметр

Возможные значения

Значение по умолчанию

Описание

database_type

mysql, postgres (обязательный параметр)

mysql

Тип базы данных UTM5.

database

(обязательный параметр)

UTM5

Имя базы данных UTM5.

database_host

Database server IP/hostname

localhost

Адрес сервера базы данных UTM5.

database_login

строка

root

Логин пользователя для доступа к базе данных UTM5.

database_password

строка

Не задано

Пароль пользователя для доступа к базе данных UTM5.

database_sock_path

Путь к файлу

/var/run/mysqld/mysqld.sock

Только для MySQL. Путь к сокет-файлу базы данных. Используется в том случае, если параметр database_host не задан или имеет значение “localhost”.

database_port

от 1 до 65534

3306

Только для MySQL. Порт сервера базы данных.

database_charset

кодировка

utf8

Только для MySQL. Кодировка соединения с базой данных.

core_host

IP-адрес (обязательный параметр)

127.0.0.1

Адрес сервера, на котором запущено ядро UTM5.

core_port

от 1 до 65534 (обязательный параметр)

12758

Порт, на котором ядро UTM5 слушает Stream (параметр stream_bind_port в конфигурационном файле ядра).

dhcp_login

строка

dhcp

Логин для доступа к ядру UTM5.

dhcp_password

строка

dhcp

Пароль для доступа к ядру UTM5.

dhcp_lease_expire_timeout

Время в секундах

1800

Минимальное время после истечения срока аренды, в течение которого клиент может продолжать использовать назначенный DHCP-сервером IP-адрес.

dhcp_lease_validation_period

Время в секундах

86400

Периодичность проверки оставшегося времени аренды IP-адреса.

interface

Пара <interface name>,<IP address>.
Добавьте несколько интерфейсов, каждый с новой строки: interface=<interface name>,<IP address> interface=<interface name>,<IP address> и т.д.

Не задано

Список интерфейсов, принимающих DHCP-запросы, и соответствующих им IP-адресов. Если в качестве имени интерфейса задано eth0, то возможны два случая:
1) IP-адрес указан (например, 10.0.0.1) - сервер принимает только unicast запросы на адрес 10.0.0.1:67
2) В качестве IP-адреса указан 0.0.0.0 - сервер принимает broadcast запросы, поступившие на eth0 (в Linux используются опции сокета SO_BROADCAST и SO_BINDTODEVICE)

is_authoritative

yes, on, enable

Отключено

Режим работы DHCP-сервера: authoritative или not authoritative.

load_log

yes, on, enable

Отключено

При запуске DHCP-сервера загружать из базы журнал аренды. Для большинства систем подходит значение по умолчанию.

log_level

Число
от 0 до 3

1

Определяет уровень сообщений, которые попадают в основной поток сообщений.

log_file_main

Путь к файлу

Стандартный поток ошибок

Файл основного потока сообщений.

log_file_debug

Путь к файлу

Стандартный поток ошибок

Файл потока сообщений с диагностической и отладочной информацией.

log_file_critical

Путь к файлу

Стандартный поток ошибок

Файл потока сообщений о критических ошибках.

max_logfile_count

Число

Не ограничено

Максимальное количество хранимых log-файлов.

max_logfile_size

Размер в байтах

10485760

Размер файла, при достижении которого производится ротация.

ping_retry_count

Число

1

Количество попыток отправки ICMP-запроса (см. use_ping).

rotate_logs

yes, on, enable

Ротация отключена

Включает ротацию log-файлов.

siaddr

IP-адрес

IP-адрес сервера ()

IP-адрес следующего сервера, участвующего в загрузке.

use_ping

yes, on, enable

Отключено

Если в процессе принятия решения о выдаче IP-адреса обнаруживается, что для данного адреса уже существует аренда, отправить ICMP-запрос на этот IP-адрес, чтобы выяснить фактический статус клиента.

use_old_lease

yes, on, enable

Отключено

При невозможности соотнести данные DHCP Option 82 в поступившем DHCP-запросе продлевать существующую аренду для данного MAC-адреса.