MultiWAN и резервирование каналов

Тема в разделе "Маршрутизация", создана пользователем Alexandr.l, 19 дек 2018.

  1. Alexandr.l

    Alexandr.l Новый участник

    Прошу помощи у сведущих.
    Настроил MultiWAN с двумя провайдерами
    1-й провайдер Обит, шлюз 2.2.2.1, внешний IP 2.2.2.2
    2-й провайдер Ростелеком, шлюз 192.168.100.1, IP - 192.168.100.2
    У Ростелекома стоит у нас в серверной EchoLife HG8120H GPON Terminal, на котором висит внешний статичный IP

    Конфигурация работает, но есть одно НО...
    Если Ростелеком отключает интернет, резервирование канала не происходит, поскольку шлюз 192.168.100.1 доступен
    Вопрос
    Как изловчится в данной конфигурации, чтобы происходило резервирование?

    Мои настройки RouterOS 6.43.7

    /interface list
    add name=list-WAN

    /interface list member
    add interface=wan_main list=list-WAN
    add interface=wan_reserv list=list-WAN

    /ip address
    add address=192.168.1.4/24 interface=bridge_local network=192.168.1.0
    add address=2.2.2.2/28 interface=wan_reserv network=2.2.2.0
    add address=192.168.100.2/24 interface=wan_main network=192.168.100.0

    /ip dns
    set allow-remote-requests=yes max-udp-packet-size=512 servers=8.8.8.8,77.88.8.1

    /ip firewall nat
    add action=masquerade chain=srcnat out-interface=wan_main
    add action=masquerade chain=srcnat out-interface=wan_reserv

    /ip firewall mangle
    add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=wan_main new-connection-mark=con-WAN1
    add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=wan_reserv new-connection-mark=con-WAN2
    add action=mark-routing chain=prerouting connection-mark=con-WAN1 in-interface-list=!list-WAN new-routing-mark=WAN1
    add action=mark-routing chain=prerouting connection-mark=con-WAN2 in-interface-list=!list-WAN new-routing-mark=WAN2
    add action=mark-routing chain=output connection-mark=con-WAN1 new-routing-mark=WAN1
    add action=mark-routing chain=output connection-mark=con-WAN2 new-routing-mark=WAN2
    add action=mark-connection chain=forward connection-mark=no-mark new-connection-mark=con-WAN1 out-interface=wan_main passthrough=yes
    add action=mark-connection chain=forward connection-mark=no-mark new-connection-mark=con-WAN2 out-interface=wan_reserv passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=con-WAN1 in-interface-list=!list-WAN new-routing-mark=WAN1 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=con-WAN2 in-interface-list=!list-WAN new-routing-mark=WAN2 passthrough=yes

    /ip route
    add distance=1 gateway=192.168.100.1 routing-mark=WAN1
    add distance=1 gateway=2.2.2.1 routing-mark=WAN2
    add distance=1 gateway=192.168.100.1,2.2.2.1
    add check-gateway=ping distance=100 gateway=2.2.2.1
    add check-gateway=ping distance=100 gateway=192.168.100.1
     
  2. alexei1977

    alexei1977 Участник

    Используйте рекурсивные маршруты
     
  3. Pavel N

    Pavel N Участник

    https://c2n.me/3YJ7mMx
    https://c2n.me/3YJ7H7P
    https://c2n.me/3YJ8aOL
    https://c2n.me/3YJ9mik



    У меня это выглядит вот так
    на отработку отказа уходит 20+ секунд при отсутствии пинга на ОБА тестовых сайта т.е. при обрыве канала проблема не с одним тестовым сайтом а с двумя независимыми сразу - скорее это проблема с каналом инета ... и переходим на резервный маршрут с метрикой 2
    при отказе 2х тестовых маршрутов рекурсивный ложится тоже
     
    Последнее редактирование: 19 дек 2018
    Alexandr.l нравится это.
  4. Alexandr.l

    Alexandr.l Новый участник

    То есть надо добавить маршруты, так?
    Public DNS
    Google 8.8.8.8
    Yandex 77.88.8.1
    /ip route
    add dst-address=8.8.8.8 gateway=192.168.100.1 scope=10
    add dst-address=77.88.8.1 gateway=2.2.2.1 scope=10
    add distance=1 gateway=8.8.8.8 routing-mark=WAN1 check-gateway=ping
    add distance=2 gateway=77.88.8.1 routing-mark=WAN1 check-gateway=ping
     
  5. Alexandr.l

    Alexandr.l Новый участник

    О спасибо, проверяю
     
  6. Pavel N

    Pavel N Участник

    Лучше выбрать такие сайты для проверки куда пользователи скорее всего никогда не пойдут Google и Yandex технически эту роль могут исполнить, но когда на них начнет идти трафик пользователей могут быть проблемы

    эти сайты придется привязать к каналу правилом (это нужно чтоб через чужой канал не уходил трафик проверки когда ляжет основной канал - нужно чтоб сайт был недоступен пока не работает WAN1 несмотря на то что инет через WAN2 есть), и когда произойдет переключение а у вас кто-то будет ломиться на яндекс днс а он директивно идет по правилу Ip route rules на отключенный сейчас канал ... получим проблему

    Лучше что-то менее часто используемое в нашем регионе

    В вашем варианте
    add distance=1 gateway=8.8.8.8 routing-mark=WAN1 check-gateway=ping
    add distance=2 gateway=77.88.8.1 routing-mark=WAN1 check-gateway=ping

    кроме того - если в маркированных таблицах маршрут будет не найден он пойдет искать через главную таблицу маршрутизации (main) а там работает при отказе первого - второй маршрут через Wan2 и он покажет что тестовый сайт доступен - маршрут для первого канала останется живым т.к. тестовые площадки достижимы

    Нужно направлять трафик тестовых сайтов директивно в /IP Route Rules с указанием искать только (LookUP Only in table) Wan*
    Это не позволит уйти в основную таблицу маршрутизации и сделает тестовый сайт недоступным пока не оживет соответствующий канал
     
    Последнее редактирование: 19 дек 2018
  7. Alexandr.l

    Alexandr.l Новый участник

    Благодарствую
     
    Pavel N нравится это.
  8. Alexandr.l

    Alexandr.l Новый участник

    Пытался настроить только для WAN1
    ya.ru - 87.250.250.242

    Отключил маршрут
    /ip route
    add check-gateway=ping disabled=yes distance=100 gateway=192.168.100.1

    Добавил вместо него другие
    /ip route
    add distance=1 gateway=87.250.250.242 routing-mark=WAN1 check-gateway=ping
    add check-gateway=ping distance=100 dst-address=87.250.250.242/32 gateway=192.168.100.1 scope=10

    И добавил правило
    /ip route rule
    add action=lookup-only-in-table dst-address=87.250.250.242/32 table=WAN1

    Но при отключении оптики Ростелекома, видно, что пакеты пытаются идти через шлюз 192.168.100.1, который стоит у нас в серверной
    В чём может быть проблема?
     
  9. Pavel N

    Pavel N Участник

    судя по тому что вы работаете с правилом для маркированных пакетов с маркировкой routing-mark=WAN1 это правило будет работать если в mangle пакет пропустят через соответствующее правило маркировки
    в ином случае будет работать таблица Main для не маркированного трафика а в ней может быть какой-то маршрут через второго провайдера
    и есть шанс что пакет не заглядывал в правило маркировки и на него оно не повлияло


    Почему не сработало правило /ip route rule add action=lookup-only-in-table dst-address=87.250.250.242/32 table=WAN1 не знаю ответить пока не готов
    могу с маленькой вероятностью предположить что те пакеты что видит второй шлюз идут не с микротика а через микротик из другого источника - но это не более чем гадание и предположение

    и еще .. во избежании какой-то путаницы - я не стал бы абсолютно точно одинаково именовать маркировки в разных местах (table=WAN1 routing-mark=WAN1 ) мало ли где неверно интерпретируется и ищи потом корень проблемы пока не посинеешь - хоть буковку но префикс разный я бы воткнул
     
  10. Alexandr.l

    Alexandr.l Новый участник

    Спасибо, попробую
     
  11. Alexandr.l

    Alexandr.l Новый участник

    Если называть по разному (table=WAN1 routing-mark=WAN1), то маршрут становится неактивным
    add distance=1 gateway=87.250.250.242 routing-mark=WAN1 check-gateway=ping

    Заработало в такой конфиурации

    /ip route
    add distance=1 gateway=87.250.250.242,2.2.2.1
    add distance=1 gateway=87.250.250.242 routing-mark=WAN1 check-gateway=ping
    add check-gateway=ping distance=100 dst-address=87.250.250.242/32 gateway=192.168.100.1 scope=10

    /ip route rule
    add action=lookup-only-in-table interface=wan_main dst-address=87.250.250.242/32 table=WAN1

    Вам премного благодарен
     
    Pavel N нравится это.
  12. Pavel N

    Pavel N Участник

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

    в том что у Вас получилось и есть рекурсивный маршрут для таблицы Main образованный первой и третьей строкой
    а вторая строка обслуживает обращения с маркировкой но тоже рекурсивно

    замечательно что заработало
    но у меня небыло указано интерфейса в route rules, приму к сведению - попробую проверить