The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Передача статических маршрутов в DH..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Передача статических маршрутов в DH..."  +/
Сообщение от auto_tips (ok) on 11-Авг-09, 00:21 
В основную секцию файла конфигурации 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" в шестнадцатеричной нотации:

  #!/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"
        });

URL: https://www.opennet.ru/openforum/vsluhforumID1/83205.html
Обсуждается: https://www.opennet.ru/tips/info/2139.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Передача статических маршрутов в DHCP"  +/
Сообщение от chesnok (ok) on 11-Авг-09, 00:21 
покажите как передать маршрут для многоадресной рассылки ?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 11-Авг-09, 01:45 
Маршруты в десятичном заданы и читабельны
Для чего тут скрипт на perl-е ?

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 11-Авг-09, 01:45 
И еще вопрос
как передавать статические марщруты клиентам подключающимся по VPN и получаемые адреса с сервера
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Передача статических маршрутов в DHCP"  +/
Сообщение от madvamp email on 11-Авг-09, 07:11 
Вроде смотрел такого сделать вроде бы нельзя (по крайней мере на Windows), хотя если в радиусе видел атрибут framed-route (вроде бы он за это отвечает), но виндовые клиенты не понимают и все :(
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Передача статических маршрутов в DHCP"  +/
Сообщение от Аноним (??) on 11-Авг-09, 08:54 
А это  читабельно будет?
> ($s1, $s2, $s3, $s4) = split(/\./, $router);
> push(@bytes, sprintf('%02x', $s1));
> ...
> return join(':', @bytes);

Строка вида 0a:00:00:01 для 10.0.0.1 еще понимается, а для более запущенных случаев? :-)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Передача статических маршрутов в DHCP"  +/
Сообщение от Уноним on 11-Авг-09, 09:48 
если использовать openvpn, то там можно указать push-route
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Передача статических маршрутов в DHCP"  +/
Сообщение от Славон on 11-Авг-09, 09:57 
Если в винде создавать ВПН через админскую фигню (честно не помню как называется, но иконка у ней в виде баранки разноцветной) то там можно указать адрес веб сервера от куда будут забираться роуты после соединения....
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 11-Авг-09, 15:24 
Я имею ввиду вот это:
> option rfc3442-classless-static-routes 16, 172,16, 10,16,40,100;
> где
> 16 (маска)
> 172.16.0.0 (сеть)
> 10.16.40.100 (шлюз)

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

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 11-Авг-09, 15:25 
>Если в винде создавать ВПН через админскую фигню (честно не помню как
>называется, но иконка у ней в виде баранки разноцветной) то там
>можно указать адрес веб сервера от куда будут забираться роуты после
>соединения....

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Передача статических маршрутов в DHCP"  +/
Сообщение от Alexander (??) on 11-Авг-09, 17:34 
тулза называется CMAK (Connection Manager Administration Kit). умеет создавать бандл коннекции со статик роутами внутри.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Передача статических маршрутов в DHCP"  +/
Сообщение от коекто on 11-Авг-09, 22:38 
>[оверквотинг удален]
>> где
>> 16 (маска)
>> 172.16.0.0 (сеть)
>> 10.16.40.100 (шлюз)
>
>Где тут используется шестнадцатеричный формат который выдает перл?
>помню когда сталкивался с этим, перловый скрипт предназначался совсем для другого метода
>решения проблемы
>
>Он тут не к месте, поправьте меня если неправ

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

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


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 11-Авг-09, 22:51 
>Определение новых опций допустимо только в последних версиях dhcpd
>
>у кого более старые
>option ortion-249 10:AC:10:0A:10:28:64

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Передача статических маршрутов в DHCP"  +/
Сообщение от freedom on 13-Авг-09, 17:35 
такое работает через dhcp inform, его умеет делать сам клиент MS.
Но нужна поддержка со стороны VPN сервера, он должен быть dhcp-relay для проброса пакета на dhcp-server.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Передача статических маршрутов в DHCP"  +/
Сообщение от freedom on 13-Авг-09, 17:36 
> такое работает через dhcp inform, его умеет делать сам клиент MS.
>
>Но нужна поддержка со стороны VPN сервера, он должен быть dhcp-relay для
>проброса пакета на dhcp-server.

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Передача статических маршрутов в DHCP"  +/
Сообщение от VecH email(ok) on 13-Авг-09, 17:39 
Ну это под офтопиком, не подходит
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "Передача статических маршрутов в DHCP"  +/
Сообщение от pavlinux (ok) on 26-Авг-09, 11:49 
И в ...дцатый раз спрошу -
Есть блейд серваки, 256 штук, все МАC одинаковые, кроме последних байт - 00:01:02:03:04:xx

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Передача статических маршрутов в DHCP"  +/
Сообщение от pavel_simple (ok) on 26-Авг-09, 12:14 
>И в ...дцатый раз спрошу -
>Есть блейд серваки, 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 выставить или вообще отдельный пул.

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Передача статических маршрутов в DHCP"  +/
Сообщение от pavel_simple (ok) on 26-Авг-09, 12:15 
>[оверквотинг удален]
>
>man 5 dhcp-eval
>в части
>
> substring (data-expr, offset, length)
>
>и в класс его , а там уже и параметры PXE/BOOTP выставить
>или вообще отдельный пул.
>
>готовое решение отсутствует.

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Передача статических маршрутов в DHCP"  +/
Сообщение от pavlinux (ok) on 26-Авг-09, 14:16 
>[оверквотинг удален]
>>разрешена PXE загрузка и адреса из сети 192.168.20.0/15!
>
>интересно...
>
>man 5 dhcp-eval в части
>
> substring (data-expr, offset, length)
>
>и в класс его , а там уже и параметры PXE/BOOTP выставить
>или вообще отдельный пул.

сейчас вот так...

class "allocation-class-1" {
       match pick-first-value(option dhcp-client-identifier, hardware);
}
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:22;
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:24;
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:36;
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:39;
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:9f;
    subclass "allocation-class-1" 1:0:10:f3:0b:0c:ba;
... итд

subnet 192.168.20.0 netmask 255.255.254.0 {

pool {
                allow members of "allocation-class-1";
                range dynamic-bootp 192.168.20.128 192.168.21.254;
                option routers 192.168.20.1;
                option broadcast-address 192.168.21.255;
                next-server 192.168.20.1;
                filename "pxelinux.0";
}

У меня уже 8-ая партия по 8-10 блейд-корзин, и каждый раз переписывать sub-class_ы достало.  


P.S.
Замена

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

на  

class "allocation-class-1" {
    match if option dhcp-vendor-identifier = "nxcm";  # (Nexcom)

#    match if dhcp-vendor-identifier = "nxcm";      
#    match option dhcp-vendor-identifier = "nxcm";  
#    match dhcp-vendor-identifier = "nxcm";        
}

не отрабатываются :(

Кстати, как и где отловить dhcp-vendor-identifier, tcpdump поможет?


А шаманские строки vendor-class-identifier и vendor-encapsulated-options
вообще не ясно с какой планеты

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Передача статических маршрутов в DHCP"  +/
Сообщение от pavlinux (ok) on 26-Авг-09, 14:37 
>[оверквотинг удален]
>
>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));
}

То же не пошло

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Передача статических маршрутов в DHCP"  +/
Сообщение от Игорь email(??) on 04-Дек-09, 13:40 
А как сделать, что бы шлюзом здесь отдавался тот самый 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

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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