Пользователь
0,0
рейтинг
11 июля 2013 в 05:15

Mikrotik, 3 провайдера, переключение и разделение трафика

Написать данный пост меня сподвигнул этот вопрос habrahabr.ru/qa/38801
Тем кому интересно прошу под кат.

И так дано:
1 порт — Провайдер 1
2 порт — Провайдер 2
3 порт — Провайдер 3 (резервный)
4 порт — Сеть 1 192.168.101.0
5 порт — Сеть 2 192.168.102.0
Вопрос:
  • На 4 порту сеть, со своим DHCP сервером на MikroTik, в инет они должны ходит через провайдера 1.
  • На 5 порту также отдельная сеть со своим DHCP сервером и в инет они должны ходить через провайдера 2.
  • 3 провайдер получается резервным, если 1 или 2 откажет, MikroTik должен переключить инет на него, ну и вернуть потом все на место когда канал восстановится.

Отсюда немного не понятно, что делать если откажет первый провайдер, трафик с 4 порта гнать во второго провайдера или сразу в третьего.
Предположим, что третий провайдер у нас считает трафик и поэтому он у нас будет самым последним.
И так вот наши интерфейсы

Далее наши IP адреса


И наконец наша таблица маршрутизации
Здесь необходимы пояснения, для каждого провайдера мы создали дефолтный маршрут с маркировкой маршрута.
Первый маршрут мне необходим для того чтобы настраивать сам MikroTik.

Собственно на этом всё. Наш MikroTik готов для дальнейшей тонкой настройке.

На следующем этапе мы настроем отзывчивость MikroTik со всех провайдеров.

Для начала настроем маскарад для все трёх интерфейсов.

[admin@kirilka] /ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade comment="ISP 1"
[admin@kirilka] /ip firewall nat add chain=srcnat out-interface=ether2 action=masquerade comment="ISP 2"
[admin@kirilka] /ip firewall nat add chain=srcnat out-interface=ether3 action=masquerade comment="ISP 3"


Теперь наверное самое интересное Mangle

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

[admin@kirilka] /ip firewall mangle> print
Flags: X - disabled, I - invalid, D - dynamic 
0   chain=input action=mark-connection new-connection-mark=ISP 1 -> Input passthrough=no dst-address=172.25.25.247  in-interface=ether1 
1   chain=output action=mark-routing new-routing-mark=ISP 1 passthrough=no connection-mark=ISP 1 -> Input 
2   chain=input action=mark-connection new-connection-mark=ISP 2 -> Input passthrough=no dst-address=192.168.99.2  in-interface=ether2 
3   chain=output action=mark-routing new-routing-mark=ISP 2 passthrough=no connection-mark=ISP 2 -> Input 
4   chain=input action=mark-connection new-connection-mark=ISP 3 -> Input passthrough=no dst-address=192.168.100.2  in-interface=ether3 
5   chain=output action=mark-routing new-routing-mark=ISP 3 passthrough=no connection-mark=ISP 3 -> Input


Попробую расшифровать по человечески
Правило 0
Если в пакете пришедшем на первый интерфейс (ISP 1) в адресе назначения указан IP адрес 172.25.25.247(ISP 1), то маркируем соединение именем (ISP 1 -> Input)
Правило 1
Если исходящий пакет принадлежит соединению с маркировкой (ISP 1 -> Input), то для него используем маршрут ISP 1
Тем самым маршрутизатор знает, что если его (пингуют или любой входящий трафик) с провайдера ISP 1, то ответ вернёт он через провайдера ISP 1

Картинка для закрепления. И понимания.

Отлично теперь мы можем заходить на MikroTik через любого провайдера.

Настало время каждого офиса займёмся трафиком с четвёртого порта. Но прежде предусмотрительно подготовим один маленький но тонкий нюанс, так как мы будет использовать prerouting то трафик перед «Попаданием» в таблицу маршрутизации, необходимо отфильтровать.
Необходимо создать адрес листы с сетями которые не должны маркироватся.
Я обычно называю его LocalNet и в этот раз поступим также.

[admin@kirilka] /ip firewall address-list> print
Flags: X - disabled, D - dynamic 
 #   LIST                                                                                  ADDRESS                        
 0   LocalNet                                                                              192.168.101.0/24               
 1   LocalNet                                                                              192.168.102.0/24 


И так мы создали листы локальных сетей, теперь приступим к маршрутизации трафика.

 6   chain=prerouting action=mark-routing new-routing-mark=office 1 passthrough=no src-address=192.168.101.0/24 
     dst-address-list=!LocalNet 

