Mikrotik DHCP Routes options 121 and 249: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 44: | Строка 44: | ||
</PRE> |
</PRE> |
||
На человеческом это значит что нужно кроме всех маршрутов в опциях выдавать еще и дефолт |
На человеческом это значит что нужно кроме всех маршрутов в опциях выдавать еще и дефолт |
||
+ | <BR> |
||
+ | Тут конечно мало что понятно - попробую привести пример |
||
+ | * маршрут 10.20.0.0/16 через шлюз 1.0.0.1 |
||
+ | * Маски и адреса подобраны такими намеренно - что бы показать когда нули отбрасываются а когда нет |
||
+ | |||
+ | |||
+ | * Маска dec(16) => 0x10 - маска будет 10, причем в маске все знаки - значащие, для маски /8 значение будет 0x08 а не 0x8 |
||
+ | * Адрес сети 10.20.0.0 |
||
+ | ** последние 2 октета тут не значащие (они относятся к адресу хоста а не адресу сети, и это опредеяется по маске, и они отбрасываются |
||
+ | ** dec(10) = 0x0A - так же как для маски, на каждый октет отводится строго два разряда |
||
+ | ** dec(20) = 0x14 - тут вопрос разрядности не возникает |
||
+ | ** итоговое значение которое нужно записать в опцию <code>0a 14</code> |
Версия 12:27, 16 августа 2024
Mikrotik, DHCP Classless Route
TL;DR
Микротик умеет выдавать маршруты по dhcp хотя конфигуриться это через жопу
Зачем это может быть нужно
Ебучий корпоративный впн разворачивает в себя дефолт, и все хосты в домашней сети кроме L2-connected становятся недоступны. Настройки ВПНа на серверной стороне мне не доступны (и не факт что это убожество умеет нужные фичи)
Соответвенно есть 2 решения и оба они гребаные костыли:
- прописывать маршруты локально каждый раз при поднятии ВПНа (скриптом например)
- выдавать маршруты с dhcp (они будут работать так как за счет более узкой маски будут предпочтительнее чем default)
Как это настроить на микротике
Эта задача разделяется на 2 части
- Сформировать правильно значение опций
- Прописать на микротике
Option 121 и 249
Для устройств с разной реализацией DHCP клиента нужны 2 разные опции (винда/все остальные) но так как формат одинаковый то сложности тут немного
Формат опций 121 и 249
Опция 121, как и все остальные DHCP опции, описана в rfc3442. Этот документ диктует следующие правила и требования к 121 параметру:
- минимальная длина 5 байт.
- можно вписать один или более маршрутов
- каждый из маршрутов должен содержать Адрес сети назначения и IP адрес шлюза.
Согласно этого же документа схема маршрута будет выглядеть так:
Code Len Destination 1 Router 1 +-----+---+----+-----+----+----+----+----+----+ | 121 | n | d1 | ... | dN | r1 | r2 | r3 | r4 | +-----+---+----+-----+----+----+----+----+----+ Destination 2 Router 2 +----+-----+----+----+----+----+----+ | d1 | ... | dN | r1 | r2 | r3 | r4 | +----+-----+----+----+----+----+----+
Цитата:
DHCP server administrators [...] should specify the default router(s) both in the Router option and in the Classless Static Routes option.
На человеческом это значит что нужно кроме всех маршрутов в опциях выдавать еще и дефолт
Тут конечно мало что понятно - попробую привести пример
- маршрут 10.20.0.0/16 через шлюз 1.0.0.1
- Маски и адреса подобраны такими намеренно - что бы показать когда нули отбрасываются а когда нет
- Маска dec(16) => 0x10 - маска будет 10, причем в маске все знаки - значащие, для маски /8 значение будет 0x08 а не 0x8
- Адрес сети 10.20.0.0
- последние 2 октета тут не значащие (они относятся к адресу хоста а не адресу сети, и это опредеяется по маске, и они отбрасываются
- dec(10) = 0x0A - так же как для маски, на каждый октет отводится строго два разряда
- dec(20) = 0x14 - тут вопрос разрядности не возникает
- итоговое значение которое нужно записать в опцию
0a 14