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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: des address_binding+dhcp_snooping и windows
СообщениеДобавлено: Вс янв 27, 2013 07:28 
Не в сети

Зарегистрирован: Чт ноя 01, 2012 05:57
Сообщений: 66
Имеем клиентов, которые получают сетевые настройки по dhcp. В dhcpd на каждый порт привязан пул из одного адреса (через 82-ю опцию, которую довешивает коммутатор на dhcp-пакеты). Если менять оборудование у клиента, то повторно настройки на порт не будут выданы dhcpd, потому что время аренды (lease) ещё не истекло.

Мир не без добрых людей и есть хак на isc dhcpd, после которого он начинает повторно выдавать активные lease-ы. Да, это ломает все принципы и правила dhcp протокола, но именно в нашем конкретном случае 1порт->1ip, такое поведение будет оправдано. Итак на стенде все замечательно работает.

enable dhcp_local_relay
config dhcp_local_relay option_82 ports 1-24 policy replace

config address_binding ip_mac ports 1-24 protocol all
config address_binding ip_mac ports 1-24 arp_inspection strict
config address_binding ip_mac ports 1-24 allow_zeroip enable
config address_binding ip_mac ports 1-24 ip_inspection enable
config address_binding ip_mac ports 1-24 forward_dhcppkt enable
config address_binding dhcp_snoop max_entry ports 1-24 limit 1
enable address_binding dhcp_snoop