Перед тем как пакет покинет маршрутизатор: если адрес отправителя состоит в сети 192.168.101.0/24 и адрес назначения не числится в листах, то маркируем маршрут именем office 1
Совсем просто, это весь трафик который принадлежит офису 1 и не идёт до наших других локальных подсетей.

Далее нам необходимо создать три маршрута для трафика office 1
dst-address=0.0.0.0/0 gateway=172.25.25.1  check-gateway=arp distance=10 routing-mark=office 1
dst-address=0.0.0.0/0 gateway=192.168.99.1 check-gateway=arp distance=11 routing-mark=office 1
dst-address=0.0.0.0/0 gateway=192.168.100.1 check-gateway=arp distance=12 routing-mark=office 1

Немного разъяснения check-gateway это процедура автоматической проверки доступности шлюза, так как у меня это соединение L2 то в моём случае arp лучше чем ping, если у вас L3 (pptp etc) то ставите ping.
Также необходимо обратить внимание distance как раз по ней маршрутизатор определяет при одинаковом адресе назначения какой приоритет маршрутов.

Ну а теперь финальная часть нашего «марлезонского балета».
Так как cheсk-gateway проверяет доступность только шлюза, нас это категорически не устраивает.
Наша задача определить живой ли канал в интернет через каждого провайдера и в зависимости от живности включать и отключать маршруты.
В данном случае у нас две сети
office1 ISP1->ISP2->ISP3
office2 ISP2->ISP1-ISP3
Как видно что конченым результатом у нас в любом случае будет ISP3, естественно канал ISP3 нам нет необходимости проверять.
И так прежде нам необходимо настроить дату и время на MikroTik. Я надеюсь вы сделаете это без моей помощи.

Отступление: в интернете много различных скриптов, но большинство из них выполняют скрипт в заданный промежуток времени которые меняет значения дистанции в маршрутах. Нас такой вариант не устраивает так как в MikroTik стоит NAND память и у неё есть свой предел записи. Мы будем его экономить. Кончено же можно было отредактировать скрипт и делать проверку, но это не наш метод. )

Будем использовать функционал MikroTik. NetWatch
Создадим два правила.
[admin@kirilka] /tool netwatch> print detail 
Flags: X - disabled 
0 host=8.8.8.8 timeout=1s interval=1m  status=up up-script=ISP1-UP down-script=ISP1-DOWN 
1 host=8.8.4.4 timeout=1s interval=1m  status=up up-script=ISP2-UP down-script=ISP2-DOWN


Netwacth работает как тригер.
Если состояние изменилось то выполняется скрипт указанный в текущем значении тригера.
В нашем случае если пинг до 8.8.8.8 не пройдёт то, смениться статус на down и исполниться скрипт ISP1-DOWN, как только значение станет up, то исполниться скрипт ISP1-UP

Напишем скрипты для наших событий.
ISP1-UP
/ip route enable [find dst-address=0.0.0.0/0 and gateway=172.25.25.1 and distance >= 10];

В моё случае я ищу так, кто то определяет по комментариям к маршрутам.
Но я пока встречал только один раз где реально использовалась дистанция больше 10.
ISP1-DOWN
/ip route disable [find dst-address=0.0.0.0/0 and gateway=172.25.25.1 and distance >= 10];


Для того чтобы весь наш netwatch полноценно работал нам необходимо добавить два маршрута, который будут отправлять трафик на 8.8.8.8 через ISP1, а трафик до 8.8.4.4 через ISP2
[admin@kirilka] > ip route add dst-address=8.8.8.8 gateway=172.25.25.1
[admin@kirilka] > ip route add dst-address=8.8.4.4 gateway=192.168.99.1


Собственно всё.
Остатки
Mangle:
[admin@kirilka] > ip firewall mangle print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   chain=input action=mark-connection new-connection-mark=ISP 1 -> Input passthrough=no dst-address=172.25.25.247 
     in-interface=ether1 

 1   chain=output action=mark-routing new-routing-mark=ISP 1 passthrough=no connection-mark=ISP 1 -> Input 

 2   chain=input action=mark-connection new-connection-mark=ISP 2 -> Input passthrough=no dst-address=192.168.99.2 
     in-interface=ether2 

 3   chain=output action=mark-routing new-routing-mark=ISP 2 passthrough=no connection-mark=ISP 2 -> Input 

 4   chain=input action=mark-connection new-connection-mark=ISP 3 -> Input passthrough=no dst-address=192.168.100.2 
     in-interface=ether3 

 5   chain=output action=mark-routing new-routing-mark=ISP 3 passthrough=no connection-mark=ISP 3 -> Input 

 6   chain=prerouting action=mark-routing new-routing-mark=office 1 passthrough=no src-address=192.168.101.0/24 
     dst-address-list=!LocalNet 

 7   chain=prerouting action=mark-routing new-routing-mark=office 2 passthrough=no src-address=192.168.102.0/24 
     dst-address-list=!LocalNet 



