Site Tools


software:perl:dhcp_server

This is an old revision of the document!


DHCP на Perl

Возможности

  • поддержка любых опций, включая опцию 82, маршруты
  • возможность работы с любой базой или файлами
  • легкость модификации
  • масштабируемость: как многопоточность так и возможность работы одновременно на нескольких серверах
  • умеет отправлять копии пакетов на указанный IP адрес
  • умеет работать в качестве демона
  • несколько уровней вывода отладочной информации

Требования

  • DHCP Relay - скрипт работает только через релеи, без них он не работоспособен
  • perl с поддержкой многопоточности
  • набор пакетов к perl указанный в начале скрипта
  • дописать запросы к базе данных, местами можно и закомментировать (release, decline)

Опции командной строки

  • -b - <ip> IP адрес для приёма запросов, по умолчанию: 0.0.0.0 (bind addr)
  • -sp - <port> порт для приёма запросов, по умолчанию: 67 (bind port)
  • -cp - <port> порт для отправки ответов клиенту напрямую, по умолчанию: 68
  • -id - <ip> IP адрес - DHCP server ID, Обязательно установить!, Должен быть реальным IP адресом сервера.
  • -m - <ip> IP адрес куда отправлять копии всех принятых запросов
  • -t - <threads> количество потоков, рекомендуется: CPU cores * 2, по умолчанию: 4
  • -dbs - параметры подключения к базе данных: DriverName:database=database_name;host=hostname;port=port
  • -dbl - логин для подключения к базе данных
  • -dbp - пароль для подключения к базе данных
  • -P - <path> имя файла куда сохранять PID
  • -v - <level> отображать отладочную информацию: 1 - от кого, кому, время обработки, 2 - тоже что и 1 плюс декодинг содержимого пакетов, по умолчанию 0 - ничего не отображать.
  • -d - работать в режиме демона

Замечание

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

Пример запуска

dhcpd.pl -id 192.168.0.1 -m 192.168.0.2 -t 2 -v 1
  • 192.168.0.1 - адрес дхцп сервера (настроенный в релеях) к которому должны обращаться клиенты
  • 192.168.0.2 - адрес куда отсылаются копии всех пакетов, под windows можно использовать: DHCPTool - Утилита-снифер для декодирования DHCP пакетов
  • 2 - потока
  • 1 - выводить минимум отладочной информации о запросах: от кого получено, кому отправлено, сколько времени заняло

Замечание

Биндить лучше на 0.0.0.0, потому как если забиндить на конкретный IP то ответы будут уходить только с него, в случае нескольких адаптеров/алиасов остальные задействованны не будут. В таких случаях сервер будет получать, обрабатывать запрос но ответ уходить не будет.

software/perl/dhcp_server.1432129331.txt.gz · Last modified: 2015/05/20 13:42 by root