Jump to content

Recommended Posts

Posted

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

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

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

Posted

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

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

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

Edited by Abram
Posted

Работает.

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

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

Posted

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

Posted

Попробовал потестить 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

Posted

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

Posted
Попробовал потестить 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;
    }

 

Posted

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

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

 

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 не хочет принимать маршруты :(

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

Edited by shicoy
Posted (edited)

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

 

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

Edited by SokolovS
Posted

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

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

Posted

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

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

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

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

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

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

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

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

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

ATTRIBUTE DHCP-MS-Static-Routes 249 octets

 

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

  • 2 weeks later...
Posted

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.