Jump to content

ISC DHCP + Option 82 - no free leases


Recommended Posts

Пардон, мой выложен немного не там - в соседней теме, где-то на 7 странице.

На каждый DHCPDISCOVER дергается база?

Ви таки гавагите, будто это что-то плохое.

Да. Запросы там простые, как два пальца об асфальт, разницы в нагрузке (около 2к юзеров на сервер) я не заметил.

 

А документация?

Насчет моего - там есть краткий ридми, как его завести, коли непонятно чего - спрашивайте.

Link to post
Share on other sites

Кстати, совсем забыл - там же, на 7 странице, есть еще и третий сервер от gibbon.

Link to post
Share on other sites

Пардон, мой выложен немного не там - в соседней теме, где-то на 7 странице.

На каждый DHCPDISCOVER дергается база?

Ви таки гавагите, будто это что-то плохое.

Да. Запросы там простые, как два пальца об асфальт, разницы в нагрузке (около 2к юзеров на сервер) я не заметил.

 

Я вижу сие только как отдельный промежуточный слой между юзером и базой биллинга, который "кешируется" и обновляется по чейнж ивентам из биллинга. Ибо не у всех в биллинге простая логика БД, а каждый раз дергать ее тяжелыми запросами со множеством джойнов - не комильфо.

 

Плюс если крутить к аппаратным брасам, то нужен еще и радиус, что делает все очень громоздким

Link to post
Share on other sites

Пардон, мой выложен немного не там - в соседней теме, где-то на 7 странице.

На каждый DHCPDISCOVER дергается база?

Ви таки гавагите, будто это что-то плохое.

Да. Запросы там простые, как два пальца об асфальт, разницы в нагрузке (около 2к юзеров на сервер) я не заметил.

 

Я вижу сие только как отдельный промежуточный слой между юзером и базой биллинга, который "кешируется" и обновляется по чейнж ивентам из биллинга. Ибо не у всех в биллинге простая логика БД, а каждый раз дергать ее тяжелыми запросами со множеством джойнов - не комильфо.

 

Плюс если крутить к аппаратным брасам, то нужен еще и радиус, что делает все очень громоздким

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Link to post
Share on other sites

Пардон, мой выложен немного не там - в соседней теме, где-то на 7 странице.

На каждый DHCPDISCOVER дергается база?

Ви таки гавагите, будто это что-то плохое.

Да. Запросы там простые, как два пальца об асфальт, разницы в нагрузке (около 2к юзеров на сервер) я не заметил.

 

Я вижу сие только как отдельный промежуточный слой между юзером и базой биллинга, который "кешируется" и обновляется по чейнж ивентам из биллинга. Ибо не у всех в биллинге простая логика БД, а каждый раз дергать ее тяжелыми запросами со множеством джойнов - не комильфо.

 

Плюс если крутить к аппаратным брасам, то нужен еще и радиус, что делает все очень громоздким

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Тогда что мешает так-же наполнять файл leases для ISC DHCPd?

Link to post
Share on other sites

Пардон, мой выложен немного не там - в соседней теме, где-то на 7 странице.

На каждый DHCPDISCOVER дергается база?

Ви таки гавагите, будто это что-то плохое.

Да. Запросы там простые, как два пальца об асфальт, разницы в нагрузке (около 2к юзеров на сервер) я не заметил.

 

Я вижу сие только как отдельный промежуточный слой между юзером и базой биллинга, который "кешируется" и обновляется по чейнж ивентам из биллинга. Ибо не у всех в биллинге простая логика БД, а каждый раз дергать ее тяжелыми запросами со множеством джойнов - не комильфо.

 

Плюс если крутить к аппаратным брасам, то нужен еще и радиус, что делает все очень громоздким

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Тогда что мешает так-же наполнять файл leases для ISC DHCPd?

 

Единственный плюс - что не нужно рестартить.

Link to post
Share on other sites

На наге есть два DHCP сервера. Скелет (без логики, свою логику надо дописывать) от Ivan_83 и готовый (ставь и пользуйся) мой.

Написаны специально, чтобы избежать костылей с isc dhcpd.

от ивана я пробовал ... чуть не то . это чисто dhcp+mysql (что с опцией что без нее...)

 

а по поводу костелей в isc ? не понял что вы имеете ввиду.

он штатно работате с опцией82

Link to post
Share on other sites

На наге есть два DHCP сервера. Скелет (без логики, свою логику надо дописывать) от Ivan_83 и готовый (ставь и пользуйся) мой.

Написаны специально, чтобы избежать костылей с isc dhcpd.

