forum.bitel.ru http://forum.bitel.ru/ |
|
Помогите разобраться с сервером/шлюзом DHCP http://forum.bitel.ru/viewtopic.php?f=7&t=4877 |
Страница 1 из 1 |
Автор: | borisk [ 08 дек 2010, 15:42 ] |
Заголовок сообщения: | Помогите разобраться с сервером/шлюзом DHCP |
Добрый день! Долго читал документацию по BgDHCP, но что-то запутался. Помогите расставить все на свои места. Задача в общем то тривиальная - авторизовать клиентов по Opt.82 и выдавать им адреса на основе привязки switch:port:mac. Свитчи - 3Com2920. Для их отображения в системе был сделан фиктивный тип шлюза MAC_STORAGE (который хранит исключительно нужные привязки ip:port:mac) с вот такой вот конфигурацией: user_rule.editor.class=bitel.billing.module.services.ipn.editor.vlan.CiscoSSHSwitchRuleEditor gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker use.script=1 Теперь хочется увязать все это дело с DHCP сервером от BG. Вроде понятно, что надо поставить сервер, настроить шлюз DHCP и сделать мои шлюзы дочерними по отношению к нему. Но вот тут впал в ступор. Дело в том, что коммутаторы передают agent id в виде mac адреса, а в BG (если я правильно понял) используется ip? Как быть. Может что не дочитал - ткните носом пожалуйста. |
Автор: | mrustik [ 23 дек 2010, 17:59 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Нужно смотреть настройки свича, у некоторых есть возможность выбирать или редактировать этот параметр, или в дшсп ставить вместо ip адреса mac адрес в agent id |
Автор: | borisk [ 24 дек 2010, 13:59 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Я пишу свой шлюз dhcp, какое поле является agentid? dhcp.agentid или все же dhcp.gateId? |
Автор: | mrustik [ 26 дек 2010, 00:29 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Установка параметров для шлюза свича Код: stream.startElement( "gate" ); stream.addAttribute( "id", String.valueOf( DHCP.get("gateId")) ); stream.addAttribute( "host", DHCP.get("Relay") ); // ip - адрес свича ParamDHCP(stream, "dhcp.router", gateSetup); ParamDHCP(stream, "dhcp.subnetMask", gateSetup); ParamDHCP(stream, "dhcp.dns", gateSetup); ParamDHCP(stream, "dhcp.ipAddressLeaseTime", gateSetup); ParamDHCP(stream, "dhcp.timeOffset", gateSetup); ParamDHCP(stream, "dhcp.option.121", gateSetup); ParamDHCP(stream, "dhcp.option.249", gateSetup); stream.endElement( "gate" ); ParamDHCP(stream, paramStr, gateSetup) { param = gateSetup.getStringValue( paramStr, null ); if (param != null){ stream.startElement( "param" ); stream.addAttribute( "id", paramStr ); stream.addAttribute( "value", param ); stream.endElement( "param" ); } } Привязка к шлюзу ip адреса и порта клиента Код: ip = DHCP.get("ip").split(","); for (int i = 0; i < id.length; i++) { stream.startElement( DHCP.get("start") ); stream.addAttribute( "gateId", DHCP.get("gateId") ); stream.addAttribute( "id", String.valueOf( id[i] ) ); ip[i] = ip[i].substring(0 , 9); Hex_ip = Integer.toHexString(Integer.parseInt(ip[i])); if(Hex_ip.length() < 8){ Hex_ip = "0" + Hex_ip; } Hex_ip = Hex_ip.substring(0,2) + " " + Hex_ip.substring(2,4) + " " +Hex_ip.substring(4,6) + " " + Hex_ip.substring(6,8); stream.addAttribute( "ip", Hex_ip.toUpperCase() ); stream.endElement( DHCP.get("start") ); } Нужно в свиче посмотреть, что передает он в качестве agentid. Лучше снифером посмотреть что находится в пакете на запрос адреса. |
Автор: | borisk [ 26 дек 2010, 19:49 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Спасибо! У меня схема такая, коммутаторы работают в режиме dhcp snooping и исключительно добавляют Opt.82. Далее это все идет на relay, в качестве которого выступает Cisco ME3400. Она эту Opt.82 не трогает, и пропускает прозрачно. В результате до сервера доходит оригинальный набор opt.82, где в качестве agent id стоит MAC адрес клиентского коммутатора. К сожалению коммутаторы довольно туповаты, и нет возможности изменить формат agent id. Вот я и ищу возможность подсунуть BGDHCPD вместо IP коммутатора его MAC. |
Автор: | mrustik [ 27 дек 2010, 13:59 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Подсунуть не проблема вместо ip адреса mac, только тогда нужно будет к разработчикам обращаться, чтобы поиск по нему осуществляли. Хотя нужно попробовать, может и так все нормально будет. |
Автор: | mrustik [ 27 дек 2010, 16:28 ] |
Заголовок сообщения: | Re: Помогите разобраться с сервером/шлюзом DHCP |
Попробуй заполнить файл dhcp.data в BGDHCP, как тебе надо, вместо host=ip address, поставь mac, запусти DHCP сервер, попробуй получить адрес и посмотри в логах чего пишет, а потом уже можно писать свой скрипт, как тебе надо. Код: <?xml version="1.0" encoding="UTF-8"?><sync><gate id="79" host="10.38.6.216"></gate> <port gateId="79" id="1179" ip="0A 26 92 D8"/><port gateId="79" id="1239" ip="0A 26 C4 D8"/> <port gateId="79" id="1170" ip="0A 26 7E D8"/><port gateId="79" id="1171" ip="0A 26 88 D8"/> <port gateId="79" id="1278" ip="0A 26 EC D8"/><port gateId="79" id="1108" ip="0A 26 24 D8"/> <port gateId="79" id="1164" ip="0A 26 74 D8"/></sync> gate id="79" id шлюза в базе port gateId="79" id="1179" в зависимости, что стоит в конфиге dhcp.82.key.option.code=1 - влан, 2 порт |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |