Микротик, Бесклассовый Маршрут Dhcp

Бесклассовый маршрут DHCP , зачем это нужно? Наша компания использует VPN-решение на базе Тинкд .

В связи с тем, что простого способа запуститьtinc на Микротике я не нашел, было решено запустить VPN на отдельном сервере и использовать его как шлюз.

Первая попытка — прописать маршрут на роутере.

Пинги показали, что маршрутизатор отправлял сообщение о перенаправлении, и наблюдались задержки в сети.

При работе было ощущение, что установленное таким образом соединение тормозит. В качестве эксперимента я решил попробовать написать маршрут вручную на своем рабочем месте.

Это оказалось правильным решением — лаги исчезли, но эту операцию нужно было проделать на всех офисных машинах, а вбивать ее вручную не хотелось.

В связи с этим нам нужен был способ без особых усилий настроить статический маршрут на всех клиентах, получающих адрес по протоколу DHCP. Процесс поиска в Google привел меня к страница документации Микротика.

Всё понятно - нам поможет Бесклассовый маршрут DHCP .

Настройка относительно проста, но из-за этой относительности я потратил на ее настройку полдня.

При этом возникли проблемы с доступом к сети для хостов сети — на машинах с Windows исчез маршрут по умолчанию.

Еще одна сложность настройки Микротика заключается в том, что маршрут нужно вводить в шестнадцатеричном (или двоичном) виде, что меня немного смутило.

И некоторые нюансы не указаны в документации.

Этот вариант рассматривается в базовой версии.

А дальше как хотите)).

Пришлось немного углубиться в детали настройки.

Чтобы все хосты получали ваш маршрут, независимо от семейства операционных систем, нужно настроить 2 опции 121 И 249 .

Если бы все разработчики следовали RFC , тогда, возможно, жизнь сисадминов была бы гораздо более пресной и менее интересной.



Вариант 121
Вариант 121 , как и все другие параметры DHCP, описан в rfc3442 .

Этот документ диктует следующие правила и требования для 121 параметра: минимальная длина 5 байт. вы можете ввести один или несколько маршрутов каждый маршрут должен содержать сетевой адрес назначения и IP-адрес шлюза.

Согласно этому же документу схема маршрута будет выглядеть так:

Код Len Пункт назначения 1 Маршрутизатор 1 +-----+---+----+-----+----+----+----+----+----+ | 121 | п | d1 |… | дН | р1 | р2 | р3 | р4 | +-----+---+----+-----+----+----+----+----+----+ Назначение 2 Маршрутизатор 2 +----+-----+----+----+----+----+----+ | d1 |… | дН | р1 | р2 | р3 | р4 | +----+-----+----+----+----+----+----+
Чтобы правильно создать маршрут, необходимо преобразовать адрес сети назначения, маску подсети и адрес шлюза в шестнадцатеричный формат. Желающие потерпеть и улучшить свои личные навыки могут конвертировать в бинарный формат. Пример 1. Создадим строку маршрута для сети 10.0.0.0/ 24 через роутер 192.168.0.2 ЛЕН (маска подсети назначения) = 24 = 0x18 МЕСТО НАЗНАЧЕНИЯ = 10.0.0.0 = 0А 00 00 МАРШРУТИЗАТОР = 192.168.0.2 = с0 а8 00 02 Последняя строка: 0x180A0000c0a80002 добавляем маршрут в микротик: через винбокс

Микротик, бесклассовый маршрут DHCP

