Добрый день.
Несколько лет назад настраивал dhcp_relay с option 82 на свитчах 3526, 3028, 3200-28... таким образом:
Код:
sh dhcp_rel
Command: show dhcp_relay
DHCP/BOOTP Relay Status : Enabled
DHCP/BOOTP Hops Count Limit : 4
DHCP/BOOTP Relay Time Threshold : 0
DHCP Relay Agent Information Option 82 State : Enabled
DHCP Relay Agent Information Option 82 Check : Disabled
DHCP Relay Agent Information Option 82 Policy : Replace
DHCP Relay Agent Information Option 82 Remote ID : 00-26-5A-89-F1-C0
Interface Server 1 Server 2 Server 3 Server 4
------------ --------------- --------------- --------------- --------------
System 192.168.10.234 192.168.10.235 192.168.10.236
Код:
show dhcp_local_relay
DHCP/BOOTP Local Relay Status : Enabled
DHCP/BOOTP Local Relay VID LIST : -
Тут недавно поступила жалоба от абонента - его роутер не может получить адрес. В логах сервера вижу, что приходит запрос, сервер выдает адрес, а на роутере в логах куча:
Код:
Nov 16 04:23:31 udhcpc[1684]: Sending discover...
Nov 16 04:23:32 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:32 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:35 udhcpc[1684]: Sending discover...
Nov 16 04:23:35 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:35 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:38 udhcpc[1684]: Sending discover...
Nov 16 04:23:38 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:38 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:41 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:41 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:44 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:44 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:47 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:47 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:50 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:50 udhcpc[1684]: Received DHCP NAK
Nov 16 04:23:53 udhcpc[1684]: Sending select for 10.1.2.202...
Nov 16 04:23:53 udhcpc[1684]: Received DHCP NAK
Самое интересное, что адрес свободен!
Собрал тестовый стенд. Свитч 3200-28:
Код:
Boot PROM Version : Build 1.00.B004
Firmware Version : Build 1.33.B006
Hardware Version : A1
Залил все правила. Таким же роутером пытаюсь получить адрес - получаю без проблем. Вотнкулся в гигабитный порт (абонент тоже был в гигабитном порту). Получаю без проблем. Ну думаю все ОК. Абонент просто что-то не договаривает. Прошло буквально 5 минут. И адрес я уже получить не могу! В логах самого роутера вижу такие же сообщения "DHCP NAK". Смотрю на dhcp-серверах файлик с лизами - записи об адресе там нету (файлики чистятся раз в 5 минут). Сначала погрешил на роутер, но подключившись ноутбуком, ситуация повторилась.
Далее все тесты проводил уже на ноуте с WinXP, т.к. роутер как "узкое место" исключился.
Ну ноуте снифером начал слушать трафик. Ситуация такая: клиент посылает запрос на получение адреса. Свитч релеит запросы на все(!!!) три сервера, указанные в настройках. Первый сервер ему отвечает, что мол вот тебе адрес. Параллельно приходят ответы от оставшихся 2-х серверов, что "requested address not available". И вот на этом моменте клиент может получить адрес, а может и не получить. От чего это зависит я пока не понял.
Если я указываю в настройках dhcp_relay один сервер (любой), то все отлично.
Изначально, когда занимался настройкой dhcp_relay (около 3 лет назад), создавал тему, но найти ее сейчас не смог. Но в памяти отложилось, что мне объяснял сотрудник Dlink работу dhcp_relay следующим образом:
сначала свитч релеит dhcprequest на первый в списке сервер. Если он какое-то время недоступен, то на второй. И так далее. Сейчас же я вижу другую картину - запросы идут на все сервера.
Собственно и инетерсует, как все таки должен работать релей? Если все таки он так и работает, переправляя пакеты на все сервера, то как "вылечить" описанную проблему?
В сети есть свитчи, как я писал выше, 3526, 3028. Существует ли на них такая проблема - я точно не знаю, но подозреваю, что да.
Если нужна еще какая-то дополнительная информация, то готов предоставить!
Спасибо.