Skip to content

Instantly share code, notes, and snippets.

@kovenko
Last active June 11, 2020 12:53
Show Gist options
  • Save kovenko/fbfeba5df35a5b422034c5c90b81717a to your computer and use it in GitHub Desktop.
Save kovenko/fbfeba5df35a5b422034c5c90b81717a to your computer and use it in GitHub Desktop.
DHCP failower
# https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcpdconf
# https://habr.com/ru/post/323984/
# Это определяет, является ли сервер первичным или вторичным. Этот параметр должен быть указан.
[primary | secondary];
# Объявляет IP-адрес или DNS-имя, по которому сервер должен прослушивать соединения
# от своего однорангового узла аварийного переключения, а также значение, используемое для идентификатора сервера
# протокола Failover DHCP.
address address;
# Объявляет порт TCP, на котором сервер должен прослушивать соединения от своего отказоустойчивого узла.
# Этот оператор может быть опущен, в этом случае по умолчанию будет использоваться назначенный IANA номер порта 647.
port port-number;
# Объявляет IP-адрес или DNS-имя, к которому сервер должен подключиться, чтобы достичь узла аварийного переключения
# для сообщений аварийного переключения.
peer address address;
# Объявляет TCP-порт, к которому сервер должен подключиться для подключения к узлу аварийного переключения
# для сообщений аварийного переключения. Этот оператор может быть опущен, и в этом случае по умолчанию будет
# использоваться назначенный IANA номер порта 647.
peer port port-number;
# Сообщает DHCP-серверу, сколько секунд может пройти, не получив сообщение от его отказоустойчивого узла,
# прежде чем он предположит, что соединение не установлено. Это число должно быть достаточно маленьким,
# чтобы временный сбой в сети, который разрывает соединение, не приводил к тому, что серверы долго не могли общаться,
# но достаточно велик, чтобы сервер не устанавливал и не разрывал соединения. Этот параметр должен быть указан.
max-response-delay seconds;
# Cообщает удаленному DHCP-серверу, сколько сообщений BNDUPD он может отправить до того, как получит BNDACK из локальной системы.
# У нас нет достаточного опыта работы, чтобы сказать, что для этого стоит, но 10, похоже, работает.
# Этот параметр должен быть указан.
max-unacked-updates count;
# Определяет максимальное время выполнения клиента. Он должен быть указан на первичном и не может быть указан на вторичном.
# Это период времени, в течение которого аренда может быть возобновлена одним из узлов отказоустойчивости без установления
# связи с другим. Чем дольше вы это установите, тем дольше работающему серверу потребуется восстановить IP-адреса после
# перехода в состояние PARTNER-DOWN. Чем короче вы его установите, тем больше будет нагрузка на ваши серверы, когда они
# не будут общаться. Значение около 3600, вероятно, разумно, но, опять же, имейте в виду, что у нас нет реального опыта работы
# с этим.
mclt seconds;
# Определяет разделение между первичным и вторичным для балансировки нагрузки. Всякий раз, когда клиент делает запрос DHCP,
# сервер DHCP запускает хеш для идентификации клиента, в результате чего получается значение от 0 до 255.
# Это используется в качестве индекса в 256-битном поле. Если бит с этим индексом установлен, отвечает основной.
# Если бит с этим индексом не установлен, вторичное устройство. Значение разделения определяет, сколько ведущих битов
# установлено в один. Таким образом, на практике более высокие значения разделения приведут к тому, что первичный сервер
# будет обслуживать больше клиентов, чем вторичный. Допустимые значения - от 0 до 256 включительно, из которых наиболее
# разумным является 128. Обратите внимание, что значение 0 делает вторичное устройство ответственным за всех клиентов,
# а значение 256 - основным, отвечающим за всех клиентов.
split bits;
# Позволяет настроить отсечение, после которого балансировка нагрузки отключается. Отсечка основана на количестве секунд,
# прошедших с того момента, как клиент отправил свое первое сообщение DHCPDISCOVER или DHCPREQUEST, и работает только с
# клиентами, которые правильно реализуют поле secs. Рекомендуется установить для этого значения что-то вроде 3 или 5.
# Эффект этого состоит в том, что если один из одноранговых узлов аварийного переключения переходит в состояние, когда он
# отвечает на сообщения аварийного переключения, но не отвечает на некоторые запросы клиентов, другой одноранговый
# отказоустойчивый узел принимает его клиент загружается автоматически при повторной попытке клиентов.
# Можно отключить балансировку нагрузки между узлами, установив для этого значения значение 0 на обоих узлах. Имейте в виду,
# что это означает, что оба узла будут отвечать на все DHCPDISCOVER или DHCPREQUEST.
load balance max seconds seconds;
# указывает серверу инициировать задержку по времени при входе в состояние прерывания связи (любая ситуация отсутствия
# контакта с удаленным отказоустойчивым узлом). По завершении таймера сервер автоматически перейдет в состояние отказа
# партнера. Это позволяет серверу распределять аренду из пула партнера после истечения таймера STOS + MCLT, что может быть
# опасно, если партнер фактически работает в это время (два сервера будут давать конфликтующие привязки).
# Подумайте очень внимательно, прежде чем включать эту функцию. Состояния разрыва соединения и прерывания связи
# преднамеренно разделены, поскольку существуют ситуации, когда отказоустойчивый сервер может не установить связь со своим
# одноранговым узлом, но при этом имеет возможность принимать и отвечать на запросы от клиентов DHCP.
# Нулевое значение отключает функцию автоматического отключения партнера (также по умолчанию), а любое положительное значение
# указывает время ожидания в секундах перед автоматическим вводом partner-down.
auto-partner-down seconds;
# Игнорирование спамеров
class "badguys" {
match hardware;
ignore booting;
}
subclass "badguys" 1:00:01:02:03:04:05;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment