faq обучение настройка
Текущее время: Вт июл 29, 2025 00:40

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Ср фев 22, 2012 09:40 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
Добрый день.
Несколько лет назад настраивал 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. Существует ли на них такая проблема - я точно не знаю, но подозреваю, что да.
Если нужна еще какая-то дополнительная информация, то готов предоставить!
Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 11:32 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Вт янв 18, 2011 13:29
Сообщений: 8999
Вот тема
viewtopic.php?f=2&t=139352
В дополнение скажу, что менять поведение коммутаторов не планируется


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 12:27 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
И как же быть тогда:(


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 12:34 
Не в сети

Зарегистрирован: Вс дек 21, 2008 18:53
Сообщений: 1308
nicol@s писал(а):
Ситуация такая: клиент посылает запрос на получение адреса. Свитч релеит запросы на все(!!!) три сервера, указанные в настройках. Первый сервер ему отвечает, что мол вот тебе адрес. Параллельно приходят ответы от оставшихся 2-х серверов, что "requested address not available". И вот на этом моменте клиент может получить адрес, а может и не получить. От чего это зависит я пока не понял.

А почему остальные два сервера отказывают? Это failover так работает или что?
У меня два сервера, конфигурация одинаковая, адрес выдают оба.

_________________
D-Link Switches: Tips & Tricks


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 12:50 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
Вот я сам пока не понял. Конфиги на серверах идентчины. Теоретически должно быть так: три сервера получают запрос, три выдают один и тот же адрес. Просто клиент примет один из ответов. Конфиг на серверах перечитывается не в одно и то же время, а с отличиями в минуту. Возможно из-за этого. Хотя я ждал перед получением адреса пока все конфиги перечитаются и лизы очистятся...
Сейчас попробую выставить одно время перезапуска. А вообще выглядит так, как будто где-то лиза хранится...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 13:12 
Не в сети

Зарегистрирован: Вс дек 21, 2008 18:53
Сообщений: 1308
Мы со временем отказались от очистки лиз. Точно не помню из-за чего. Вероятно из-за того, что клиент не может продлить аренду и по секунду теряет сеть перед получением адреса. Если изначально lease time большое то это практически незаметно, но тем не менее. В общем сейчас выдаем пул серых адресов.

_________________
D-Link Switches: Tips & Tricks


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 13:19 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
Мы очищаем лизы, чтобы абонент, у которого нет роутера, смог подключить другой девайс, предварительно не делая ipconfig /release. В противном случае ведь пока будет запись об айпишнике в лизах другой девайс не получит этот же адрес... Мы выдаем один адрес на абонента.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 13:36 
Не в сети

Зарегистрирован: Вс фев 08, 2004 03:18
Сообщений: 224
Откуда: Санкт-Петербург
nicol@s - боюсь Вы не совсем понимаете как работает DHCP
Фаза получения адреса (упрощенно)
1. клиент броадкастит запрос
2. все сервера отвечают какой выдадут ip или NAK
3. клиент выбирает сервер - и броадкастит запрос с пометкой к какому серверу
4. сервер отвечает что выдал ip - клиент его применяет

В качестве DHCP сервера посоветовал б - freeradius в режиме DHCP , mysql NDB база и перловые скрипты для обвязки.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 13:50 
Не в сети

Зарегистрирован: Вс дек 21, 2008 18:53
Сообщений: 1308
nicol@s верно написал. Во всяком случае для ISC DHCPd. Он действительно не выдаст адрес другому MAC если лиза активна.
Tsvetkov писал(а):
3. клиент выбирает сервер - и броадкастит запрос с пометкой к какому серверу

Кстати, забавно, что если другой сервер пришлет NACK, то клиент начнет процедуру получения адреса заново.

p.s. По поводу пункта №3. Так как работает relay, то все запросы попадают на все сервера.

_________________
D-Link Switches: Tips & Tricks


Последний раз редактировалось xcme Ср фев 22, 2012 14:05, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 13:52 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
To Tsvetkov:
Спасибо, за ответ. Думаем о таком варианте, как Вы предложили. Думаю, что со временем придем к этому.

xcme писал(а):
Кстати, забавно, что если другой сервер пришлет NACK, то клиент начнет процедуру получения адреса заново.

Так и есть! Два сервера выдают адрес, а третий присылает NAK...

Судя по всему у меня какой-то глюк с одним из серверов...
Подключаю один ноут. В логах серверов вижу, что каждый выдал адрес и сделал пометку в dhcpd.leases. Жду, пока очистятся лизы и подключаю второй ноут. Два сервера из 3-х выдают адрес, а 3-й отвечает, что нет доступных адресов...Что самое интересное, когда вовзращаю первый ноут - то все 3 сервера выдают адрес.
"Глючный" сервер на Центосе. Остальные на Фре. Как же так? Файлик с лизами пуст, с dhcp говорит, что нету свободного адреса...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 22, 2012 14:37 
Не в сети

Зарегистрирован: Пт сен 04, 2009 14:24
Сообщений: 80
Откуда: Минск
Всем спасибо. Проблему устранил. Сейчас вроде все работает. Проблема была в том, что по крону не мог рестартануться dhcpd на Центосе.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB