Перейти к содержимому
Калькуляторы

FreeRADIUS как DHCP сервер у кого в продакшене?

С версии 2.0.4 есть такая возможность, хочется услышать отзывы тех кто пользуется на нормальной абонентской базе, 5 - 10 тыс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Говорят - ништяк работает с перловым модулем, топорно до безобразия. Сам правда так и не попробывал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пользовал с перловым модулем, но дальше "попробовать" не дошло. Сейчас хочу перейти в стадию "реализовать и тестировать".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram, если там выполняется перловый скрипт при запросе адреса или обновления лизы - это топорно, глючить не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram, если там выполняется перловый скрипт при запросе адреса или обновления лизы - это топорно, глючить не должно.
"Выполняется скрипт" - не совсем верно, но, в общем, пойдёт ;).

Оно-то вроде так, но с другой стороны - не зря же в вики висят предупрежения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так мне кажется как напишешь перловый rlm так и будет работать, там же по сути только отдаются аттрибуты и выплевывается ответ. Код я смотрел он достаточно простой. Хотелось бы конечно услышать отзывы тех у кого "Говорят - ништяк работает"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Код я смотрел он достаточно простой.
Вот это, кстати, хорошо :).

А так - да, согласен, что в перле напишешь, то и будет. Если принять как аксиому утверждение, что в фрирадиусе нет багов :).

Изменено пользователем Abram

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Работает.

Абонентов конечно поменьше, но работает.

Правда будем сворачивать, cisco 3750 & ip unnumbered больше подходят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, а мы вводим связку фрирадиус+патченный ICS dhcpd от netpatch.ru. Одно но: по дефолту работает на постгре, непривычно как-то, хотя морду на пхп уже я наваял, чтобы клиентов в базу вносить/удалять, интерфейсы редактировать, маршруты отдавать и т.п. сами демоны за 4 месяца не разу не падали, но клиентов на нем пока нет, все в тестах пока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Просто ИМХО ISC DHCP в данном случае - лишняя прослойка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Перл то чем плох?

Ну не нравится - перепишите на си, трудно что ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробовал потестить Freeradius как DHCP

Все неплохо все интересно, только вот не понятно

как правильно отдать DHCP-MS-Static-Routes

 

ATTRIBUTE    DHCP-MS-Static-Routes            249    ipaddr array

 

поробовал отдавать вот так:

18,c3,02,d6,0a,65,01,01,16,5b,c5,ac,0a,65,01,01,08,0a,0a,65,01,01

и так

18:c3:02:d6:0a:65:01:01:16:5b:c5:ac:0a:65:01:01:08:0a:0a:65:01:01

 

не хочет винда воспринимать данный аттрибут и все.

 

Еще смутило что в логах радиуса так же нет упоминания об этом аттрибуте

Sending DHCP-Ack of id 40950288 from 192.168.172.18:67 to 192.168.98.99:67
        DHCP-Subnet-Mask = 255.255.255.0
        DHCP-Router-Address = 10.101.1.1
        DHCP-IP-Address-Lease-Time = 600
        DHCP-Domain-Name-Server = 91.197.172.3
        DHCP-DHCP-Server-Identifier = 192.168.172.18

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня радиус отдает демону этот параметр в виде блока шестадцатиречных значений без разделителей, т.е в виде 0x080ac0a82c0110c0a8c0a82c01, этим я передал два маршрута 10.0.0.0/8=>192.168.44.1, 192.168.0.0/16=>192.168.44.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробовал потестить Freeradius как DHCP

Все неплохо все интересно, только вот не понятно

как правильно отдать DHCP-MS-Static-Routes

 

ATTRIBUTE    DHCP-MS-Static-Routes            249    ipaddr array

 

поробовал отдавать вот так:

18,c3,02,d6,0a,65,01,01,16,5b,c5,ac,0a,65,01,01,08,0a,0a,65,01,01

и так

18:c3:02:d6:0a:65:01:01:16:5b:c5:ac:0a:65:01:01:08:0a:0a:65:01:01

 

не хочет винда воспринимать данный аттрибут и все.

 

Еще смутило что в логах радиуса так же нет упоминания об этом аттрибуте

Sending DHCP-Ack of id 40950288 from 192.168.172.18:67 to 192.168.98.99:67
        DHCP-Subnet-Mask = 255.255.255.0
        DHCP-Router-Address = 10.101.1.1
        DHCP-IP-Address-Lease-Time = 600
        DHCP-Domain-Name-Server = 91.197.172.3
        DHCP-DHCP-Server-Identifier = 192.168.172.18

роуты:

    if($give_routes == 1) {
            # Search static routes for user's subnet:
        my $routes = "0x";
            # Determine user's subnet in format x.x.x.x/y
        my $block = new Net::Netmask($ip."/".$mask);
        my $sth = $dbh->prepare("SELECT dst_net, gw FROM ip_dhcp_routes WHERE src_net='$block'");
        $sth->execute;
            # Form routes hex-string
        while(my $ref = $sth->fetchrow_arrayref)
        {
            $routes .= mk_routes($$ref[0], $$ref[1]);
        }
        if($routes ne "0x") {
            $RAD_REPLY{'DHCP-MS-Static-Routes'} = $routes;
        }
    }
sub mk_routes {
    # Syntax: mk_routes($net/shortmask, $gw)
    my $net = shift;
    my $gw = shift;
    
    # Parse network && verify whether the syntax is correct
    my $ip = new Net::IP($net) || (print Net::IP::Error() and return);
    my $ipgw = new Net::IP($gw) || (print Net::IP::Error() and return);
    
    $net = $ip->short();
    my $mask = $ip->prefixlen();
    
    my $str = DH($mask);
    my @split = split /\./, $net;
    foreach(@split) {
        $str .= DH($_);
    }
    
    @split = split (/\./, $gw);
    foreach(@split) {
        $str .= DH($_);
    }
    return $str;
    }

sub DH {
    # Do a hex from dec
    my $str = $_[0];
    $str = sprintf("%X", $str);
    if(length($str) eq 1) {
        $str = "0".$str;
    }
    return $str;
    }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Плз отпишите из тех кто использует сабж. Сколько абонентов, как резервируете, просто две машины с FreeRADIUS?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

роуты:
Спасибо, но что-то у меня все равно не захотело работать.

 

Sending DHCP-Ack of id e66ba99b from 192.168.172.18:67 to 192.168.98.99:67
        DHCP-Subnet-Mask = 255.255.255.0
        DHCP-Router-Address = 10.101.1.1
        DHCP-IP-Address-Lease-Time = 600
        DHCP-Domain-Name-Server = 192.168.172.3
        DHCP-DHCP-Server-Identifier = 192.168.172.18
        DHCP-MS-Static-Routes = "0x18C302D6000A650101165BC5AC000A650101080A0000000A650101"
Finished request 2.

Но winxp не хочет принимать маршруты :(

Но при этом еще и удаляется дефолтный гейт

Изменено пользователем shicoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если дефолтный гейт удаляется, значит по идее работает. По rfc, если используются бесклассовые маршруты в DHCP, то дефолтный гейт тоже должен быть включен в список маршрутов.

 

Рекомендую посмотреть DHCP пакеты снифером.

Изменено пользователем SokolovS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если дефолтный гейт удаляется, значит по идее работает. По rfc, если используются бесклассовые маршруты в DHCP, то дефолтный гейт тоже должен быть включен в список маршрутов.

А вот винда, по моим наблюдениям, как раз дефолтный не удаляет :(.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да как раз с isc-dhcp никаких проблем не вызвало, и 249 опция работает без проблем.

а вот с FreeRadius никак :(

я так понимаю Wingman смог завести ее, может быть подробнее расскажет.

как завел с словаре радиуса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да как раз с isc-dhcp никаких проблем не вызвало, и 249 опция работает без проблем.

а вот с FreeRadius никак :(

я так понимаю Wingman смог завести ее, может быть подробнее расскажет.

как завел с словаре радиуса.

Сделал левую опцию в словаре:

ATTRIBUTE DHCP-MS-Static-Routes 249 octets

 

и, собсно, всё завелось сходу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

понял, черт видимо жара так действует :) я как string передавал.

Спасибо.

Изменено пользователем shicoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

P.S.: Для полноты картины неплохо бы еще добавить:

VALUE DHCP-Parameter-Request-List DHCP-MS-Static-Routes 249

 

А клиентам еще нужно отправлять и DHCP-Classless-Static-Route, на всякий случай. Про линуксы забывать тоже не стоит ;)

 

Вобщем возник такой вопрос. В 2.х теперь виртуал хосты есть, так вот хочу вынести в виде виртуал-хостов авторизацию VPN-серверов, 802.1x и попробовать DHCP добавить. Проблема в том, что для первых двух уже написаны perl-модули и успешно работают, но в виде отдельных процессов на 1.х. Как мне указать что для разных виртуал-хостов нужно использовать разные perl модули?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.