Бесклассовый маршрут 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 добавляем маршрут в микротик: через винбокс
через консоль
опция /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 = 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-сервера [.Теги: #Сетевые технологии #Системное администрирование #mikrotik #бесклассовый маршрут dhcp] должны указать маршрутизатор(ы) по умолчанию как в параметре «Маршрутизатор», так и в параметре «Бесклассовые статические маршруты».
Во всех ваших примерах опция 121 не имеет маршрута по умолчанию.
То есть в обе строки в конце лучше добавить 00c0a80001 (0.0.0.0/0 через 192.168.0.1).
-
Kernel.org Снова В Сети
19 Oct, 24 -
Банки Начали Блокировать Счета Фрилансеров
19 Oct, 24 -
Стажировка Для Нетипичных Программистов
19 Oct, 24 -
Самая Маленькая Ручка Для Фотоаппарата
19 Oct, 24