Jump to content

Recommended Posts

Posted

Всем привет.

Не могу понять как правильно передать по DHCP маршрут до файлопомойки. Подскажите, пожалуйста.

Posted

Клиенты виндовые? Если виндовые (что скорее всего), то нужно юзать не 121ю а 249ю опцию. У мелкософта как всегда всё строго по своему. Суть та же что и в 121, только номер опции другой.

Posted (edited)
Просто для МТ в hex вроде как указывать надо. Этот момент не могу понять. Форум МТ читал.

например

option 249

0x18c0a800c0a80103

18h - 24, маска сети
кого роутим - c0a800h - 192.168.0
через что роутим - c0a80103h - 192.168.1.3

Edited by rsst
Posted (edited)

Для старых версий dhcpd тоже в hex. Например маршруты на серые подсети (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) через 192.168.0.1 выглядят так:

 

08:0a:c0:a8:00:01:0c:ac:10:c0:a8:00:01:10:c0:a8:c0:a8:00:01

Edited by RomanCh
Posted

Прошу прощенья - не могу догнать. Сделайте пожалуйста маршрут на 10.0.0.0/8 через 10.10.1.1.

А можно не указывать шлюз? Чтоб маршрут был через шлюз, который и будет получен через DHCP.

Posted
Прошу прощенья - не могу догнать
http://www.networksorcery.com/enp/rfc/rfc2132.txt - рекомендую почитать. Как уже говорил выше - всё точно так же исключая номер опции.
Сделайте пожалуйста маршрут на 10.0.0.0/8 через 10.10.1.1.
080a0a0a0101
А можно не указывать шлюз? Чтоб маршрут был через шлюз, который и будет получен через DHCP.
Не понял.
Posted

На будущее, скрипт для создания hex-строки с опцией 249:

#!/usr/bin/perl -w

use strict;

sub option_121 {
    my $gw = shift;
    my $out_str = '';
    my ($subnet, $mask, $b0, $b1, $b2, $b3);
    foreach my $cidr (@_) {
        ($subnet,  $mask) = split('/', $cidr);
        ($b0, $b1, $b2, $b3) = split(/\./, $subnet);
        $out_str .= sprintf('%02x', $mask);
        $out_str .= sprintf('%02x', $b0);
        $out_str .= sprintf('%02x', $b1) if($mask > 8);
        $out_str .= sprintf('%02x', $b2) if($mask > 16);
        $out_str .= sprintf('%02x', $b3) if($mask > 24);
        $out_str .= sprintf('%02x%02x%02x%02x', split(/\./, $gw));
    }
    return $out_str;
}