а по поводу костелей в isc ? не понял что вы имеете ввиду.

он штатно работате с опцией82

Работает, но получается как раз эта тема - проблемы с лизами при перетыкании :)

Link to post
Share on other sites

На наге есть два DHCP сервера. Скелет (без логики, свою логику надо дописывать) от Ivan_83 и готовый (ставь и пользуйся) мой.

Написаны специально, чтобы избежать костылей с isc dhcpd.

а по поводу костелей в isc ? не понял что вы имеете ввиду.

он штатно работате с опцией82

Работает, но получается как раз эта тема - проблемы с лизами при перетыкании :)

по поводу лиз - пач от dd - и все становится гуд

конечно кошернее в мускуле или посгресе - но и там свои недостатки.

Link to post
Share on other sites

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Тогда что мешает так-же наполнять файл leases для ISC DHCPd?

Я немного приврал, у меня другая логика работы. У меня база dhcp наполняется сама, а потом привязывается к учеткам в биллинге - вручную либо через страницу авторизации пользователя.

В любом случае, с базой работать приятней - например, в биллинге и CRM есть зеленая/красная лампочка - получил клиент адрес или нет (для саппорта).

Вот так оно у меня выглядит (см. 'DHCP отримано'):

dhcp-diag.png

С ISC такого не сделаешь ;).

 

На наге есть два DHCP сервера. Скелет (без логики, свою логику надо дописывать) от Ivan_83 и готовый (ставь и пользуйся) мой.

Написаны специально, чтобы избежать костылей с isc dhcpd.

от ивана я пробовал ... чуть не то . это чисто dhcp+mysql (что с опцией что без нее...)

 

а по поводу костелей в isc ? не понял что вы имеете ввиду.

он штатно работате с опцией82

Штатно - это когда if-ы для каждого клиента в конфиге?

Просто обожаю вот такие конструкции:

match if binary-to-ascii(16, 8, "-", suffix(option agent.remote-id, 5)) = "af:f7:c9:31:59" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1";

Или вот мне вообще нравится то, что для isc нужно задать хотя бы один пул интерфейс (можно даже пустой) - иначе он вообще не запустится.

Link to post
Share on other sites

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Тогда что мешает так-же наполнять файл leases для ISC DHCPd?

Я немного приврал, у меня другая логика работы. У меня база dhcp наполняется сама, а потом привязывается к учеткам в биллинге - вручную либо через страницу авторизации пользователя.

В любом случае, с базой работать приятней - например, в биллинге и CRM есть зеленая/красная лампочка - получил клиент адрес или нет (для саппорта).

Вот так оно у меня выглядит (см. 'DHCP отримано'):

dhcp-diag.png

С ISC такого не сделаешь ;).

 

На наге есть два DHCP сервера. Скелет (без логики, свою логику надо дописывать) от Ivan_83 и готовый (ставь и пользуйся) мой.

Написаны специально, чтобы избежать костылей с isc dhcpd.

от ивана я пробовал ... чуть не то . это чисто dhcp+mysql (что с опцией что без нее...)

 

а по поводу костелей в isc ? не понял что вы имеете ввиду.

он штатно работате с опцией82

Штатно - это когда if-ы для каждого клиента в конфиге?

Просто обожаю вот такие конструкции:

match if binary-to-ascii(16, 8, "-", suffix(option agent.remote-id, 5)) = "af:f7:c9:31:59" and binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 1)) = "1";

Или вот мне вообще нравится то, что для isc нужно задать хотя бы один пул интерфейс (можно даже пустой) - иначе он вообще не запустится.

а че на конструкции смотреть то ... они то скриптом генерируются....сами .

а кто вам сказал что нельзя сделать

писал тезка для своей сети ( поделился)

post-2356-0-05044400-1347968848_thumb.png

Link to post
Share on other sites

писал тезка для своей сети ( поделился)

Красиво, согласен. Я у Вас идею скомунизжу - буду и у себя hostname показывать :).

Насчет можно/нельзя - конечно, можно, но как-то это кривовато, как по мне - файл разбирать.

Link to post
Share on other sites

...

У dhcp-сервера своя база. Я её просто из биллинга наполняю.

Тогда что мешает так-же наполнять файл leases для ISC DHCPd?

 

Единственный плюс - что не нужно рестартить.

Ее можно наполнять и без рестарта, по OMAPI.

Link to post
Share on other sites

писал тезка для своей сети ( поделился)

Красиво, согласен. Я у Вас идею скомунизжу - буду и у себя hostname показывать :).

