2 OpenVPN клиента и 2 провайдера.

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

  1. dmierm

    dmierm Новый участник

    Добрый день. Есть mikrotik hex и 2 провайдера(подключение по L3 до головного офиса и резервный свисток LTE), между провайдерами настроен failover. На микротике настроены 2 openvpn клиента, первый через L3 до головного офиса, а второй через LTE модем на внешний ip адрес того же OpenVPN сервера в головном офисе. Как сделать так чтобы при работе через L3 запускался клиент с нужными настройками и не допустить работу 2х клиентов одновременно. Я не нашел ничего лучшего чем просто одному из клиентов в фаерволе запретить посылать пакеты через ненужный интерфейс, есть ли другие способы решить задачку? Заранее спасибо!
     
  2. У вас основной канал один ? Второй как резерв используется ?
     
  3. dmierm

    dmierm Новый участник

    Да, именно так
     
  4. ну тогда вам нужно реализовать так называемый dual-WAN. Маркировать трафик нужно, что бы обезопасить себя от таких ситуаций.

    https://spw.ru/forum/threads/dostup-k-mikrotik-iz-vne-po-wan1-wan2.452/
     
  5. dmierm

    dmierm Новый участник

    dual-WAN реализован нужно сделать чтобы при подключении одного vpn клиента через полученные маршруты не подключался второй openvpn клинет
     
  6. ну по идеи можно привязать каждого OPNVPN клиента к своей (маркированной) таблице маршрутизации. В route rules действием lookonly in table.
     
  7. dmierm

    dmierm Новый участник

    Можно по подробнее, мои попытки не увенчались успехом. OpenVPN клиент который нацелен на подключение через внешний IP упорно лезет подключаться через полученные маршруты от первого клиента.
     
  8. Вы делаете маркировку трафика? Покажите конфиг.
     
  9. dmierm

    dmierm Новый участник

    /ip firewall mangle> print
    0 chain=forward action=mark-connection new-connection-mark=IPS-l3
    passthrough=yes in-interface=WAN log=no log-prefix=""

    1 chain=forward action=mark-connection new-connection-mark=IPS-lte
    passthrough=yes in-interface=WAN log=no log-prefix=""

    2 chain=prerouting action=mark-routing new-routing-mark=l3-rt passthrough=yes
    src-address=192.168.57.0/24 connection-mark=IPS-l3 log=no log-prefix=""

    3 chain=prerouting action=mark-routing new-routing-mark=lte-rt
    passthrough=yes src-address=192.168.57.0/24 connection-mark=IPS-lte
    log=no log-prefix=""

    4 chain=prerouting action=mark-routing new-routing-mark=l3-rt passthrough=yes
    connection-state=new dst-address-list=to-lte log=no log-prefix=""

    5 chain=prerouting action=mark-routing new-routing-mark=lte-rt
    passthrough=yes connection-state=new dst-address-list=to-l3 log=no
    log-prefix=""

    /ip route> print
    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
    # DST-ADDRESS PREF-SRC GATEWAY DISTANCE
    0 A S 0.0.0.0/0 8.8.8.8 1
    1 S 0.0.0.0/0 192.168.0.99 2
    2 A S 0.0.0.0/0 8.8.4.4 2
    3 S 0.0.0.0/0 8.8.8.8 2
    4 A S 0.0.0.0/0 192.168.0.99 1
    5 S 0.0.0.0/0 192.168.8.1 2
    6 A S 8.8.4.4/32 192.168.8.1 1
    7 A S 8.8.8.8/32 192.168.0.99 1
    8 ADC 192.168.0.0/24 192.168.0.18 WAN 0
    9 ADC 192.168.8.0/24 192.168.8.100 lte1 0
    10 ADC 192.168.57.0/24 192.168.57.99 LAN 0
     
  10. 0 chain=forward action=mark-connection new-connection-mark=IPS-l3
    passthrough=yes in-interface=WAN log=no log-prefix=""

    1 chain=forward action=mark-connection new-connection-mark=IPS-lte
    passthrough=yes in-interface=WAN log=no log-prefix=""

    тут я бы использовал цепочку prerouting, иначе пакеты отправленные на роутер не будут маркироваться.

    Также необходимо маркировать и исходящие пакеты из роутера цепочка output. Мой пример:


    /ip firewall mangle
    add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether1-gateway new-connection-mark=From-WAN1 passthrough=yes
    add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=ether2-gateway new-connection-mark=From-WAN2 passthrough=yes

    add action=mark-routing chain=output connection-mark=From-WAN1 new-routing-mark=WAN1 passthrough=yes
    add action=mark-routing chain=output connection-mark=From-WAN2 new-routing-mark=WAN2 passthrough=yes

    add action=mark-routing chain=prerouting connection-mark=From-WAN1 in-interface-list=!WAN new-routing-mark=WAN1 passthrough=yes
    add action=mark-routing chain=prerouting connection-mark=From-WAN2 in-interface-list=!WAN new-routing-mark=WAN2 passthrough=yes



    /ip route
    add distance=1 gateway=ISP1_GW routing-mark=WAN1
    add distance=1 gateway=ISP2_GW routing-mark=WAN2
     
  11. dmierm

    dmierm Новый участник

    Сделал как в примере. Результат тот же, как только первый клиент подключатся, второй начинает подключаться через него.
     
  12. попробуйте теперь в роут rules сделать правило:

    interface = ваш OPVPN клиент
    action = look only in table
    table WAN2
     
  13. dmierm

    dmierm Новый участник

    Так тоже не работает.
     
  14. еще вариант, попробуйте от маркировать в цепочке postrouting действие new-routing-mark=WAN2 out-interface - OPVPN-client
     
  15. dmierm

    dmierm Новый участник

    Пробовал по всякому, через маркировку не работает. Зато железно работает правило в фаерволе, чем плох этот метод?
     
  16. если работает нормально, то думаю можно и так.