через консоль
опция /ip dhcp-сервера добавить код = 121 имя = opt_121_10 значение = 0x180A0000c0a80002 установить 0 dhcp-option=opt_121_10
Пример 2. Создадим строку маршрута для сети 10.0.0.0/ 8 через роутер 192.168.0.2 ЛЕН (маска подсети назначения) = 8 = 0x08 МЕСТО НАЗНАЧЕНИЯ = 10.0.0.0 = МАРШРУТИЗАТОР = 192.168.0.2 = с0 а8 00 02 Последняя строка: 0x080Ac0a80002 Пример 3. Создадим строку маршрута для сети 10.0.0.0/ 8 через роутер 192.168.0.2 ЛЕН (маска подсети назначения) = 29 = 0x19 МЕСТО НАЗНАЧЕНИЯ = 172.16.4.0 = AC100400 МАРШРУТИЗАТОР = 192.168.0.2 = AC10040001 Последняя строка: 0x19AC100400AC10040001 К 2 и 3 примерам картинки не прилагаю, потому что.

на самом роутере настройте идентично примеру 1. Мы очень легко можем столкнуться с внезапным отключением клиентов из-за одного маленького нюанса.

Если вы неправильно ввели адрес подсети.

Очень легко ошибиться.

Чтобы этого избежать, нужно запомнить теорию и применить ее на практике.

Давайте вспомним.

Есть адрес и маска подсети.

Адрес разделен на две части — сетевую и хостовую.

Маска подсети указывает, сколько первых бит адреса принадлежит сетевой части.

Соответственно, оставшаяся часть адреса указывает на хост. Если нам нужен маршрут до сети с 24-битной маской, то нам нужны первые 3 октета адреса сети пункт назначения (Пример 1) Если нам нужен маршрут до сети с 8-битной маской, то нам нужен только 1-й октет адреса сети пункт назначения (Пример 2) Если нам нужен маршрут до сети с 25-битной маской, то здесь нужно будет указать все октеты (Пример 3)

Вариант 249
На страница википедии есть описание DHCP связь к общепринятым параметрам DHCP. Опция 249 предназначена для частного использования.

Я не знаю, почему мои тихие товарищи придерживаются взгляды товарища Ленина , но следуют за ними довольно фанатично.

Несмотря на наличие RFC3442, Microsoft решила получать маршрут на своих клиентах, используя опцию 249. На Микротике эта опция настраивается аналогично опции 121. 0x[ маска подсети назначения ][ адрес назначения ][ адрес шлюза ] Если у вас возникли проблемы с настройкой Windows-машин, попробуйте воспользоваться советом под спойлером.

0x[ маска подсети назначения ][ адрес назначения ][ адрес шлюза ] 00[ адрес шлюза ] Добавьте в строку еще раз 00 и адрес роутера.

Я не понимаю, почему это работает. Путем эмпирических исследований предложенное решение было найдено.

В дальнейшем у меня вариант работал без этого костыля.



Несколько маршрутов в одной строке
К сожалению, в документации на сайте Микротика нет примера, как правильно настроить несколько маршрутов.

На помощь нам приходит RFC3442, в котором содержится замечательная схема создания нескольких маршрутов, которая приведена выше.

Добавьте к первому маршруту второй маршрут без 0x. Пример два маршрута 10.0.0.0/8 и 172.16.4.0/24 через шлюз 192.168.0.2 в одну строку будут выглядеть так:

0x 08 0Ac0a80002 18 AC100Bc0a80002
Маски подсети выделены жирным шрифтом.

Надеюсь, что эта информация будет кому-то полезна.

PS: Замечания и предложения просьба присылать в личное сообщение.

УПД: товарищ орловдль набросал функцию Python для преобразования блока адресов в шестнадцатеричный формат. УПД: товарищ пуфег предложенный:

Я бы обратил внимание на эту фразу в RFC3442: Администраторы DHCP-сервера [.

] должны указать маршрутизатор(ы) по умолчанию как в параметре «Маршрутизатор», так и в параметре «Бесклассовые статические маршруты».

Во всех ваших примерах опция 121 не имеет маршрута по умолчанию.

То есть в обе строки в конце лучше добавить 00c0a80001 (0.0.0.0/0 через 192.168.0.1).

Теги: #Сетевые технологии #Системное администрирование #mikrotik #бесклассовый маршрут dhcp
Вместе с данным постом часто просматривают: