2 провайдера mangle странности

Тема в разделе "Вопросы начинающих", создана пользователем Aleksandr, 10 апр 2020.

  1. Aleksandr

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

    Здравствуйте.
    Имею такой конфиг:
    /ip firewall mangle>
    add action=accept chain=prerouting dst-address-list=local src-address-list=local
    add action=mark-connection chain=input in-interface=ether8 new-connection-mark=AT-conn passthrough=yes
    add action=mark-connection chain=input in-interface=pppoe-out-rostelecom new-connection-mark=RT-conn passthrough=yes

    add action=mark-connection chain=input in-interface=ether8 new-connection-mark=AT-conn passthrough=yes
    add action=mark-connection chain=input in-interface=pppoe-out-rostelecom new-connection-mark=RT-conn passthrough=yes
    add action=mark-routing chain=output connection-mark=AT-conn new-routing-mark=to-AT passthrough=yes
    add action=mark-routing chain=output connection-mark=RT-conn new-routing-mark=to-RT passthrough=yes

    add action=mark-routing chain=prerouting comment="local_to_AT" new-routing-mark=to-AT passthrough=no src-address=192.168.1.0/24
    add action=mark-routing chain=prerouting comment="local_to_AT" new-routing-mark=to-AT passthrough=no src-address=192.168.252.0/24
    add action=mark-routing chain=prerouting comment="local_to_AT" new-routing-mark=to-AT passthrough=no src-address=192.168.254.0/24

    add action=mark-routing chain=prerouting comment="local_to_RT" new-routing-mark=to-RT passthrough=no src-address=192.168.1.0/24
    add action=mark-routing chain=prerouting comment="local_to_RT" new-routing-mark=to-RT passthrough=no src-address=192.168.252.0/24
    add action=mark-routing chain=prerouting comment="local_to_RT" new-routing-mark=to-RT passthrough=no src-address=192.168.254.0/24

    /ip firewall address-list
    add address=192.168.1.0/24 list=local
    add address=192.168.252.0/24 list=local
    add address=192.168.254.0/24 list=local

    /ip route
    add distance=3 gateway=x.x.x.1 routing-mark=to-AT
    add distance=4 gateway=pppoe-out-RT routing-mark=to-RT
    add check-gateway=ping distance=1 gateway=x.x.x.1
    add distance=2 gateway=pppoe-out-rostelecom

    Вроде все работает, и сети нужные по нужным провайдерам ходят и резервирование работает. Смущает правило в манглах
    /ip firewall mangle>
    add action=accept chain=prerouting dst-address-list=local src-address-list=local

    Без него сети не видят и не общаются с друг другом...
    Добавил новую подсеть 192.168.0.100.0/24 и пустил пинг с рабочей машины увидел отменную картину:
    C:\Users\admin>ping 192.168.100.1
    Обмен пакетами с 192.168.100.1 по с 32 байтами данных:
    Превышен интервал ожидания для запроса.
    Превышен интервал ожидания для запроса.
    Превышен интервал ожидания для запроса.
    Превышен интервал ожидания для запроса.

    C:\Users\admin>ping 192.168.100.2
    Обмен пакетами с 192.168.100.2 по с 32 байтами данных:
    Превышен интервал ожидания для запроса.
    Ответ от x.x.x.229: Заданный узел недоступен.
    Ответ от x.x.x.229: Заданный узел недоступен.
    Ответ от x.x.x.229: Заданный узел недоступен.
    пинги уходят в провайдера

    Сам микротик прекрасно пингует 192.168.100.2

    Стоит добавить подсеть в лист local или прописать правила
    /ip firewall mangle>
    add action=accept chain=prerouting disabled=yes dst-address=192.168.1.0/24 src-address=192.168.100.0/24
    add action=accept chain=prerouting disabled=yes dst-address=192.168.100.0/24 src-address=192.168.1.0/24
    Все работает.
    Помогите разобраться....

     
    Последнее редактирование: 10 апр 2020
  2. Илья Князев

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

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

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

    оно и понятно, только часть пакетов в этой схеме улетала к активному провайдеру. И нагрузка на CPU на RB2011UiAS была в диапазоне от 40-70%. В общем в субботу я посидел, переделал немного, все косяки ушли, и нагрузка на CPU спала до 10-40%
    /ip firewall mangle
    add action=mark-connection chain=input in-interface=ether8 new-connection-mark=AT-in passthrough=no disabled=no
    add action=mark-connection chain=input in-interface=pppoe-out-rostelecom new-connection-mark=RT-in passthrough=no disabled=no

    add action=mark-connection chain=forward in-interface=ether8 new-connection-mark=AT-for passthrough=no disabled=no
    add action=mark-routing chain=prerouting connection-mark=AT-for new-routing-mark=AT-rout passthrough=no src-address-list=local disabled=no

    add action=mark-connection chain=forward in-interface=pppoe-out-rostelecom new-connection-mark=RT-for passthrough=no disabled=no
    add action=mark-routing chain=prerouting connection-mark=RT-for new-routing-mark=RT-rout passthrough=no src-address-list=local disabled=no

    add action=mark-routing chain=output connection-mark=AT-in new-routing-mark=AT-rout passthrough=no disabled=no
    add action=mark-routing chain=output connection-mark=RT-in new-routing-mark=RT-rout passthrough=no disabled=no

    add action=mark-routing chain=prerouting connection-mark=no-mark dst-address-list=!local new-routing-mark=AT-rout passthrough=no src-address-list=to_AT disabled=no
    add action=mark-routing chain=prerouting connection-mark=no-mark dst-address-list=!local new-routing-mark=RT-rout passthrough=no src-address-list=to_RT disabled=no


    /ip route
    add check-gateway=ping comment="AT-route" distance=1 gateway=xx.xx.xx.xx pref-src=xx.xx.xx.zz routing-mark=AT-rout disabled=no
    add check-gateway=ping comment="RT-route" distance=1 gateway=pppoe-out-RT routing-mark=RT-rout disabled=no

    add check-gateway=ping comment="Default GW" distance=1 gateway=xx.xx.xx.xx pref-src=xx.xx.xx.zz routing-mark=AT-rout disabled=no
    add check-gateway=ping comment="Second Default GW" distance=2 gateway=pppoe-out-RT routing-mark=RT-rout disabled=no

    /ip firewall nat
    add action=accept chain=srcnat out-interface-list=internet src-address-list=local_nat_deny disabled=no
    add action=masquerade chain=srcnat out-interface-list=internet src-address-list=local disabled=no

    /ip firewall address-list
    add address=192.168.1.0/24 list=local
    add address=192.168.252.0/24 list=local
    add address=192.168.254.0/24 list=local

    add address=192.168.254.0/24 list=local_nat_deny
    add address=192.168.252.0/24 list=to_RT
    add address=192.168.1.0/24 list=to_AT
    Пояснение
    Листы
    local - все сети.
    Листы to_RT и to_AT - описывают сети кому в какого провайдера выходить
    local_nat_deny - этим сетям инет не нужен)

    И теперь имею разделение сетей по провайдерам, с полным автоматическим переключение в случай отказа одного из провайдеров.