Насчет можно/нельзя - конечно, можно, но как-то это кривовато, как по мне - файл разбирать.

Можно не разбирать.

Link to post
Share on other sites

Ее можно наполнять и без рестарта, по OMAPI.

Да-да, давно хотел попробовать, но так себя и не заставил

У OMAPI странноватая логика, но он работает. Я на прошлой работе заимплементил наполнение базы лизов и получение информации о лизах с помощью этого протокола. Там, правда, сложности с получением информации об Option82 были, но я написал патчи и все заработало замечательно.

Печалит другое - ISC собирается выпилить поддержку этого протокола из своих продуктов.

Link to post
Share on other sites

OMAPI ... ну если только читать инфу о лизах или выдавать абонам из пула то можно syslog-ng+mysql+пару тригеров прикрутить - но опять же не то... хочется полноценной поддержки баз . (из того что пробовал - ничего не подошло - по разным причинам)

 

з.ы.

В описании пулов между ";" и "}" пропущен пробел. Порасставляй пробелы и будет тебе счастье.

уважаемый если потрудитесь почитать маны то осчасливете все человечество. или тут принято писать полный бред?

Link to post
Share on other sites

OMAPI ... ну если только читать инфу о лизах или выдавать абонам из пула то можно syslog-ng+mysql+пару тригеров прикрутить - но опять же не то... хочется полноценной поддержки баз . (из того что пробовал - ничего не подошло - по разным причинам)

 

з.ы.

В описании пулов между ";" и "}" пропущен пробел. Порасставляй пробелы и будет тебе счастье.

уважаемый если потрудитесь почитать маны то осчасливете все человечество. или тут принято писать полный бред?

 

Факт остается фактом... При

pool { range 10.0.0.101; allow members of "sw170-1";}

в логе имеем

DHCPDISCOVER from 00:17:31:db:cf:a2 via em1: network test: no free leases
DHCPDISCOVER from 00:17:31:db:cf:a2 via 10.0.0.250: network test: no free leases

 

При

pool { range 10.0.0.101; allow members of "sw170-1"; }

все корретно работает.

Сам когда-то "наступил" на эти грабли. Неделю курил маны, модифицировал все что возможно... А потом поставил пробелы - и все сразу заработало.

Link to post
Share on other sites

ну кончено ....

только вас не смущает то что я выложил полностью рабочий конфиг ( часть его ) и сервера который в продакшен стои?

это раз.

второе: при не верном синтаксисе isc при старте будет ругатся и не стартанет.

третье:

DHCPDISCOVER from 00:17:31:db:cf:a2 via 10.0.0.250: network test: no free leases

откройте ман и почитайте что это значит.

 

; = конец строки

} = конец блока

;} что ; } или ; }

или

;

 

}

 

роли не играет

 

 

для експересмента

не поставтье ; или }

 

в любой строке

или

allow members замените на allowmembers

и рестартание isc

получится запустить?

Link to post
Share on other sites

Согласен, при неверном синтаксисе ISC при запуске вылетает, указывая на номер строки, где допущена ошибка. Однако, в моем случае, при слитном ;} айпишник не выдается (в логах - no free leases), а если разделить пробелом - то все корректно работает. Софт: FreeBSD 9.0, isc-dhcp42-server-4.2.4 без патчей.

 

Кста, в man dhcpd.conf вообще все пулы и класы описываются с переводом каретки на новую строку:

 

 subnet 10.0.0.0 netmask 255.255.255.0 {
	 option routers 10.0.0.254;
	 # Unknown clients get this pool.
	 pool {
	 option domain-name-servers bogus.example.com;
	 max-lease-time 300;
	 range 10.0.0.200 10.0.0.253;
	 allow unknown-clients;
	 }
	 # Known clients get this pool.
	 pool {
	 option domain-name-servers ns1.example.com, ns2.example.com;
	 max-lease-time 28800;
	 range 10.0.0.5 10.0.0.199;
	 deny unknown-clients;
	 }
 }

 

. В одну строку есть описание хостов, но там пробелы присутствуют:

 

group {
filename "Xncd19r";
next-server ncd-booter;

host ncd1 { hardware ethernet 0:c0:c3:49:2b:57; }
host ncd4 { hardware ethernet 0:c0:c3:80:fc:32; }
host ncd8 { hardware ethernet 0:c0:c3:22:46:81; }
}

 

Пускай dimka890 отпишется, помогла ли расстановка пробелов или нет, а то общение уже как-то "отошло" от решения первоначальной проблемы.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...