The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Передача статических маршрутов в DHCP
В основную секцию файла конфигурации DHCP сервера нужно прописать:

   option ms-classless-static-routes code 249 = array of unsigned integer 8;
   option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

в потом в секции subnet или host прописывать:

   option ms-classless-static-routes 16, 172,16, 10,16,40,100;
   option rfc3442-classless-static-routes 16, 172,16, 10,16,40,100;

где

   16 (маска)
   172.16.0.0 (сеть)
   10.16.40.100 (шлюз)


Скрипт для генерации содержимого "option classless-route" в шестнадцатеричной
нотации для более старых версий dhcpd:

  #!/usr/bin/perl

  use strict;

  # Usage:
  #   make_classless_option({ "subnet/mask" => "router", "subnet/mask" => "router", ... });
  #     subnet   the subnet address, 4 dot-separated numbers
  #     mask     the subnet mask length (e.g. /24 corresponds to 255.255.255.0, /8 corresponds to 255.0.0.0)
  #     router   the router address, 4 dot-separated numbers

  sub make_classless_option{
    my $routes = shift;
    my ($s1, $s2, $s3, $s4, $len, @bytes, $net, $mask, $destination, $router);

    $len = 2;
    @bytes = ();
    foreach $destination(keys %{$routes}) {
        ($net, $mask) = split('/', $destination);
        $router = $routes->{$destination};
        ($s1, $s2, $s3, $s4) = split(/\./, $net);
        push(@bytes, sprintf('%02x', $mask));
        push(@bytes, sprintf('%02x', $s1));
        push(@bytes, sprintf('%02x', $s2)) if($mask > 8);
        push(@bytes, sprintf('%02x', $s3)) if($mask > 16);
        push(@bytes, sprintf('%02x', $s4)) if($mask > 24);
        ($s1, $s2, $s3, $s4) = split(/\./, $router);
        push(@bytes, sprintf('%02x', $s1));
        push(@bytes, sprintf('%02x', $s2));
        push(@bytes, sprintf('%02x', $s3));
        push(@bytes, sprintf('%02x', $s4));
    }

    return join(':', @bytes);
  }

  # Пример использования

  print make_classless_option({
        "10.230.0.0/16" => "10.230.178.145"
        });
 
