Назад | Перейти на главную страницу

Вариант 82 и dhcpd. «Без бесплатной аренды» для второго компьютера

В сети есть DHCP-сервер (isc-dhcpd-server-3.0 на FreeBSD 7.2), который дает каждому пользователю по одному IP-адресу на порт коммутатора через опцию 82.

Проблема возникает, когда пользователь отключает один из своих компьютеров и подключает другой (например, ноутбук с другим MAC-адресом), тогда DHCPD помещает в журнал «... сеть net1: нет свободных аренд», потому что в файле аренды есть запись о том, что этот IP-адрес уже является принадлежит другому MAC. Этот второй компьютер будет иметь свой IP-адрес только по истечении срока аренды по умолчанию (то есть минимум 10 минут IIRC, а через 3 минуты он обычно обращается в службу поддержки) или после удаления файла dhcpd.leases и перезапуска dhcpd.

Есть ли способ вообще отключить аренду, потому что у нас есть строгая привязка между switch-port-ip?

В $ previous_employer я модифицировал OpenBSD dhcpd, чтобы понять опцию 82 и напрямую назначать адреса для этого. В соответствии с политикой, «если вы подключаетесь к соединению X, у вас есть адрес, назначенный X, и если вы используете переключатель для подключения нескольких компьютеров, это ваша собственная проблема», а затем просто прямое назначение на основе этого.

Если вы начнете серьезно возиться с назначением варианта 82, вероятно, стоит это сделать. Было не слишком сложно, но и не тривиально.

Один из вариантов - поощрить пользователя освободить аренду DHCP перед отключением. Я понимаю, что это обходной путь, а не решение, и может потребоваться некоторое обучение пользователей, прежде чем оно станет эффективным!

В Windows вы можете использовать команду «ipconfig / release» - хотя для этого требуются повышенные разрешения, поэтому такой инструмент, как CPAU, может оказаться полезным.

В FreeBSD или Linux "dhclient -r" (должен быть запущен ISC dhclient) является командой выпуска. Если вы используете dhcpcd, «dhcpcd -k» должен отправить пакет выпуска. Однако мне еще предстоит заставить это работать при запуске NetworkManager. Опять же, эти команды являются привилегированными операциями.

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

Найдено решение:

  1. Переключатели настройки для генерации ловушек snmp при неработающем порту.
  2. На сервере-ловушке поймайте их и позвоните omshell сценарий, удаляющий старую аренду.

Нетривиально, но и возможно.