kerby2000 Posted June 8, 2011 Posted June 8, 2011 Здравствуйте, Мне надо выдавать IP адрес на основе информации от ДВУХ коммутаторов. Смотрите приложенный файл с топологией. Я использую два коммутатора HP ProCurve 2910 и они сконфигурированы так, чтобы при прохождении через каждый комутатор в DHCP запрос добавлялась опция 82. В документации к коммутатору достаточно странно написано: Note: In networks with multiple relay agents between a client and an Option 82 server, append can be used only if the server supports multiple Option 82 fields in a client request. http://cdn.procurve.com/training/Manuals/2910-MRG-Sept09-W_14_03.pdf Вы бы не могли объяснить, как надо настроить DHCP сервер, чтобы он их понимал? Я использую isc-dhcp-server v4.1.1-P1-15+squeeze2 Я пробовал так, но не работает :) #requests from port-12-2 of the switch class "port-12-2" { match if ( binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "12" and binary-to-ascii (10, 8, "", suffix( option *agent2*.circuit-id, 1)) = "2" ); } # port-12-2 address pool { range 192.168.0.204; allow members of "port-12-2"; } Как различить между первой и второй опцией 82 ? В приложении трейс из wireshark (для просмотра убрать .тхт) Зачем нужно 2 опт82? Клиент однозначно НЕ идентифицируется одним. Смотрите на картинку топологии. Port 1 (SW-A) + Port 11 (SW-C) => Client 1 Port 2 (SW-A) + Port 11 (SW-C) => Client 2 Port 1 (SW-B) + Port 12 (SW-C) => Client 3 Port 2 (SW-B) + Port 12 (SW-C) => Client 4 Заранее благодарю. С уважением, Сергей dhcp3.txt Вставить ник Quote
s.lobanov Posted June 8, 2011 Posted June 8, 2011 Чисто с академической точки зрения задача интересная. Но с практической точки зрения настройте dhcp trust где надо и не изобретайте такие костыли Вставить ник Quote
kerby2000 Posted June 8, 2011 Author Posted June 8, 2011 Чисто с академической точки зрения задача интересная. Но с практической точки зрения настройте dhcp trust где надо и не изобретайте такие костыли Почему с чисто академической? Вполне реальное приложение. Наша система состоит из большого количества одинаковых компонентов Меня интересует 0-Configuration всего кроме комутатора верхнего уровня и DHCP сервера. Kак по другому это можно реализовать? Вставить ник Quote
s.lobanov Posted June 8, 2011 Posted June 8, 2011 В этом случае идентификацию абонента можно производить по опции82 с аксессного коммутатора и номеру влана, т.е. на коммутаторах "верхнего уровня" запихивать каждый порт, куда включается аксессный коммутатор в свой влан. Или вам принципиально, чтобы все были в одном L2-сегменте? С увеличением масштабов сети это может привести к печальным последствиям. Вставить ник Quote
kerby2000 Posted June 8, 2011 Author Posted June 8, 2011 В этом случае идентификацию абонента можно производить по опции82 с аксессного коммутатора и номеру влана, т.е. на коммутаторах "верхнего уровня" запихивать каждый порт, куда включается аксессный коммутатор в свой влан. Или вам принципиально, чтобы все были в одном L2-сегменте? С увеличением масштабов сети это может привести к печальным последствиям. Да, для меня важно чтобы они были в одном L2 сегменте. Я в личку скинул нашу топологию. В нашем случае мы не планируем больше 60 машин в верхнем сегменте. Пропускная способность тут тоже не играет большого значения. Вставить ник Quote
s.lobanov Posted June 8, 2011 Posted June 8, 2011 Схему открыл, ничего не понял :( Если всё-таки надо обрабатывать несколько опций82, то обратитесь к автору этого http://forum.nag.ru/forum/index.php?showtopic=64849 творения, чтобы допилить под эту задачу, ну или сами, если в перле разбираетесь. Но если у вас будет настоящий большой L2, а не pvlan с arp-proxy на точке терминирования, то можете упереться в размер таблицы мак-адресов и производительность cpu "верхних" свитчей(т.к. option82 это софт-фича) Вставить ник Quote
Ivan_83 Posted June 8, 2011 Posted June 8, 2011 Вы бы не могли объяснить, как надо настроить DHCP сервер, чтобы он их понимал? Надо его запрограммировать :) Доточите под себя перловый скрипт, это самое простое и быстрое решение. Ситуация не стандартная. Ещё убедитесь что у вас клиент не может сам дописывать опции 82, а то их к ряду может получится и три и более. Лучше свести ситуацию к стандартной, по факту можно нарваться на кучу граблей в разном софте. В тч даже в Net::DHCP не отработает правильно, насколько я понял код у него код опции не повторяется, и последняя 82 затрет предыдущие. Вставить ник Quote
kerby2000 Posted June 9, 2011 Author Posted June 9, 2011 Вы бы не могли объяснить, как надо настроить DHCP сервер, чтобы он их понимал? Доточите под себя перловый скрипт, это самое простое и быстрое решение. Ситуация не стандартная. Ещё убедитесь что у вас клиент не может сам дописывать опции 82, а то их к ряду может получится и три и более. Лучше свести ситуацию к стандартной, по факту можно нарваться на кучу граблей в разном софте. Понятно, что надо запрограммировать. Буду разбираться. А что в вашем понимании стандартная? Такая система должна быть довольно стандартной для многих систем АСУ, где блоки подключаются по Ethernet и могут быть заменены без дополнительных настроек и танцев с бубном. Как я понял, тут все упирается в DHCP сервер. В них просто такая возможность не предусмотрена. Ладно, буду ковырять DHCP сервер. Вставить ник Quote
Ivan_83 Posted June 9, 2011 Posted June 9, 2011 Насколько я помню RFC касающиеся DHCP, то опции с одинаковым кодом являются продолжением друг друга, те если все не влезло в одну (255 байт) то создаётся ещё одна с таким же кодом. Потому любой коммутатор другого вендора может вполне обоснованно прекратить безобразие и повырезать всё лишнее. Без доп настроек ставится любое не управляемое оборудование :) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.