if(@ARGV < 2)
{
    print "Usage: $0 gw_ip subnet1/mask1 subnet2/mask2 ... subnetN/maskN\n";
}
elsif($ARGV[0] =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
{
    print "DHCP option 121 (249) hex string: ".option_121(@ARGV)."\n";
}
else
{
    print "Invalid gateway IP address: '$ARGV[0]'\n";
}

Posted

080a0a0a0101

При вот таком раскладе винда почему-то не получила настройки ДНС. Никто с такой траблой не сталкивался? Шлюз кстати тоже, но роут прописался.

Posted

Я вас что-то плохо понимаю:

1. DNS опция ни как не связана с выдачей безклассовых маршрутов.

2. Какой шлюз не выдался? По умолчанию? А он был в опциях?

3. Маршрут который "прописался" - правильно прописался?

 

Итого что от вас требуется:

1. Поставить в винду windump. Перед получением IP адреса запустить:

windump -i номер-интерфейса -nvs0 port 67

(список интерфейсов можно получить через windump -D)

Показать дамп - в идеале там 4 пакета должно быть. 2 от клиента и 2 от сервера.

2. route print с винды после получения адреса. Результат тоже показать.

 

Posted

По дефолту на сервере DHCP стоит выдача айпи из 10.10.1.0/24, шлюз 10.10.1.1, днс 10.10.1.1

Добавил опцию 249 - перестали выдаваться днс и шлюз.

Сейчас сделаю виндампом то что требуется.

Posted (edited)
04:08:50.506891 IP (tos 0x0, ttl 128, id 39099, offset 0, flags [none], proto: U
DP (17), length: 328) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
00:02:b3:b6:9a:7c, length 300, xid 0x93cc2d65, Flags [ none ]
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            NOAUTO Option 116, length 1: Y
            Client-ID Option 61, length 7: ether 00:02:b3:b6:9a:7c
            Requested-IP Option 50, length 4: 10.5.0.222
            Hostname Option 12, length 4: "LZIX"
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 11:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
              
              Static-Route, Option 249, Vendor-Option
04:08:51.022336 IP (tos 0x0, ttl  16, id 0, offset 0, flags [none], proto: UDP (
17), length: 328) 10.0.0.1.67 > 10.10.1.11.68: BOOTP/DHCP, Reply, length 300, xi
d 0x93cc2d65, Flags [ none ]
          Your-IP 10.10.1.11
          Server-IP 10.0.0.1
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Offer
            Server-ID Option 54, length 4: 10.0.0.1
            Lease-Time Option 51, length 4: 3600
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Default-Gateway Option 3, length 4: 10.10.1.1
            Domain-Name-Server Option 6, length 8: 10.10.1.1,10.10.1.1
            T249 Option 249, length 12: 808988769,811675745,808529969
04:08:51.022503 IP (tos 0x0, ttl 128, id 39128, offset 0, flags [none], proto: U
DP (17), length: 332) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from
00:02:b3:b6:9a:7c, length 304, xid 0x93cc2d65, Flags [ none ]
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request
            Client-ID Option 61, length 7: ether 00:02:b3:b6:9a:7c
            Requested-IP Option 50, length 4: 10.10.1.11
            Server-ID Option 54, length 4: 10.0.0.1
            Hostname Option 12, length 4: "LZIX"
            FQDN Option 81, length 8: "LZIX."
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 11:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
              
              Static-Route, Option 249, Vendor-Option
04:08:51.034328 IP (tos 0x0, ttl  16, id 0, offset 0, flags [none], proto: UDP (
17), length: 328) 10.0.0.1.67 > 10.10.1.11.68: BOOTP/DHCP, Reply, length 300, xi
d 0x93cc2d65, Flags [ none ]
          Your-IP 10.10.1.11
          Server-IP 10.0.0.1
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 10.0.0.1
            Lease-Time Option 51, length 4: 3600
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Default-Gateway Option 3, length 4: 10.10.1.1
            Domain-Name-Server Option 6, length 8: 10.10.1.1,10.10.1.1
            T249 Option 249, length 12: 808988769,811675745,808529969
04:08:54.035240 IP (tos 0x0, ttl 128, id 39132, offset 0, flags [none], proto: U
DP (17), length: 328) 10.10.1.11.68 > 10.0.0.1.67: BOOTP/DHCP, Request from 00:0
2:b3:b6:9a:7c, length 300, xid 0xd389fe0c, Flags [ none ]
          Client-IP 10.10.1.11
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request
            Client-ID Option 61, length 7: ether 00:02:b3:b6:9a:7c
            Hostname Option 12, length 4: "LZIX"
            FQDN Option 81, length 8: "LZIX."
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 11:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery

              Static-Route, Option 249, Vendor-Option
04:08:54.046816 IP (tos 0x0, ttl  16, id 0, offset 0, flags [none], proto: UDP (
17), length: 328) 10.0.0.1.67 > 10.10.1.11.68: BOOTP/DHCP, Reply, length 300, xi
d 0xd389fe0c, Flags [ none ]
          Client-IP 10.10.1.11
          Your-IP 10.10.1.11
          Server-IP 10.0.0.1
          Client-Ethernet-Address 00:02:b3:b6:9a:7c
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 10.0.0.1
            Lease-Time Option 51, length 4: 3600
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Default-Gateway Option 3, length 4: 10.10.1.1
            Domain-Name-Server Option 6, length 8: 10.10.1.1,10.10.1.1
            T249 Option 249, length 12: 808988769,811675745,808529969

Edited by L-ZiX
Posted (edited)
G:\Documents and Settings\Администратор>route PRINT
===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 1d 7d 96 c3 72 ...... Realtek RTL8169/8110 Family Gigabit Ethernet
NIC
0x10004 ...00 02 b3 b6 9a 7c ...... Intel® PRO/100 S рфряЄхЁ Ёрсюў*** ёЄюыр
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
         10.0.0.0        255.0.0.0       10.10.1.11      10.10.1.11       20
       10.10.1.11  255.255.255.255        127.0.0.1       127.0.0.1       20
   10.255.255.255  255.255.255.255       10.10.1.11      10.10.1.11       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
        224.0.0.0        240.0.0.0       10.10.1.11      10.10.1.11       20
  255.255.255.255  255.255.255.255       10.10.1.11           10003       1
  255.255.255.255  255.255.255.255       10.10.1.11      10.10.1.11       1
===========================================================================
Постоянные маршруты:
  Отсутствует

G:\Documents and Settings\Администратор>

Edited by L-ZiX
Posted (edited)

1. Не понятно зачем указывать 1 DNS сервер 2 раза?

Domain-Name-Server Option 6, length 8: 10.10.1.1,10.10.1.1

Уберите излишества.

2. Полагаю что проблемы с шлюзом по умолчанию вызываны не правильным форматом передачи 249й опции. Вот так:

T249 Option 249, length 12: 808988769,811675745,808529969

в дампе она выглядеть не должна. В зависимости от версии windump (tcpdump) она должна выглядить либо как строка шестнадцатиричных цифр (так же как в конфиге записана), либо вообще полностью декодированной:

Classless-Static-Route-Microsoft Option 249, length 85: (10.0.0.0/8:10.10.1.1)

3. Глядя в таблицу маршрутизации я вижу что ни какого маршрута у вас на деле не добавляется, что не удивительно.

 

Вывод - разбирайтесь с правильным форматом записи опции в вашем dhcp сервере.

Edited by RomanCh
  • 3 weeks later...
Posted

Подскажите кто пользуется несколькими опциями 249. Например у меня нужно выдавать 5 маршрутов, в закладке networks добавляю все опции, но работает только тот маршрут который первый, подскажите как заставить DHCP выдавать все маршруты

 

Mikrotik 3.20

Posted
Подскажите кто пользуется несколькими опциями 249. Например у меня нужно выдавать 5 маршрутов, в закладке networks добавляю все опции, но работает только тот маршрут который первый, подскажите как заставить DHCP выдавать все маршруты

 

Mikrotik 3.20

маршруты прописываются все в одной опции

Posted

В смысле в одной опции, есть 5 hex кодов разных маршрутов, мне их соединить в один hex код ?

да, все толпой

  • 3 years later...
Posted

Доброе время суток, уважаемые форумчане.

У меня по микротику возник страшнно глупый вопрос, но решить его сам не могу!(

Решил я попробовать у dhcp опцию 121. Но не могу понять как мне записать эту опцию. Нашел один рабочий пример на сайте микротика. Он работает - один микротик отдает по dhcp маршруты другому. Но! Пытаюсь написать свой пример - не получаеться. На всех форумах говорят, что тупо в hex через калькулятор переводишь. Но пробовал - ноль эмоций. Видимо не тупо. ПРобовал читать официальную документацию по опции 121, но в английском не селен( А там есть какая-то специфика.

Знаю только, что у тиков надо перед значением писать 0xи дальше уже в хекс пошло значение: суффикс, кого, куда.

Вот у меня возник вопрос как правильно перевести это дело в хекс.

 

Вот пример, dst-adress = 172.16.0.0/12 gw=192.168.23.1

перевел и получил это: 0x12AC100001C0A81701

Вписал опцию 121 - не получает другой тик маршруты и все. Включил логирование dhcp сервера и клиента - ничгео интересного не пишут( Хоть ошибку какую то написали бы..

В общем, очень прошу вашей помощи разобраться с этим.

Мне хотелось бы научиться самому переводить подсети и адреса в вид понятный микротику))

Пытался юзать всякие калькуляторы - тоже ничего не выходит.((

И как мне посчитать суффикс сети?

Почему у подсети /24 суффикс 18?

Пытался гуглить но про суффикс ничего. А при написании опции надо вроде как впереди после 0x указать суфикс а потом уже кого роутить.

Posted

не знаю как для микротика... Но вообще оно записывается так:

нам надо отдать маршрут 10.0.0.0/8 на 10.0.0.1. Получаем такую последовательность байт: 8,10,10,0,0,1

В вашем случае - 172.16.0.0/12 gw=192.168.23.1. Получаем такое: 12,172,16,192,168,23,1

вот теперь каждый байт переведите в hex, уберите запятые, добавьте 0x....

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 и с Политикой конфиденциальности.