Route:
[admin@kirilka] > ip route print detail 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, 
B - blackhole, U - unreachable, P - prohibit 
 0 A S  dst-address=0.0.0.0/0 gateway=172.25.25.1 gateway-status=172.25.25.1 reachable via  ether1 distance=1 scope=30 
        target-scope=10 routing-mark=ISP 1 

 1 A S  dst-address=0.0.0.0/0 gateway=192.168.99.1 gateway-status=192.168.99.1 reachable via  ether2 distance=1 scope=30 
        target-scope=10 routing-mark=ISP 2 

 2 A S  dst-address=0.0.0.0/0 gateway=192.168.100.1 gateway-status=192.168.100.1 reachable via  ether3 distance=1 scope=3>
        target-scope=10 routing-mark=ISP 3 

 3 A S  dst-address=0.0.0.0/0 gateway=172.25.25.1 gateway-status=172.25.25.1 reachable via  ether1 check-gateway=arp 
        distance=10 scope=30 target-scope=10 routing-mark=office 1 

 4   S  dst-address=0.0.0.0/0 gateway=192.168.99.1 gateway-status=192.168.99.1 reachable via  ether2 check-gateway=arp 
        distance=11 scope=30 target-scope=10 routing-mark=office 1 

 5   S  dst-address=0.0.0.0/0 gateway=192.168.100.1 gateway-status=192.168.100.1 reachable via  ether3 check-gateway=arp 
        distance=12 scope=30 target-scope=10 routing-mark=office 1 

 6 A S  dst-address=0.0.0.0/0 gateway=192.168.99.1 gateway-status=192.168.99.1 reachable via  ether2 check-gateway=arp 
        distance=10 scope=30 target-scope=10 routing-mark=office 2 

 7   S  dst-address=0.0.0.0/0 gateway=172.25.25.1 gateway-status=172.25.25.1 reachable via  ether1 check-gateway=arp 
        distance=11 scope=30 target-scope=10 routing-mark=office 2 

 8   S  dst-address=0.0.0.0/0 gateway=192.168.100.1 gateway-status=192.168.100.1 reachable via  ether3 check-gateway=arp 
        distance=12 scope=30 target-scope=10 routing-mark=office 2 

 9 A S  dst-address=0.0.0.0/0 gateway=172.25.25.1 gateway-status=172.25.25.1 reachable via  ether1 distance=1 scope=30 
        target-scope=10 

10 A S  ;;; Netwatch ->ISP2
        dst-address=8.8.4.4/32 gateway=192.168.99.1 gateway-status=192.168.99.1 reachable via  ether2 distance=1 
        scope=30 target-scope=10 

11 A S  ;;; Netwatch ->ISP1
        dst-address=8.8.8.8/32 gateway=172.25.25.1 gateway-status=172.25.25.1 reachable via  ether1 distance=1 scope=30 
        target-scope=10 

12 ADC  dst-address=172.25.25.0/24 pref-src=172.25.25.247 gateway=ether1 gateway-status=ether1 reachable distance=0 
        scope=10 

13 ADC  dst-address=192.168.99.0/24 pref-src=192.168.99.2 gateway=ether2 gateway-status=ether2 reachable distance=0 
        scope=10 

14 ADC  dst-address=192.168.100.0/24 pref-src=192.168.100.2 gateway=ether3 gateway-status=ether3 reachable distance=0 
        scope=10 

15 ADC  dst-address=192.168.101.0/24 pref-src=192.168.101.1 gateway=ether4 gateway-status=ether4 reachable distance=0 
        scope=10 

16 ADC  dst-address=192.168.102.0/24 pref-src=192.168.102.1 gateway=ether5 gateway-status=ether5 reachable distance=0 
        scope=10 

Script:
[admin@kirilka] /system script> print        
Flags: I - invalid 
 0   name="ISP1-UP" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api 
     last-started=jul/11/2013 05:07:34 run-count=9 
     source=/ip route enable [find dst-address=0.0.0.0/0 and gateway=172.25.25.1 and distance >= 10]; 

 1   name="ISP1-DOWN" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api 
     last-started=jul/11/2013 04:47:03 run-count=2 
     source=/ip route disable [find dst-address=0.0.0.0/0 and gateway=172.25.25.1 and distance >= 10]; 

 2   name="ISP2-UP" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api 
     last-started=jul/11/2013 05:08:01 run-count=1 
     source=/ip route enable [find dst-address=0.0.0.0/0 and gateway=192.168.99.1 and distance >= 10]; 

 3   name="ISP2-DOWN" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api 
     last-started=jul/11/2013 05:07:36 run-count=1 
     source=/ip route disable [find dst-address=0.0.0.0/0 and gateway=192.168.99.1 and distance >= 10];

Кирилл @vasilevkirill
карма
16,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (33)

  • 0
    Спасибо за такой развернутый ответ на вопрос! Я его решил немного по другому, мне удалось проверять только наличие шлюза провайдера, тоже хотел сделать проверку 8.8.8.8, но не хватило знаний.
  • 0
    Спасибо!
    А вот такую штуку не рассматривали? wiki.mikrotik.com/wiki/NTH_load_balancing_with_masquerade

    Еще помоему проще искать шлюз по комменту [find comment=«G2»]
    • 0
      Поиск маршрута скриптом это формальность
  • 0
    а что за железяка?
    • 0
      • 0
        я понял, что микротик. Каким конкретно вы пользуетесь?
        • 0
          в данном случае была виртуалка (x86)
        • +1
          ОС то одна, так что на всех устройствах должно работать.
  • 0
    Мне одному кажется, что маркировать соединения надо на прероутинге? или Ваш выбор чем-то обусловлен, что я не уловил?
    • +1
      В данном случае Output нужен только для трафика который генерирует сам муршрутизатор.
      prerouting намного ресурсо затранее
      image
      • 0
        я говорил про chain=input action=mark-connection
        • 0
          Всё правильно мы маркируем соединений ТОЛЬКО при входящем трафике.
          Ещё раз данные правила только для локального трафика, смысла использовать prerouting нету
          • 0
            простите, был невнимателен. Вы маркируете только тот трафик, что генерирует сам роутер.
            • 0
              вы уверены? в netfilter-е, который на самом деле и работает в ТИКах, транзитный трафик в мангл.оутпут цепочку не попадает
      • 0
        prerouting намного ресурсо затранее
        В каком смысле? Под prerouting попадает больше трафика, это имеется в виду?
        • 0
          конечно, prerouting в любом случае станет «рано или поздно» output (только для локального трафика)
          • 0
            вы уверены? в netfilter-е, который на самом деле и работает в ТИКах, транзитный трафик в мангл.оутпут цепочку не попадает
  • 0
    Спасибо за статью.
    Возник вопрос, нетвоч проверяет доступность по обеим интерфейсам? Как его направить проверять один адрес по одному интерфейсу, а другой по другому? А то получается что даже есть ИСП1 упал, то по второму он будет доступен и триггер не сработает.
    • 0
      Спасибо поправил, вроде писал, но куда то подевалось
      • +1
        от себя добавлю, что встроенный функционал хоть и есть добро, но не всегда… Вы все равно используете скрипты, так почему не сделать логику в них? если честно, то мне кажется, что человек, принявший это на свое попечительство после Вас не сразу сообразит, почему у него статические маршруты на гугло-ДНСы :-) а в скрипте оно как бы было логичнее, например
        :local ISP1 [/ping count=3 interval=1s src-address=172.25.25.1 8.8.8.8];
        :local ISP2 [/ping count=3 interval=1s src-address=172.25.99.1 8.8.8.8];
        
        if ( $ISP1 > 0 ) do={
        #ISP1 logic on LINK-UP
        } else={
        #ISP1logicLINK-DOWN
        }
        

        это всего лишь пример еще одного варианта… мне, как программисту, этот код более понятно обрисовывает всю ситуацию и логику работы.
        • 0
          а также можно сделать и через mangle
          [admin@kirilka] > ip firewall mangle add chain=output dst-address=8.8.8.8 protocol=icmp action=mark-routing routing-mark=ISP1
          

          Вариантов очень много, как можно это реализовать.
          я лишь предложил один из таких вариантов.
  • 0
    А нельзя такой сценарий на сабинтерфейсах реализовать? Не в каждый мтик 5 интерфейсов физических понатыкаешь)
    • 0
      сабинтерфейсы это что?
      Если вы говорите про различные vpn-ы то конечно можно, на любой интерфейс можно сделать.
  • 0
    Спасибо за статью.
    У нас такой же функционал работает без скриптов и netwatch, через встроенный механизм nexthop + check gateway ping.

    В случае такой настройке в routes во вкладке nexthop появляется gateway state recursive и работает все тоже, что и вашем случае.

    image

    Что-то картинка не вставилась, вот URL: www.dropbox.com/s/80cb4cvozopvw8p/2013-08-07%20at%2018.07.png
    • 0
      Спасибо, попробуем
    • 0
      Подскажите, пожалуйста, как нужно настроить остальные части системы (роутинг, фаервол), чтобы проверка в таком случае работала без скриптов?
      • 0
        • 0
          Спасибо, способ понятен и хорош для практически безшовного переключения.

          Я решил все же остановиться на способе с нетвотчем, т.к. он позволяет задавать интервал проверки хоста. Это позволяет уменьшить частоту переключений, когда провайдера начинает «шатать» (пинги проходят через раз). Особенно это актуально, если в сети используется VPN.
  • 0
    Подскажите, пожалуйста, идею как можно сделать обратную маршрутизацию пакетов к нужному провайдеру, если провайдеры раздают белые IP-адреса по DHCP?

    В настройках DHCP-клиента для каждого провайдера можно сделать свой distance — так решится вопрос по приоритезации провайдера. Но как сделать автоматическое создание маршрутов с routing mark? О провайдерах ничего кроме интерфейса, на котором они висят, не известно: подсеть, шлюз и IP выдаются динамически из разных пулов по DHCP.
    • 0
      в правиле mangle укажите входящий интерфейс нужного вам провайдера!

      • 0
        Для маркировки соединения на входе я так и сделал — тут вопросов нет. Вопрос в том, как сделать создание динамического маршрута с routing mark для каждого провайдера?
  • 0
    Как быть если sfp1 статика от провайдера
    eth8 — динамика с белым ip от провайдера
    eth9 — динамика с белым ip от провайдера (спутниковый интеренет)

    eth8 и eth9 — меняются периодически, как прописать шлюзы динамически?

    интересует как тут настроить
    eth1-eth5 — внутренняя сеть, ей доступ к провайдерам sfp1 и eth8 (балансировка), если нет eth9

    а в идеале еще
    wlan2 (виртуальная AP) доступ только к интернету eth8 (авторизация hotspot)

    Жаль что некоторые вещи не расписаны.
  • 0
    На eth10 висит точка доступа под Hotspot, вот необходимо дать ей доступ к интернету через шлюз eth9 (ISP 2)
    Никак не выходит настроить маршруты, балансировку.
    Помогите плз…

    [admin@aa] > /ip firewall mangle
    [admin@aa] /ip firewall mangle> print
    Flags: X - disabled, I - invalid, D - dynamic 
     0   chain=input action=mark-connection new-connection-mark=ISP 1 -> Input passthrough=no dst-address=91.195.184.1 in-interface=ISP1 
    
     1   chain=output action=mark-routing new-routing-mark=ISP 1 passthrough=no connection-mark=ISP 1 -> Input 
    
     2   chain=input action=mark-connection new-connection-mark=ISP 2 -> Input passthrough=no dst-address=46.118.39.254 in-interface=ISP2 
    
     3   chain=output action=mark-routing new-routing-mark=ISP 2 passthrough=no connection-mark=ISP 2 -> Input 
    
     4   chain=input action=mark-connection new-connection-mark=ISP 3 -> Input passthrough=no dst-address=193.108.50.1 in-interface=ISP3 
    
     5   chain=output action=mark-routing new-routing-mark=ISP 3 passthrough=no connection-mark=ISP 3 -> Input 
    
     6   chain=prerouting action=mark-routing new-routing-mark=home passthrough=no src-address=192.168.0.0/24 dst-address-list=local 
    
     7   chain=prerouting action=mark-routing new-routing-mark=out passthrough=no src-address=192.168.10.0/24 dst-address-list=local
    


    [admin@aa] /ip firewall mangle> /ip route print detail
    Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 
     0 A S  dst-address=0.0.0.0/0 gateway=193.108.50.1 gateway-status=193.108.50.1 reachable via  ISP3 check-gateway=arp distance=12 scope=30 target-scope=10 
            routing-mark=home 
    
     1 X S  dst-address=0.0.0.0/0 gateway=91.195.184.1 gateway-status=91.195.184.1 inactive check-gateway=arp distance=10 scope=30 target-scope=10 
            routing-mark=home 
    
     2 X S  dst-address=0.0.0.0/0 gateway=46.118.39.254 gateway-status=46.118.39.254 inactive check-gateway=arp distance=11 scope=30 target-scope=10 
            routing-mark=home 
    
     3   S  dst-address=0.0.0.0/0 gateway=91.195.184.10 gateway-status=91.195.184.10 unreachable check-gateway=arp distance=11 scope=30 target-scope=10 
            routing-mark=out 
    
     4 A S  dst-address=0.0.0.0/0 gateway=193.108.50.1 gateway-status=193.108.50.1 reachable via  ISP3 check-gateway=arp distance=12 scope=30 target-scope=10 
            routing-mark=out 
    
     5 X S  dst-address=0.0.0.0/0 gateway=46.118.39.254 gateway-status=46.118.39.254 inactive check-gateway=arp distance=10 scope=30 target-scope=10 
            routing-mark=out 
    
     6 A S  dst-address=0.0.0.0/0 gateway=91.195.184.1 gateway-status=91.195.184.1 reachable via  ISP1 distance=1 scope=30 target-scope=10 routing-mark=ISP1 
    
     7 A S  dst-address=0.0.0.0/0 gateway=46.118.39.254 gateway-status=46.118.39.254 reachable via  ISP2 distance=1 scope=30 target-scope=10 routing-mark=ISP2 
    
     8 A S  dst-address=0.0.0.0/0 gateway=193.108.50.1 gateway-status=193.108.50.1 reachable via  ISP3 distance=1 scope=30 target-scope=10 routing-mark=ISP3 
    
     9 A S  dst-address=0.0.0.0/0 gateway=91.195.184.1 gateway-status=91.195.184.1 reachable via  ISP1 distance=1 scope=30 target-scope=10 
    
    10 A S  dst-address=8.8.4.4/32 gateway=46.118.39.254 gateway-status=46.118.39.254 reachable via  ISP2 distance=1 scope=30 target-scope=10 
    
    11 A S  dst-address=8.8.8.8/32 gateway=91.195.184.1 gateway-status=91.195.184.1 reachable via  ISP1 distance=1 scope=30 target-scope=10 
    
    12 ADC  dst-address=46.118.32.0/21 pref-src=46.118.37.231 gateway=ISP2 gateway-status=ISP2 reachable distance=0 scope=10 
    
    13 ADC  dst-address=91.195.184.0/24 pref-src=91.195.184.10 gateway=ISP1 gateway-status=ISP1 reachable distance=0 scope=10 
    
    14 ADC  dst-address=192.168.0.0/24 pref-src=192.168.0.1 gateway=bridge-local gateway-status=bridge-local reachable distance=0 scope=10 
    
    15 ADC  dst-address=192.168.10.0/24 pref-src=192.168.10.1 gateway=ether10 gateway-status=ether10 reachable distance=0 scope=10 
    
    16 ADC  dst-address=193.108.50.0/23 pref-src=193.108.50.185 gateway=ISP3 gateway-status=ISP3 reachable distance=0 scope=10 
    


    [admin@aa] /ip firewall mangle> /system script       
    [admin@aa] /system script> print
    Flags: I - invalid 
     0   name="ISP1-UP" owner="maxya" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api run-count=0 
         source=/ip route enable [find dst-address=0.0.0.0/0 and gateway=91.195.184.1 and distance >= 10]; 
    
     1   name="ISP1-DOWN" owner="maxya" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api last-started=may/04/
         run-count=1 source=/ip route disable [find dst-address=0.0.0.0/0 and gateway=91.195.184.1 and distance >= 10]; 
    
     2   name="ISP2-UP" owner="maxya" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api last-started=may/03/20
         run-count=3 source=/ip route enable [find dst-address=0.0.0.0/0 and gateway=46.119.15.254 and distance >= 10]; 
    
     3   name="ISP2-DOWN" owner="maxya" policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api last-started=may/04/
         run-count=4 source=/ip route disable [find dst-address=0.0.0.0/0 and gateway=46.119.15.254 and distance >= 10]; 
    

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.