11.08.2009 , Источник: http://www.opennet.ru/openforum/vsl...
Ключи: dhcp, route / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Туннелинг, VPN, VLAN

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, chesnok (ok), 00:21, 11/08/2009 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    покажите как передать маршрут для многоадресной рассылки ?
     
     
  • 2.21, Игорь (??), 13:40, 04/12/2009 [^] [ответить]    [к модератору]
  • +/
    А как сделать, что бы шлюзом здесь отдавался тот самый ip-шник, который назначен клиенту?

    PS
    Объясню, зачем это нужно. При передачи мультикастом iptv все вобщем то замечательно, до тех пор, пока клиент не поднимает pppoe (или любое другое VPN соединение). При этом у него прописывается шлюзом по умолчанию для мультикаста другой ip-шник, который выдается по ppp-соединению, причем с лучшей метрикой. iptv работать перестает. Как это выглядит:
            224.0.0.0        240.0.0.0  192.168.1.201  192.168.1.201    192.168.1.201    20
            224.0.0.0        240.0.0.0  91.192.97.1    91.192.97.1      91.192.97.1      1

    Если бы удалось передать маршрут:
            239.1.1.0        255.255.255.0  192.168.1.201  192.168.1.201    192.168.1.201 1

    то проблема бы была решена....
    Но как в конфиге-то это прописать?

     
  • 1.2, VecH (ok), 01:45, 11/08/2009 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Маршруты в десятичном заданы и читабельны
    Для чего тут скрипт на perl-е ?

    Да, и маршрутов можно передавать несколько:
    MASK, NETWORK, GATEWAY, MASK, NET, GATEWAY, .....;

     
     
  • 2.5, Аноним (-), 08:54, 11/08/2009 [^] [ответить]     [к модератору]
  • +/
    А это читабельно будет Строка вида 0a 00 00 01 для 10 0 0 1 еще понимается, а ... весь текст скрыт [показать]
     
     
  • 3.8, VecH (ok), 15:24, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    Я имею ввиду вот это:
    > option rfc3442-classless-static-routes 16, 172,16, 10,16,40,100;
    > где
    > 16 (маска)
    > 172.16.0.0 (сеть)
    > 10.16.40.100 (шлюз)

    Где тут используется шестнадцатеричный формат который выдает перл?
    помню когда сталкивался с этим, перловый скрипт предназначался совсем для другого метода решения проблемы

    Он тут не к месте, поправьте меня если неправ

     
     
  • 4.11, коекто (?), 22:38, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    >> где
    >> 16 (маска)
    >> 172.16.0.0 (сеть)
    >> 10.16.40.100 (шлюз)
    >
    >Где тут используется шестнадцатеричный формат который выдает перл?
    >помню когда сталкивался с этим, перловый скрипт предназначался совсем для другого метода
    >решения проблемы
    >
    >Он тут не к месте, поправьте меня если неправ

    Определение новых опций допустимо только в последних версиях dhcpd

    у кого более старые
    option ortion-249 10:AC:10:0A:10:28:64


     
     
  • 5.12, VecH (ok), 22:51, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >Определение новых опций допустимо только в последних версиях dhcpd
    >
    >у кого более старые
    >option ortion-249 10:AC:10:0A:10:28:64

    Так об этом даже упоминания нет а скрипт есть ))

     
  • 1.3, VecH (ok), 01:45, 11/08/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    И еще вопрос
    как передавать статические марщруты клиентам подключающимся по VPN и получаемые адреса с сервера
     
     
  • 2.4, madvamp (?), 07:11, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    Вроде смотрел такого сделать вроде бы нельзя (по крайней мере на Windows), хотя если в радиусе видел атрибут framed-route (вроде бы он за это отвечает), но виндовые клиенты не понимают и все :(
     
  • 2.6, Уноним (?), 09:48, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    если использовать openvpn, то там можно указать push-route
     
  • 2.7, Славон (?), 09:57, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    Если в винде создавать ВПН через админскую фигню (честно не помню как называется, но иконка у ней в виде баранки разноцветной) то там можно указать адрес веб сервера от куда будут забираться роуты после соединения....
     
     
  • 3.9, VecH (ok), 15:25, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >Если в винде создавать ВПН через админскую фигню (честно не помню как
    >называется, но иконка у ней в виде баранки разноцветной) то там
    >можно указать адрес веб сервера от куда будут забираться роуты после
    >соединения....

    Искал, не нашел

     
     
  • 4.10, Alexander (??), 17:34, 11/08/2009 [^] [ответить]    [к модератору]  
  • +/
    тулза называется CMAK (Connection Manager Administration Kit). умеет создавать бандл коннекции со статик роутами внутри.
     
  • 2.13, freedom (?), 17:35, 13/08/2009 [^] [ответить]    [к модератору]  
  • +/
    такое работает через dhcp inform, его умеет делать сам клиент MS.
    Но нужна поддержка со стороны VPN сервера, он должен быть dhcp-relay для проброса пакета на dhcp-server.
     
     
  • 3.14, freedom (?), 17:36, 13/08/2009 [^] [ответить]    [к модератору]  
  • +/
    > такое работает через dhcp inform, его умеет делать сам клиент MS.
    >
    >Но нужна поддержка со стороны VPN сервера, он должен быть dhcp-relay для
    >проброса пакета на dhcp-server.

    http://itdoc.com.ua/2009/02/razreshenie-dhcp-retranslyatora-dlya-vpn-klientov

     
     
  • 4.15, VecH (ok), 17:39, 13/08/2009 [^] [ответить]    [к модератору]  
  • +/
    Ну это под офтопиком, не подходит
     
  • 1.16, pavlinux (ok), 11:49, 26/08/2009 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    И в ...дцатый раз спрошу -
    Есть блейд серваки, 256 штук, все МАC одинаковые, кроме последних байт - 00:01:02:03:04:xx

    Как объяснить DHCP серверу, что только этим МАКам
    разрешена PXE загрузка и адреса из сети 192.168.20.0/15!

     
     
  • 2.17, pavel_simple (ok), 12:14, 26/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >И в ...дцатый раз спрошу -
    >Есть блейд серваки, 256 штук, все МАC одинаковые, кроме последних байт -
    >00:01:02:03:04:xx
    >
    >Как объяснить DHCP серверу, что только этим МАКам
    >разрешена PXE загрузка и адреса из сети 192.168.20.0/15!

    интересно...

    man 5 dhcp-eval
    в части

    substring (data-expr, offset, length)

    и в класс его , а там уже и параметры PXE/BOOTP выставить или вообще отдельный пул.

    готовое решение отсутствует.

     
     
  • 3.18, pavel_simple (ok), 12:15, 26/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    >
    >man 5 dhcp-eval
    >в части
    >
    > substring (data-expr, offset, length)
    >
    >и в класс его , а там уже и параметры PXE/BOOTP выставить
    >или вообще отдельный пул.
    >
    >готовое решение отсутствует.

    а ещё у бдейдов должен быть свой vendor-string

     
  • 3.19, pavlinux (ok), 14:16, 26/08/2009 [^] [ответить]     [к модератору]  
  • +/
    gt оверквотинг удален сейчас вот так class allocation-class-1 ma... весь текст скрыт [показать]
     
  • 3.20, pavlinux (ok), 14:37, 26/08/2009 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    >
    >man 5 dhcp-eval
    >в части
    >
    > substring (data-expr, offset, length)
    >
    >и в класс его , а там уже и параметры PXE/BOOTP выставить
    >или вообще отдельный пул.
    >
    >готовое решение отсутствует.

    Кстати про substring


    class "allocation-class-1" {
           match pick-first-value(option dhcp-client-identifier,
                                   substring (hardware, 0, 4));
    }

    То же не пошло

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor