Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » MikroTik RouterOS (часть 5)

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109

Открыть новую тему     Написать ответ в эту тему

Germanus



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Предыдущие части темы: часть 1, часть 2, часть 3, часть 4
Официальный сайт: https://mikrotik.com
 
Данная тема создана для обмена информацией по вопросам и проблемам настройки MikroTik RouterOS
Тема в варезнике
 
актуальные версии RouterOS:
Stable: 7.14.3 Подробнее... Testing: 7.15rc2
Stable: 6.49.14 Long-term: 6.49.13

актуальная версия SwitchOS: 2.17
актуальная версия WinBox: 3.40 32/64-bit Подробнее...

 
Mikrotik — Плюсы и минусы Подробнее...
Видео-экскурсия по заводу Mikrotik Ltd


FAQ по особенностям и тонкостям MikroTik RouterOS  Перейти



Официальная документация:
  • Англоязычный ОФИЦИАЛЬНЫЙ мануал
  • Алфавитный указатель
  • Официальные статьи пользователей RouterOS
  • для версии 3 http://www.mikrotik.com/testdocs/ros/3.0/
  • для версии 2.9 http://www.mikrotik.com/docs/ros/2.9/
  • RouterOS Packet Flow: http://wiki.mikrotik.com/wiki/Packet_Flow (важно знать для понимания сути происходящего в файрволе и шейпере)
  • Совместимое оборудование
  • Описание изменений в новых версиях RouterOS(+rc)
  • RouterBOOT changelog (изменения в boot-версиях загрузчика RouterOS)
  • Система управления пользователями встроенная в RouterOS (RADIUS server)
  • l7-protos.rsc (примеры L7-filter)


    Официальные ресурсы:
    Форум
    Демо-сайт с веб-интерфейсом системы №1        Подробнее...
    Демо-сайт с веб-интерфейсом системы №2        Подробнее...
    MikroTik User Meeting(Конференции пользователей Mikrotik)        Подробнее...
    "Хардварные решения"
    MikroTik News
    MikroTik related video service
    DESIGNS.MIKROTIK.COM - сервис для брендирования продукции Mikrotik.
    Twitter Mikrotik
    MikroTik Training (Хочешь на тренинг? Получить сертификат?)
    Предыдущие версии RouterOS Подробнее...    История релизов  Подробнее...
    Mikrotik Wireless Link Calculator


    Неофициальная русскоязычная документация    Перейти
    Обсуждение ROS(форумы)    Перейти
    Обзоры продуктов RouterBOARD    Перейти


    Русскоязычные ресурсы интернет-магазинов и блоггеров по настройке и тонкостям Mikrotik:  
     


     

     

     
       


     

     
         
     
     
         
     
     
         
     
     
     



    Смежные ресурсы    Перейти
     
    VPN + OSPF в картинках.
    MikroTik Config Parser
    mikrotik.vetriks.ru

    // текущий бэкап шапки..

  • Всего записей: 4420 | Зарегистр. 08-06-2003 | Отправлено: 11:02 07-03-2019 | Исправлено: alexnov66, 10:50 25-04-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    в винбоксе вставляется как выше сказано примерно 29 кб

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

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 03:55 22-01-2024 | Исправлено: DenSyo, 04:00 22-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DenSyo
    сейчас пробовал действительно через web интерфейс вставляется примерно 62-63 кб, а через винбокс только примерно 29 кб
    оператива тут ни причём, 64 кб ограничение.

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 08:34 22-01-2024 | Исправлено: alexnov66, 08:37 22-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скрипт любого размера можно сохранить как файл .rsc и выполнить командой

    Код:
    import file=script_file.rsc

    Есть ряд ограничений на выполнение действий при таком запуске, не всё работает, надо разбираться что к чему, но, по крайней мере, глобальные переменные инициализированные в таком скрипте потом доступны с присвоенными им значениями. Собственно, файл конфигурации представляет из себя такой же файл со скриптом, вполне как вариант для запуска скрипта начальной настройки устройства.
     
    Увидел у alexnov66 региональную базу адресов и, наконец, сподвигло это на эксперименты. Загрузил целиком базу по странам ip2location.DB1 - 316089 адресов. На страницу файрволла с адресами, по крайней мере, в веб интерфейсе, заходить не надо - интерфейсу плохеет и он падает. Но в консоли и в скриптах всё норм, без изменений. База съедает около 170мб оперативной памяти. Для поиска адресов в базах такого размера написал на днях скрипт, сейчас протестировал собирая массив поиска по отдельно взятой стране (по всем сразу в текущей реализации скрипта он не имеет смысла, и остаётся вопрос, хватит ли системы на массив такого размера) - поиск быстрее, чем стандартными средствами.

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 11:27 22-01-2024 | Исправлено: DenSyo, 12:49 22-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скомпилировал вчера полученные знания в концепт работы с большими базами адресов без использования списков файрволла - прям то, что надо, не захламляет память и не грузит проц на правилах использующих списки адресов.
    https://forum.mikrotik.com/viewtopic.php?t=40507#p1050902

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 06:49 23-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Глюк на версии 7.13.2 во всех разделах ip firewall версии ipv6, нет вкладок src-address-list dst-address-list

    отправил микротиковцам.

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 13:27 23-01-2024 | Исправлено: alexnov66, 03:46 05-04-2024
    fly_indiz



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexnov66
    А что мешает справа стрелочку нажать
    Show Columns...
    и выбрать нужные колонки для отображения под собственное удобство?
     
    Всё есть.

    Всего записей: 2620 | Зарегистр. 28-04-2006 | Отправлено: 13:53 23-01-2024 | Исправлено: fly_indiz, 14:01 23-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    fly_indiz
    я туда никогда и не смотрел, обычно всё показывалось сразу, а на 7.13.2 пропали
    в место стрелочки надо кнопку сделать с комментом, что бы явно было видно что тут настройки, в винбоксе можно на экране включить, правой кнопкой мыши на экране, а как в вэб интерфейсе, в вэб интерфейсе не нашел как включить, то же не показывает все вкладки.

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 14:08 23-01-2024 | Исправлено: alexnov66, 15:42 23-01-2024
    Chupaka



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    alexnov66
    Так что со скриптом-то? Что я предложил - бесполезно?

    Всего записей: 3719 | Зарегистр. 05-05-2006 | Отправлено: 21:27 23-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Chupaka
    такой вариант не подходит, без нумерации никак, с for более универсально с моей точки зрения, я свой вариант пытаюсь запустить но пока ни как. тогда встаёт проблема с другими параметрами, у каждого правила они должны различаться хотя они и похожи, плюс при варианте с for можно при необходимости увеличить счет до большего значения.
    и в предложенной конструкции не понятно что и куда пишется, нет ни разделов, ни другие параметры добавить.
    вот простая конструкция работает но выдаёт в лог 16 записей а должно только четыре, не затрагивая for не могу сделать.

    Код:
    :local Port {"80,443"; "25,110,143,465,587,993"; "20,21,22,23,53"; "500,1701,4500";};
    :for Counter from=1 to=4 do={
    :foreach PortResult in=$Port do={
    :log info "Port output result $PortResult"
    }
    }
     

    с for добавляются в другие параметры цифра с 1 до 4 и зачитываются другие переменные, проблема возникла только с портами.
    в идеале бы запустить приведённый мной ранее без foreach

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 00:53 24-01-2024 | Исправлено: alexnov66, 02:40 24-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexnov66
    Не знаю, что выдаст log info, я им просто не пользуюсь, но put в консоли даст всё наглядно

    Код:
    :local Port {"80,443"; "25,110,143,465,587,993"; "20,21,22,23,53"; "500,1701,4500"}
    :local steps ([:len $Port] - 1)
    :for n from=0 to=$steps step=1 do={
      :put ("step ".($n + 1)." ports: ".($Port->$n))
      :log info ("step ".($n + 1)." ports: ".($Port->$n))
    }

     
    В теле цикла for не получится изменить количество заданных шагов, массив изменить можно, переменную steps изменить можно, но цикл пройдёт указанное с самого начала число раз. Чтобы гонять цикл по своему усмотрению, надо использовать while

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 02:42 24-01-2024 | Исправлено: DenSyo, 02:57 24-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DenSyo
    это всё не то, я же говорю не затрагивая строку
    :for Counter from=1 to=4 do={
    с другими переменными работает а тут видать потому что цифры

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 02:51 24-01-2024 | Исправлено: alexnov66, 02:54 24-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexnov66

    Цитата:
    :for Counter from=1 to=4 do={

    это неверная запись, здесь идёт обращение к несуществующему пятому по счёту элементу массива, индексы в массиве начинаются с нуля. либо обращаться к элементам массива так: ($Port->($Counter - 1))

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 02:59 24-01-2024 | Исправлено: DenSyo, 03:01 24-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DenSyo
    всё верная, если писать скрипт к примеру создания подключений то указывается с 1 по 254 адрес
    :for Counter from=1 to=254 do={

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 03:03 24-01-2024 | Исправлено: alexnov66, 03:03 24-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexnov66
    если счетчик не использовать, как обращение к индексам, а просто писать с него адрес, то да, конечно, так и надо. к элементам массива обращаемся с нуля до (длина массива - 1): ($Port->0), ($Port->1), ($Port->2), ($Port->3) - и обязательно вот так в скобочках. если индекс массива у нас, это выражение, то его тоже обязательно берём в скобочки: ($Port->($n + 1))

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 03:06 24-01-2024 | Исправлено: DenSyo, 03:08 24-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DenSyo
    можно и по другому только с foreach зачитывать порты но как тогда сделать 4 переменные и указать и вывести 4 переменные что первый набор портов это 1, второй набор портов это 2 ну и тд
    блин в инете даже приближенно скрипта не нашел.

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 03:10 24-01-2024 | Исправлено: alexnov66, 03:13 24-01-2024
    DenSyo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    foreach в данном случае ничем не отличается от for, только счётчик надо дополнительно самому объявлять.  

    Код:
    :local Ports {"80,443"; "25,110,143,465,587"; "20,21,22,23,53"; "500,1701,4500"}
    :local n 0
    :foreach p in=$Ports do={
      :set n ($n + 1)
      :put ("step ".$n." ports: ".$p)
    }
     
    :local i 0
    :while ($i < [:len $Ports]) do={
      :put ("step ".($i + 1)." ports: ".($Ports->$i))
      :set i ($i + 1)
    }

     
     
    Экспериментировал с базами ip адресов и упёрся в ограничение размера массива, примерно, 170Мб в памяти, это около 800000 элементов в массиве вида: {"строка ключ"={два целочисленных значения}}, два больших массива не объявить, есть ограничение на все переменные окружения. Не густо, level7 так не собрать...

    Всего записей: 218 | Зарегистр. 19-01-2008 | Отправлено: 03:25 24-01-2024 | Исправлено: DenSyo, 05:57 24-01-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DenSyo
    спасибо, в итоге вроде получилось, работает как надо.

    Код:
    :local WanList "wan";
    :local Prot "tcp";
    :local DropList "drop_list_name";
    :local PortList {"80,443"; "25,110,143,465,587"; "20,21,22,23,53"; "500,1701,4500"};
    :local Number 0;
    :foreach PortResult in=$PortList do={:set Number ($Number + 1);
     
    /ip firewall filter
    :if ([find protocol=("" . $Prot . "") dst-port=("" . $PortResult . "") src-address-list=("" . $DropList . "" . $Number . "")]="") do={
        add action=drop chain=input dst-port=("" . $PortResult . "") in-interface-list=("" . $WanList . "") protocol=("" . $Prot . "") src-address-list=("" . $DropList . "" . $Number . "") disabled=no
    } else={
        set [find protocol=("" . $Prot . "") dst-port=("" . $PortResult . "") src-address-list=("" . $DropList . "" . $Number . "")] action=drop chain=input dst-port=("" . $PortResult . "") in-interface-list=("" . $WanList . "") protocol=("" . $Prot . "") src-address-list=("" . $DropList . "" . $Number . "") disabled=no}
     
    :log info "Port output result $Number";
    :log info "Port output result $PortResult";
    }
     

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 06:34 24-01-2024 | Исправлено: alexnov66, 06:50 24-01-2024
    Chupaka



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    alexnov66

    Цитата:
    без нумерации никак

    Так и не понял, почему. Но по сути, остановились на одном из моих вариантов? Только в таком виде мне скрипт нравится больше, нет никаких непонятных чисел, всё достаточно кастомизируемо :
     

    Код:
     
    :local WanList "wan";
    :local ruleset {
      {
        ports="80,443";
        protocol="tcp";
        list="drop_list_name_www";
      };
      {
        ports="25,110,143,465,587";
        protocol="tcp";
        list="drop_list_name_email";
      };
      {
        ports="20,21,22,23,53";
        protocol="tcp";
        list="drop_list_name_system";
      };
      {
        ports="500,1701,4500";
        protocol="tcp";
        list="drop_list_name_ipsec";
      };
    };
     
    :local res;
    :foreach rule in=$ruleset do={
      /ip firewall filter
      :set res [find protocol=($rule->"protocol") dst-port=($rule->"ports") src-address-list=($rule->"list")];
      :if ($res="") do={
        add action=drop chain=input dst-port=($rule->"ports") in-interface-list=$WanList protocol=($rule->"protocol") src-address-list=($rule->"list") disabled=no
      } else={
        set $res action=drop chain=input in-interface-list=$WanList src-address-list=($rule->"list") disabled=no
      }
    }
     

    Всего записей: 3719 | Зарегистр. 05-05-2006 | Отправлено: 16:01 24-01-2024 | Исправлено: Chupaka, 16:04 24-01-2024
    digital422

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как в 6.48 сделать возврат пакетов на интерфейс с которого они пришли, если получателем и отправителем является локальный процесс Mikrotik (ipsec). Mangle-perouting здесь не поможет,  нужна таблица Mangle-Output. Но в Mangle-Output нельзя задать шлюз в Action-Route, остается:
    mark connection, mark route, mark packet и уже в Route прописывать шлюз возврата. Кто нужен из 3- вариантов или делается по другому?
    В Linux в iptables создаю правило с -j MARK --set-mark и затем отдельным скриптом через ip rule add fwmark.  
     
    В таком виде не работает, пакеты уходят через интерфейс 0.0.0.0./0

    Код:
     
    chain=input action=mark-connection new-connection-mark=if_ipip passthrough=yes in-interface=ipip-tunnel20
     
    chain=output action=mark-routing new-routing-mark=mark_ipip passthrough=yes connection-mark=if_ipip
     
    chain=prerouting action=mark-routing new-routing-mark=mark_ipip passthrough=no protocol=udp  
     
    /ip route
    add distance=1 gateway=10.0.1.5 routing-mark=mark_ipip
     

    Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 16:38 25-01-2024 | Исправлено: digital422, 19:23 27-02-2024
    alexnov66



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    digital422

    Цитата:
    если получателем и отправителем является локальное приложение

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

    Всего записей: 1234 | Зарегистр. 29-08-2005 | Отправлено: 14:56 26-01-2024 | Исправлено: alexnov66, 15:05 26-01-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109

    Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » MikroTik RouterOS (часть 5)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru