Переключение провайдеров, при включенном резервном не работает основной

Тема в разделе "Маршрутизация", создана пользователем 10000volt, 14 сен 2015.

  1. 10000volt

    10000volt Участник

    Есть два провайдера.
    1 - проводной, с получением адреса по ДХЦП, подсеть 172.16.128.0/17, на интерфейсе ether1
    2 - биллайновский роутер, тоже раздает адрес микротику по ДХЦП из сети 192.168.0.0/24, на интерфейсе lte1

    DHCP клиент:
    /ip dhcp-client
    add add-default-route=no comment="[INET1]" dhcp-options=hostname,clientid disabled=no interface=ether1 use-peer-dns=no use-peer-ntp=no
    add add-default-route=no comment="[LTE]" dhcp-options=hostname,clientid disabled=no interface=lte1 use-peer-dns=no use-peer-ntp=no

    Маршруты прописаны руками (провайдеры переключаются через distance):
    /ip route
    add check-gateway=arp distance=10 gateway=172.16.178.1
    add check-gateway=arp distance=21 gateway=192.168.0.1

    Настроен мангл, чтобы пакеты пришедшие на провайдера 1, уходили обратно через провайдера 1.
    /ip firewall mangle
    add action=mark-connection chain=input comment="[INET1_MANGLE]" in-interface=ether1 new-connection-mark="ISP1 -> Input" passthrough=no
    add action=mark-routing chain=output connection-mark="ISP1 -> Input" new-routing-mark=isp1 passthrough=no
    add action=mark-connection chain=input comment="[INET2_MANGLE]" in-interface=lte1 new-connection-mark="ISP 2 -> Input" passthrough=no
    add action=mark-routing chain=output connection-mark="ISP 2 -> Input" new-routing-mark=isp2 passthrough=no

    Проблема в том, что если активен провайдер 1, команда ping ya.ru interface=lte1 (на роутере) не отрабатывает, т.е. пакеты через провайдера 2 просто не могут идти.
    И наоборот если активен провайдер 2, команда ping ya.ru interface=ether1 не отрабатывает, пакеты через провайдера 1 идти не могут.
    Прошивки пробовал 6.31, 6.26.

    НУЖНО чтобы в независимости от distance на внешний запрос через ether1, ответ уходил через ether1.
    Вообще чтобы я мог отправлять пакеты через любого провайдера, в не зависимости от того какой активен.
    Я мог-бы добавить оба шлюза в один маршрут, но тогда не смогу их переключать...
    Пните в нужном направлении. Какой-нибуть мануал может почитать?
     
    Последнее редактирование: 15 сен 2015
  2. Илья Князев

    Илья Князев Администратор Команда форума

    Попробуйте конструкцию вида gateway=1.1.1.1%interface_name
    Кто на Output будет новые пакеты маркировать ?
    add action=mark-routing chain=output src-address=172.16.0.0/12 new-routing-mark=isp2 passthrough=no
    И где маршруты с марками ? Вам надо оставить маршруты как без маркировок, так и с ними.
     
  3. 10000volt

    10000volt Участник

    Чем плох: add action=mark-routing chain=output connection-mark="ISP 2 -> Input" new-routing-mark=isp2 passthrough=no
    Ок. Тогда обновить на более старую версию и добавить маршруты по умолчанию без маркировок. По результату отпишусь.
     
  4. Илья Князев

    Илья Князев Администратор Команда форума

    Вы пингуете с роутера внешний хост. Откуда у вас возьмется connection mark ? Пакета ведь на вход не пришло.
    Смотрим где у нас prerouting, где input и где output
    И откуда у вас на Local Process Out возьмется маркировка:

    [​IMG]
     
  5. xlix

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

    Илья, здравствуйте, напомните пожалуйста, что значит эта конструкция?
    На курсах Вы тоже её упоминали, но из головы вылетело совершенно...
    В wiki копал, тоже не нашел.
     
  6. Илья Князев

    Илья Князев Администратор Команда форума

    Идти на шлюз 1.1.1.1 через интефейс interface_name.
    Нужна когда
    1. У вас шлюз доступен через несколько интересов
    2. Когда вам "повезло" и два разных провайдера дали один и тот же шлюз.
     
    xlix нравится это.