Address list в статические маршруты

Обсуждение ПО и его настройки
koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

Добрый день!
В скриптах опыта нет.
Но возникла следующая необходимость.
Необходимо добавлять в ip firewall address-list любой домен допустим mail.ru с именем листа vpn.
Там соответственно появляются динамические записи с именем vpn
ip firewall/address-list/print where list=vpn
Flags: D - DYNAMIC
Columns: LIST, ADDRESS, CREATION-TIME
# LIST ADDRESS CREATION-TIME
0 vpn mail.ru 2024-12-24 15:42:29
;;; mail.ru
1 D vpn 94.100.180.201 2024-12-24 15:42:29
;;; mail.ru
2 D vpn 94.100.180.200 2024-12-24 15:42:29
;;; mail.ru
3 D vpn 217.69.139.202 2024-12-24 15:42:29
;;; mail.ru
4 D vpn 217.69.139.200 2024-12-24 15:42:29
Соответственно нужно эти адреса добавить в статические маршруты с коментом vpn следующим образом
/ip/route/add gateway=10.20.30.1 dst-address=94.100.180.201 comment=vpn
/ip/route/add gateway=10.20.30.1 dst-address=94.100.180.200 comment=vpn
/ip/route/add gateway=10.20.30.1 dst-address=217.69.139.202 comment=vpn
/ip/route/add gateway=10.20.30.1 dst-address=217.69.139.200 comment=vpn

История с манглом и адрес листом не подходит. Так как на сети живет ospf и на текущем маршрутизаторе редистрибьюция статик роутов.

Вот что-то такое насобиралось в сети, но не работает
:foreach item in=[/ip/firewall/address-list find list=vpn] do={:put [/ip/firewall/address-list get $itemaddress]}
/ip/route/add gateway=10.20.30.1 dst-address="$itemaddress" comment=vpn


svetogor82
Сообщения: 207
Зарегистрирован: 17 апр 2014, 10:44

по пробуйте так сделать

Код: Выделить всё

  /ip firewall mangle
add action=add-dst-to-address-list address-list=vpn address-list-timeout=1h chain=prerouting disabled=yes protocol=tcp tls-host=*.mail.ru
 


koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

Добрый день!
Задача не с фаерволом.
А как вытащить переменные D из ip/firewall/address-list/ в /ip/route/.


koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

Пока получилось в файл выгрузить

/ip/route/remove [find comment=vpn]
/file remove [find name~"bkp/test.txt"]
{
:local addrs [:toarray ""]
/ip/firewall/address-list
:foreach id in=[find list=vpn] do={
:set addrs {$addrs , [get $id address]}
}
/file add name="/bkp/test.txt" contents=$addrs
}


Получается такой текстовик
mail.ru;94.100.180.200;217.69.139.202;94.100.180.201;217.69.139.200

Теперь нужно как то надергать айпи из этого файла в маршруты


koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

либо минуя выгрузки в файл сразу айпи надергать из addrs в роуты


Аватара пользователя
podarok66
Модератор
Сообщения: 4402
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

koprodig456 писал(а): 03 янв 2025, 03:15 либо минуя выгрузки в файл сразу айпи надергать из addrs в роуты
Да как обычно это и ранее делалось. На всех ресурсах давно расписано. Что-то типа

Код: Выделить всё

:foreach i in=[/ip firewall address-list find dynamic list=Zapret] do={:local ards [/ip firewall address-list get $i address ]; :put $ards;}
Если команду :put $ards заменить на ту, которая переменную $ards отправит в нужный вам роут, то ваша задача будет выполнена. А вот как маршруты командой из CLI сделать динамическими я затрудняюсь ответить. А без этого там столько мусора выползет, что ОЙ!


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Erik_U
Сообщения: 1995
Зарегистрирован: 09 июл 2014, 12:33

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

Возможно такое решение.
Сделать вторую таблицу маршрутизации. С другим дефолт гейтвеем. На которую не влияет OSPF (в настройках инстанса OSPF выбрать таблицу майн).
И для динамического адреслиста менять таблицу прероутингом.


koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

Erik_U писал(а): 06 янв 2025, 08:10 На которую не влияет OSPF
Доброе утро!
Вся задумка как раз таки чтобы редистрибьютить это соседям по оспф.
Популярный вариант с той же маркировкой трафика+адресс листы не подходит по тому что надо это делать на каждом маршрутизаторе.
А тут задача на масштаб - на одном маршрутизаторе отредестрибьютить статику, тем самым опевестив всех соседей, что за данными ресурсами идите ко мне.


Erik_U
Сообщения: 1995
Зарегистрирован: 09 июл 2014, 12:33

Достаточно иметь эти маршруты на граничном маршрутизаторе с дефолтгейтвеем. Чтобы он поворачивал эти пакеты в сторону от.
На остальных достаточно наличия дефолтного маршрута.


koprodig456
Сообщения: 14
Зарегистрирован: 12 апр 2023, 17:20

Неверное утверждение для моей схемы.
У каждого маршрутизатора свой дефолт.
И также между всеми поднят OSPF. И определенные пулы адресов анонсируются на одном.
Сейчас это собрано большими диапазонами.
Но это не удобно и требует постоянного контроля, так как некоторые ресурсы меняют адресацию.
Поэтому и родилась идея раз в день, к примеру стирать статит роуты с меткой впн,и заливать актуальные адреса из адрес листов,а адрес листы соотве́тственно актуализируются сами.


Ответить