kisa Posted September 29, 2013 Posted September 29, 2013 День добрый! Не раз здесь встречал упоминания, что dnsmasq умеет учитывать интерфейс, с которого пришел dhcp запрос, при выдаче ip адреса. Вот только ни чтение документации, ни гугление не помогло. В документации в разделе dhcp-range ни слова про интерфейc. Возможно, мог бы быть механизм аналогичный --dhcp-circuitid=set:<tag>,<circuit-id>, т.е. что-то вроде dhcp-interface=set:<tag>,<interface> но его тоже нет. Гугл находит много запросов людей на эту опцию, но ни один из них не закончился каким либо результатом. Такая опция мне нужна для однозначной привязки ip к qinq ip unnumbered интерфесам. Отзовитесь кто знает про эту тему что-нибудь. Спасибо. Вставить ник Quote
Ilya Evseev Posted September 29, 2013 Posted September 29, 2013 google "dnsmasq dhcp-range per interface" => http://askubuntu.com/questions/118350/multi-subnet-in-ubuntu-with-dnsmasq главное, чтобы у сервера на этом интерфейсе был ip из той же подсетки, к которой относится пул, иначе dnsmasq не станет выдавать адреса. Вставить ник Quote
kisa Posted September 29, 2013 Author Posted September 29, 2013 Илья, эту ссылку я нашел одной из первых. Добавление параметра interface приводит к ошибке: dnsmasq: only one tag allowed at line 2 of /etc/dnsmasq.conf вот тестовый конфиг, приводящий к этой ошибке: port=0 dhcp-range=interface:vlan10.150, set:net31, 10.31.0.2, 10.31.0.2, 255.255.255.0, 10.31.0.255, 10m Т.е., похоже, что конструкцию interface:vlan10.150 он просто считает за таг. главное, чтобы у сервера на этом интерфейсе был ip из той же подсетки, к которой относится пул, иначе dnsmasq не станет выдавать адреса. т.к. интерфейс unnumbered, то на нем всего один адрес: ip addr ls dev vlan10.150 6: vlan10.150@vlan10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:04:23:9e:69:83 brd ff:ff:ff:ff:ff:ff inet 10.31.0.1/32 scope global vlan10.150 и этот адрес не принадлежит пулу, но тем не менее dnsmasq выдает адрес. проблема в том, что когда я добавляю несколько dhcp-range, уже нет возможности привязать строго определенный пул с одним адресом к определенному интерфейсу. Вставить ник Quote
Ilya Evseev Posted September 29, 2013 Posted September 29, 2013 Тогда плохо. У меня мак-адрес абонента был известен, а у Вас? http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2011q4/005321.html Обходной вариант -- запускать по экземпляру dnsmasq для каждого интерфейса, с раздельными настройками. Вставить ник Quote
kisa Posted September 29, 2013 Author Posted September 29, 2013 У меня мак-адрес абонента был известен, а у Вас? мак адреса известны, но хочется от этого уйти. для этого можно использовать option 82, но хотелось пойти еще дальше и не делать и этих движений, т.к. dhcp сервер в случае vlan per customer и так знает откуда пришел запрос. А много процессов - это совсем не решение. Вставить ник Quote
Ilya Evseev Posted September 29, 2013 Posted September 29, 2013 Если других вариантов не останется, тогда останется спросить Саймона в http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss Это самый надёжный и быстрый вариант, на самом деле. Вставить ник Quote
kisa Posted September 29, 2013 Author Posted September 29, 2013 Илья, спасибо! Ссылка наш вопрос в списке рассылке привела меня к ответу!! Саймон там написал, что tag c именем интерфейса выставляется автоматически для запроса. Этот момент я пропустил, читая описание параметров в ман файле. То есть надо было просто использовать уже сущесвующий таг в описании dhcp-range, и следующий конфиг дает желаемый результат - ip выдается строго в зависимости от влана/порта: dhcp-range=vlan10.150, set:net31, 10.31.0.2, 10.31.0.2, 255.255.255.0, 10.31.0.255, 10m dhcp-range=vlan10.151, set:net31, 10.31.0.3, 10.31.0.3, 255.255.255.0, 10.31.0.255, 10m dhcp-range=vlan11.152, set:net31, 10.31.0.4, 10.31.0.4, 255.255.255.0, 10.31.0.255, 10m dhcp-range=vlan11.153, set:net31, 10.31.0.5, 10.31.0.5, 255.255.255.0, 10.31.0.255, 10m Вставить ник 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.