Как только "внедрили в производство" столкнулись с проблемой повторных левых запросов dhcp со стороны клиента (ос windows). Левых - потому что идут с небольшой задержкой после нормального (с правильным мас-ом медного интерфейса) с маками беспроводных, bluetooth и хз каких других интерфейсов (естественно никаких мостов из этих интерфейсов не собрано и даже сами интерфейсы не активны). Решается явным оключением всех интерфейсов, кроме медного в windows, но это не есть _то_ решение, которое нужно :(

В итоге наш dhcpd повторно выдаёт те же настройки ip на эти левые маки и привязка на коммутаторе сбивается. В таблице dhcp snooping-а запись обновляется (не создаётся ещё одна новая), поэтому "config address_binding dhcp_snoop max_entry ports 1-24 limit 1" нам не помогает.

Если ли какое другое решение?

PS
Поскольку продление lease-ы идёт udp пакетами с ip адреса клиента на ip адрес сервера, то оно пройдет через acl правило address_binding-а и соответственно config address_binding ip_mac ports 1-24 forward_dhcppkt _disable_ нам не помеха. С другой стороны, при отсутствии привязки, disable не даст нам получить настройки ...

Можно ли добавить параметр, который будет ограничивать кол-во динамических записей в IMPB на порту отключением forward_dhcppkt?

/foo


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: des address_binding+dhcp_snooping и windows
СообщениеДобавлено: Пн янв 28, 2013 09:50 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Вт янв 18, 2011 13:29
Сообщений: 8999
О каких устройствах с какими версиями прошивок ведется речь?
При отключении устройства от порта запись impb должна становиться неактивной и активироваться только по request/ack или пересоздаваться при получении нового ip адреса.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: des address_binding+dhcp_snooping и windows
СообщениеДобавлено: Вт янв 29, 2013 05:21 
Не в сети

Зарегистрирован: Чт ноя 01, 2012 05:57
Сообщений: 66
AK> О каких устройствах с какими версиями прошивок ведется речь?
des-3200c1 4.33.B010

AK> При отключении устройства от порта запись impb должна становиться неактивной и активироваться только по request/ack или пересоздаваться при получении нового ip адреса.
Да.

У нас же запись всегда активна (т.к. нет падения порта), но странные dhcp-запросы от windows-а клиента с mac-адресами других интерфейсов сбивают привязку. Т.е.
1. клиент на правильный мак медного порта получил (по dhcp) настройки.
2. через N секунд от него прилетает ещё один dhcp-discover и наш сломанный dhcpd отдаёт ему эти же настройки.
в конце-концов у клиента все перестает работать.

Вот кусок из логов с "боевого" сервера.

1 Jan 18 00:05:49 foo dhcpd: DHCPREQUEST for x.x.x.x from e8:11:32:97:ff:12 via x.x.x.1
2 Jan 18 00:05:49 foo dhcpd: DHCPACK on x.x.x.x to e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
3 Jan 18 00:05:53 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
4 Jan 18 00:05:53 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
5 Jan 18 00:05:53 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
6 Jan 18 00:05:53 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1
7 Jan 18 00:08:59 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.circuit-id = 0:4:8:67:0:8
8 Jan 18 00:08:59 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.remote-id = 0:6:34:8:4:61:b2:d0
9 Jan 18 00:08:59 foo dhcpd: Lease conflict at x.x.x.x
10 Jan 18 00:08:59 foo dhcpd: DHCPDISCOVER from dc:a9:71:0a:bd:3e via x.x.x.1
11 Jan 18 00:09:00 foo dhcpd: DHCPOFFER on x.x.x.x to dc:a9:71:0a:bd:3e (Hostname Unsuitable for Printing) via x.x.x.1
12 Jan 18 00:09:39 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
13 Jan 18 00:09:39 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
14 Jan 18 00:09:39 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
15 Jan 18 00:09:39 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1
16 Jan 18 00:09:42 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
17 Jan 18 00:09:42 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
18 Jan 18 00:09:42 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
19 Jan 18 00:09:42 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1
20 Jan 18 00:09:47 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.circuit-id = 0:4:8:67:0:8
21 Jan 18 00:09:47 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.remote-id = 0:6:34:8:4:61:b2:d0
22 Jan 18 00:09:47 foo dhcpd: DHCPDISCOVER from dc:a9:71:0a:bd:3e (Hostname Unsuitable for Printing) via x.x.x.1
23 Jan 18 00:09:47 foo dhcpd: DHCPOFFER on x.x.x.x to dc:a9:71:0a:bd:3e (Hostname Unsuitable for Printing) via x.x.x.1
24 Jan 18 00:10:13 foo dhcpd: DHCPREQUEST for x.x.x.x from e8:11:32:97:ff:12 via x.x.x.1: lease x.x.x.x unavailable.
25 Jan 18 00:10:13 foo dhcpd: DHCPNAK on x.x.x.x to e8:11:32:97:ff:12 via x.x.x.1
26 Jan 18 00:10:14 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
27 Jan 18 00:10:14 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
28 Jan 18 00:10:14 foo dhcpd: Lease conflict at x.x.x.x
29 Jan 18 00:10:14 foo dhcpd: DHCPDISCOVER from e8:11:32:97:ff:12 via x.x.x.1
30 Jan 18 00:10:14 foo dhcpd: DHCPOFFER on x.x.x.x to e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
31 Jan 18 00:10:14 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
32 Jan 18 00:10:14 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
33 Jan 18 00:10:14 foo dhcpd: DHCPREQUEST for x.x.x.x (y.y.y.y) from e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
34 Jan 18 00:10:14 foo dhcpd: DHCPACK on x.x.x.x to e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
35 Jan 18 00:10:17 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
36 Jan 18 00:10:17 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
37 Jan 18 00:10:17 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
38 Jan 18 00:10:17 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1
39 Jan 18 00:10:25 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.circuit-id = 0:4:8:67:0:8
40 Jan 18 00:10:25 foo dhcpd: uid = 1:dc:a9:71:a:bd:3e, agent.remote-id = 0:6:34:8:4:61:b2:d0
41 Jan 18 00:10:25 foo dhcpd: Lease conflict at x.x.x.x
42 Jan 18 00:10:25 foo dhcpd: DHCPDISCOVER from dc:a9:71:0a:bd:3e via x.x.x.1
43 Jan 18 00:10:25 foo dhcpd: DHCPOFFER on x.x.x.x to dc:a9:71:0a:bd:3e (Hostname Unsuitable for Printing) via x.x.x.1
44 Jan 18 00:11:21 foo dhcpd: DHCPREQUEST for x.x.x.x from e8:11:32:97:ff:12 via x.x.x.1: lease x.x.x.x unavailable.
45 Jan 18 00:11:21 foo dhcpd: DHCPNAK on x.x.x.x to e8:11:32:97:ff:12 via x.x.x.1
46 Jan 18 00:11:21 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
47 Jan 18 00:11:21 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
48 Jan 18 00:11:21 foo dhcpd: Lease conflict at x.x.x.x
49 Jan 18 00:11:21 foo dhcpd: DHCPDISCOVER from e8:11:32:97:ff:12 via x.x.x.1
50 Jan 18 00:11:21 foo dhcpd: DHCPOFFER on x.x.x.x to e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
51 Jan 18 00:11:21 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
52 Jan 18 00:11:21 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
53 Jan 18 00:11:21 foo dhcpd: DHCPREQUEST for x.x.x.x (y.y.y.y) from e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
54 Jan 18 00:11:21 foo dhcpd: DHCPACK on x.x.x.x to e8:11:32:97:ff:12 (Hostname Unsuitable for Printing) via x.x.x.1
55 Jan 18 00:11:24 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
56 Jan 18 00:11:24 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
57 Jan 18 00:11:24 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
58 Jan 18 00:11:24 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1
59 Jan 18 00:13:55 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.circuit-id = 0:4:8:67:0:8
60 Jan 18 00:13:55 foo dhcpd: uid = 1:e8:11:32:97:ff:12, agent.remote-id = 0:6:34:8:4:61:b2:d0
61 Jan 18 00:13:55 foo dhcpd: DHCPINFORM from x.x.x.x via x.x.x.1
62 Jan 18 00:13:55 foo dhcpd: DHCPACK to x.x.x.x (e8:11:32:97:ff:12) via eth1

Я попытался на стенде воспроизвести. Вроде более или менее похоже ... вечером попробую аккуратно разобраться, что же на самом деле происходит.

/foo


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: des address_binding+dhcp_snooping и windows
СообщениеДобавлено: Вт янв 29, 2013 08:50 
Не в сети

Зарегистрирован: Пт сен 07, 2012 16:47
Сообщений: 31
Откуда: SPB
Если у вас коммутаторы являются relay-agent откуда появляются записи в логах dhcp формата "foo via eth1" ?
Судя по MAC клиент один и тот-же.

_________________
Решил проблему - выложи ответ !


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: des address_binding+dhcp_snooping и windows
СообщениеДобавлено: Пн фев 04, 2013 05:25 
Не в сети

Зарегистрирован: Чт ноя 01, 2012 05:57
Сообщений: 66
dusharu писал(а):
Если у вас коммутаторы являются relay-agent откуда появляются записи в логах dhcp формата "foo via eth1" ?
Судя по MAC клиент один и тот-же.
relay-agent-ом выступает маршрутизатор, на котором все клиентские вилаты имеют svi.

В общем-то dlink ведёт себя адекватно, крив windows (или его сотоварищи вирусы). В моём случае значительно смягчить (но не решить) эту проблему помог бы параметр, отключающий безусловный пропуск dhcp-discover пакетов при заполненном лимите на динамические привязки в ipmb, но это уже feture request. И если я правильно ошибаюсь, шансов тут у меня 0.


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

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


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

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


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

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