- Настройка выдачи статических маршрутов по DHCP (DHCP Classless Route, Option 249, Option 121)
- Настройка выдачи статических маршрутов по DHCP для клиентов Windows (DHCP Classless Route, Option 249)
- Настройка выдачи статических маршрутов по DHCP для всех остальных (DHCP Classless Route, Option 121)
- Создание группы (Option Sets) из нескольких DHCP Option
- Windows dhcp статический маршрут
- Статический маршрут по DHCP option
- Mikrotik, DHCP Classless Route
- Windows dhcp статический маршрут
Настройка выдачи статических маршрутов по DHCP (DHCP Classless Route, Option 249, Option 121)
Одна из первых статей, написанных про настройку Микротик RouterOS
Статья и настройки обновлены для актуальных версих MikroTik RouterOS 6.xx и выше
Настройка выдачи статических маршрутов по DHCP для клиентов Windows (DHCP Classless Route, Option 249)
Дано: клиент, получающий адрес посредством DHCP, подключение к Интернет — посредством VPN (ip-адрес клиента 172.12.0.18, ip-адрес сервера(шлюз) 172.12.0.1; ряд ресурсов интернета должны быть доступны без поднятия vpn-соединения.
Ситуация: Клиент получает, допустим, адрес 192.168.130.18/24, шлюз 192.168.130.254, днс 192.168.130.254 — всё это достаточно легко настраивается через winbox и вопросов возникнуть не должно. Есть сайт http://maxigame.by/ (81.25.32.44) — который провайдер сделал доступным по локальной сети без поднятия vpn-подключения. Пока не поднято vpn-соединение — всё чудесно — доступ к сайту происходит через шлюз по умолчанию 192.168.130.254, но стоит поднять vpn-соединение — адрес шлюза по-умолчанию сменится на 172.12.0.1 — и сайт будет уже доступен не через локальную сеть, а через Интернет. Соответствено — списываются денежки.
Решение 1 (простое, правильное, трудновнедряемое): Каждый клиент прописывает у себя статический маршрут к данному сайту. Ужас провайдера и страшный сон техподдержки, особенно если подсетей не одна, и не две, а сайтов гораздо больше.
Решение 2 (сложнее, правильное, легковнедряемое): Внимательнее расмотрим настройку DHCP Network
Нас интересует DHCP Options.
Немного теории — для передачи статических маршрутов в DHCP сервере микротика используется опция с кодом 249 (для клиентов под управлением Windows). Синтаксис строки для данной опции (все значения в 16-ричной системе HEX) :
Наш конкретный пример:
Все последующие маршруты дописываются без пробелов справа по тем же правилам. Теперь о настройке. Переходим на закладку Options, нажимаем «плюс» — появится окно «New DHCP Option» Настраиваем поля:
Name (название опции): Opt_249_net130 название может быть любым, я использовал конструкцию из Opt[ion]_[249]_net[адрес подсети]130
Code: 249 Value: 0x205119202СC0A882FE
На закладке Networks, в настройке DHCP Network — выбираем для DHCP Option нашу опцию Opt_249_net130
Результат: Теперь при получении адреса от DHCP-сервера в таблице маршрутов клиента появится маршрут к maxigame.by (81.25.32.44), и доступ к данному сайту всегда будет через указанный вами шлюз вне зависимости от того, поднято vpn-соединение или нет.
Пример 2: условия те же, но добавим еще сеть 10.9.0.0/16 через шлюз 192.168.130.254
Итоговая конструкция:
Именно так — без пробелов. Для понимания две конструкции рядом 1-ая и 2-ая:
Настройка выдачи статических маршрутов по DHCP для всех остальных (DHCP Classless Route, Option 121)
Предыдущая часть статьи предназначена для клиентов работающих на Windows. Для всех остальных мы используем для передачи статических маршрутов в DHCP сервере MikroTik опцию с кодом 121. Настройки аналогичны как и для Option 249, за одним исключением — в итоговую конструкцию для Option 121 необходимо еще добавить шлюз по-умолчанию 00C0A882FE (0.0.0.0/0 — шлюз 192.168.130.254):
Name (название опции): Opt_121_net130
Code: 121 Value: 0x205119202СC0A882FE00C0A882FE
Итоговая конструкция:
Создание группы (Option Sets) из нескольких DHCP Option
Т.к. нам неизвестно, какие клиенты у нас будут подключаться и получать адреса от нашего DHCP-сервера MikroTik — нам необходимо передавать оба параметра DHCP Options нашим клиентам — и Opt_249_net130 и Opt_121_net130. В этом нам поможет Option Sets:
Переходим на закладку Option Sets, нажимаем «плюс» — появится окно «DHCP Option Set» Настраиваем поля:
Name (название группы опций): set_net130
Options Выбираем из списка последовательно ранее созданные нами опции — Opt_249_net130 и Opt_121_net130
На закладке Networks, в настройке DHCP Network — выбираем для DHCP Option Set нашу группу опций set_net130
Windows dhcp статический маршрут
Бесплатный чек-лист
по настройке RouterOS
на 28 пунктов
Статический маршрут по DHCP option
Доброго времени суток.
Рабочая станция: Windows 7,10
DHCP сервер: MikroTik RB951
Ситуация такого, есть два шлюза в сети. DHCP раздаёт шлюз по умолчанию 1.1.1.1. Есть один IP адрес (192.168.2.10), который должен быть доступен через шлюз 1.1.1.2.
Настроил Option 249 и отправил по DHCP статический маршрут на 192.168.2.10 через шлюз 1.1.1.2.
На рабочей станции под управлением Windows 10 в командной строке задал команду route print и в списке маршрутов, статический маршрут на адрес 192.168.2.10 имеет более высокую метрику 21, чем шлюз по умолчанию 20, в связи с чем адрес 192.168.2.10 всё ещё недоступен. Как сделать так, чтобы метрика маршрута раздаваемый по DHCP option 249 стал меньше чем у основного шлюза в таблицах маршрутизации?
Ничего не понятно.
Если вам нужно добавить маршрут на сеть 192.168.2.х/24 через 1.1.1.2, просто добавьте этот маршрут в IP.Routes.
Если нужно не на всю сеть, а на один хост 192.168.2.10, то сделайте маршрут на хост (или сеть 192.168.2.10/32) через 1.1.1.2.
Зачем вы маршруты через DHCP добавляете?
Ничего не понятно.
Если вам нужно добавить маршрут на сеть 192.168.2.х/24 через 1.1.1.2, просто добавьте этот маршрут в IP.Routes.
Если нужно не на всю сеть, а на один хост 192.168.2.10, то сделайте маршрут на хост (или сеть 192.168.2.10/32) через 1.1.1.2.
Зачем вы маршруты через DHCP добавляете?
Схема во вложение.
Дело в том, что в сети 150 хостов, у которых маршрут по умолчанию 1.1.1.1. Хост 192.168.2.10 доступен только через шлюз 1.1.1.2. Поэтому нужно, чтобы все 150 хоста смогли видеть этот хост. Вручную это можно сделать (route add 192.168.2.10 mask 255.255.255.255 ), но это неудобно добавить на каждый компьютер вручную.
Поэтому хочу сделать это автоматом через DHCP options. У меня уже получилось, маршрут который отправляю по DHCP хостам, в таблице маршрутизации оно появляется у хостов, но из за того что метрика у неё больше чем у шлюза по умолчанию, хост всё ещё недоступен.
option не передает метрику. https://docs.microsoft.com/en-us/opensp . 0fc523f3f9
Но если у хоста в таблице есть только один маршрут до нужной сети, то метрика значения не имеет.
Дефолтный маршрут используется, если нет других.
У вас скорее всего не в метрике дело.
Например, MS пишет, что эта опция применима только для XP и Server 2003 в качестве клиентов.
https://docs.microsoft.com/en-us/opensp . endix_A_16
А у вас win 7 и 10.
Попробуйте для них 121 опцию.
Ни меня, ни Erik_U‘а — Вы не слышите, и делаете не совсем правильно в рамках сети.
Вы хотите каждому компу, а может и принтеру, и смартфону (если есть) сообщать где искать отдельный
хост, но зачем, когда в сети есть роутер?
Вам было бы приятно, если бы сосед по дому, каждый раз Вас оповещал что он убрался на кухне?
Вот захотите, Вы найдёте кто у него убрался, какая фирма, и прочее, обратившись в поисковик.
Так и тут, Вы заставляете хосты обрабатывать маршруты, при «живом» роутере.
Erik_U прав, да и я в таком же русле дал Вам намёк, сделайте маршрутизацию на роутере,
и любой компьютер сразу же, без рассылки маршрутизации по сети будет знать.
Есть сетевые моменты и правила, стандарты, надо их придерживаться.
Mikrotik, DHCP Classless Route
DHCP Classless Route, зачем он нужен?
У нас в компании для VPN используется решение на tincd. Из-за того, что на Mikrotik я не нашёл простого способа запустить tinc, было решено запускать VPN на отдельном сервере и использовать его как шлюз. Первая попытка — прописать маршрут на маршрутизаторе. По пингам было видно, что маршрутизатор присылает сообщение о редиректе, при этом наблюдались сетевые лаги. При работе создавалось ощущение, что соединение, установленные таким образом, подтормаживает.
В качестве эксперимента решил попробовать на своём рабочем месте прописать маршрут руками. Это оказалось правильным решением — лаги пропали, но данную операцию нужно было проделать на всех машинах офиса, а руками вбивать как то не хотелось. В связи с этим понадобился способ, без особого напряжения, настраивать статический маршрут, на всех клиентах, получающих адрес по DHCP протоколу.
Процесс гугления привёл меня на страницу документации Mikrotika. Всё ясно — нам поможет DHCP Classless Route. Настройка относительно легка, но вот из-за этой относительности убил на настройку пол дня. При этом возникали проблемы с сетевым доступом у хостов сети — у Windows машин пропадал маршрут по умолчанию.
Ещё одна сложность настройки Mikrotik заключается в том, что нужно вводить маршрут в шестнадцатеричном (либо в двоичном) виде, что меня слегка сбило с толку. Да и в документации некоторые нюансы не указаны. Данная опция рассмотрена в базовом варианте. А дальше как хотите )). Пришлось немного углубиться в подробности настройки.
Для того что бы у вас маршрут получили все хосты, независимо от семейства операционной системы нужно настроить 2 опции 121 и 249. Если бы все разработчики следовали бы RFC , то возможно жизнь системных администраторов была бы гораздо преснее и менее интересной.
Опция 121
Для того что бы правильно составить маршрут нужно перевести адрес сети назначения, маску подсети и адрес шлюза в шестнадцатеричный формат. Желающие пострадатьповысить личный скилл могут переводить в двоичный формат.
Пример 1.
/ip dhcp-server option
add code=121 name=opt_121_10 value=0x180A0000c0a80002
set 0 dhcp-option=opt_121_10
Пример 2.
Пример 3.
Составим строку маршрута для сети 10.0.0.0/8 через маршрутизатор 192.168.0.2
LEN (маска подсети назначения) = 29 = 0x19
DESTINATION = 172.16.4.0 = AC100400
ROUTER = 192.168.0.2 = AC10040001
Итоговая строчка: 0x19AC100400AC10040001
Картинки ко 2 им 3 примерам не прикладываю, т.к. на самом маршрутизаторе настраивать идентично примеру 1.
Если вы некорректно укажете адрес подсети. Ошибку сделать очень легко. Что бы избежать этого нужно вспомнить теорию и применить её на практике.
Давайте вспомним. Есть адрес и маска подсети. Адрес делят на две части — сетевую и хостовую.
Маска подсети указывает сколько первых бит адреса относится к сетевой части. Соответственно, оставшаяся часть адреса, указывает на хостовую.
Если нам нужен маршруте к сети с маской 24 бита, то нам нужны первые 3 октета адреса сети назначения (Пример 1)
Если нам нужен маршруте к сети с маской 8 бит, то нам нужен, всего лишь, 1-й октет адреса сети назначения (Пример 2)
Если нам нужен маршруте к сети с маской 25 бит, то тут нужно будет указывать все октеты (Пример 3)
Опция 249
Несколько маршрутов одной строкой
жирным выделил маски подсетей
Надеюсь что данная информация будет кому то полезной.
PS: Прошу замечания и предложения направлять в личку.
UPD:
товарищ orlovdl набросал python функцию для перевода блока адресов в Hex формат.
Я бы обратил внимание на эту фразу в RFC3442:
DHCP server administrators [. ] should specify the default router(s) both in the Router option and in the Classless Static Routes option.
Во всех ваших примерах в опции 121 маршрут по умолчанию отсутствует. То есть к обоим строчкам лучше в конце дописать 00c0a80001 (0.0.0.0/0 via 192.168.0.1).
Windows dhcp статический маршрут
Может ли DHCP сервер передавать статические маршруты?
если да то покажите пример конфига для
# dhcpd3 —version
isc-dhcpd-V3.0.6
DHCP клиенты в Windows XP/Vista и т.д. смогут эти маршруты подхватывать?
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от Andrey Mitrofanov on 04-Дек-08, 19:47 | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
4. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от Pahanivo | ||
))) поясните мне смысл наличия двух и более default gateways ) | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
5. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от daevy on 05-Дек-08, 08:54 | ||
разве была речь о дефолт гейтвэях. да можно задавать статические маршруты, в виндовом dhcp-сервере от MS есть такая функция | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
7. «-« | + / – | |
Сообщение от Andrey Mitrofanov on 05-Дек-08, 09:56 | ||
google.ru | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
8. «-« | + / – | |
Сообщение от Pahanivo | ||
Для особо одаренных пиплов заострю внимание на том — что речь именно о default gateway. | ||
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору |
9. «-« | + / – | |
Сообщение от Andrey Mitrofanov on 05-Дек-08, 15:16 | ||
Как особоодарённый притупляю: | ||
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору |
10. «-« | + / – | |
Сообщение от Pahanivo | ||
Как вы вообще понимаете default gateway? | ||
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору |
11. » -« | + / – | |
Сообщение от Andrey Mitrofanov on 05-Дек-08, 16:29 | ||
| ||
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору |
12. » -« | + / – | |
Сообщение от Pahanivo | ||
И каким ,jrjv в policy based routing и multi path routing появился default gateway (route)? | ||
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору |
2. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от set | ||
host user < | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
3. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от set | ||
# Usage: $len = 2; print make_classless_option( < | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
6. «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от VecH | ||
в потом в секции subnet или host прописывать: | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
13 . «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от Игорь | ||
А как сделать, что бы шлюзом здесь отдавался тот самый ip-шник, который назначен клиенту? PS Если бы удалось передать маршрут: то проблема бы была решена. | ||
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору |
14 . «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от shim on 13-Янв-10, 00:43 | ||
Даже если вы передадите маршрут с метрикой 1 это вам ничего не даст, при поднятии любого ppp соединения в «смой популярной ОС» ему автоматически будет присвоена метрика 1, решить проблему можно только физическим рисование метрики 2 ppp соединению. Метод жизнеспособен до пересоздания ppp соединения (пересоздание это не инициация-разрыв соединения). | ||
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору |
15 . «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от Игорь | ||
Но есть предположение, что из-за того, что мы передадим меньшую подсеть (255.255.255.0), чем подсеть, которая автоматом появиться в «самой популярной ОС» 240.0.0.0, то все таки оно пойдет туда, куда надо. Хотя, конечно, лучшим вариантом был бы патч «самой популярной ОС», который отменял бы поднятие маршрута мультикаста при поднятии PPP 224.0.0.0/240.0.0.0 | ||
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору |
16 . «DHCP + передача маршрутов клиентам» | + / – | |
Сообщение от lxsv | ||
Может стоит морспецифики передать по DHCP и маршруты станут приоритетнее чем в PPP |