Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
languagegroovy
dhcp.option.leaseTime=600
dhcp.option.renewalTime=180
dhcp.option.rebindingTime=420
Примечание

По умолчанию сервер InetAccess не отвечает на RENEW-запросы (чтобы заставить DHCP-клиент перейти в стадию REBIND), но это работает далеко не всегда и далеко не во всех схемах. Чтобы включить обработку RENEW-запросов, в конфигурации корневого устройства (обычно это Access+Accounting) нужно указать (требуется перезапуск InetAccess):

Блок кода
languagegroovy
dhcp.renew=1

Существует множество реализаций DHCP-клиентов и не все они работают согласно RFC.

...

Блок кода
languagegroovy
dhcp.alwaysBroadcast=1

Возможные проблемы при получении/продлении адреса

На DISCOVER биллинг не отправляет OFFER

Запрос не доходит до биллинга или биллинг не находит сервис договора.

На OFFER от биллинга клиент не присылает REQUEST

Ответ от биллинга не доходит до клиента или клиенту не нравится содержимое пакета. В последнем случае нужно проверить опции serverIdentifier, gate, subnetMask, leaseTime.

На REQUEST от клиента биллинг отвечает NAK, в логах 

Блок кода
languagegroovy
Unknown packet (linked offer not found). Discard packet.

В случае, если это получение адреса (SELECTING state), то возможно, что клиент в REQUEST посылает xid, отличный от того, что он посылал в DISCOVER. Для поддержки таких роутеров в конфигурации корневого устройства (Access+Accounting) нужно указать параметр dhcp.xid=0 (см. выше).

В случае, если это продление адреса (RENEWING или REBINDING), это означает, что биллинг не нашел сессию на данном сервисе с таким MAC-адресом. Возможно, что connection.close.timeout меньше чем leaseTime.

Через время leaseTime у клиента происходит переполучение адреса c DISCOVER-пакетом (SELECTING state)

Скорее всего клиент не поддерживает (из-за ошибки в реализации DHCP-клиента) нормальный REBINDING, а сразу переходит в SELECTING, и в биллинге отключена поддержка RENEW-запросов (dhcp.renew=1) или serverIdentifier указан как 0.0.0.0 или RENEW-пакеты не доходят до биллинга. Нужно настроить поддержку RENEW-запросов - скорее всего DHCP-клиент через RENEWING state (никогда не переходя в REBINDING) будет работать нормально.