Ответы пользователя по тегу Mikrotik
  • Mikrotik, выбор предпочтительного шлюза на основе Address Lists

    Melkij
    @Melkij Автор вопроса
    PostgreSQL DBA
    Вот с таким mangle, кажется, работает как хотелось.
    /ip firewall mangle
    add action=mark-connection chain=input comment="mark input gw0" in-interface=\
        bridge-gw0 new-connection-mark=to_astral0 passthrough=no
    add action=mark-connection chain=input comment="mark input gw1" in-interface=\
        bridge-gw1 new-connection-mark=to_astral1 passthrough=no
    add action=mark-routing chain=output connection-mark=to_astral0 \
        new-routing-mark=to_astral0 passthrough=no
    add action=mark-routing chain=output connection-mark=to_astral1 \
        new-routing-mark=to_astral1 passthrough=no
    add action=mark-connection chain=forward connection-mark=no-mark \
        in-interface=bridge-gw0 new-connection-mark=to_astral0 passthrough=no
    add action=mark-connection chain=forward connection-mark=no-mark \
        in-interface=bridge-gw1 new-connection-mark=to_astral1 passthrough=no
    add action=jump chain=prerouting comment="process home connmark" \
        connection-mark=no-mark dst-address-type=!local in-interface=bridge-home \
        jump-target=prerouting_wan
    add action=jump chain=prerouting comment="process dmz connmark" \
        connection-mark=no-mark dst-address-type=!local in-interface=bridge-dmz \
        jump-target=prerouting_wan
    add action=jump chain=prerouting comment="set routing marks from home" \
        connection-mark=!no-mark in-interface=bridge-home jump-target=\
        prerouting_markroute
    add action=jump chain=prerouting comment="set routing marks from dmz" \
        connection-mark=!no-mark in-interface=bridge-dmz jump-target=\
        prerouting_markroute
    add action=mark-connection chain=prerouting_wan comment="use only gw0 list" \
        connection-mark=no-mark new-connection-mark=to_astral0 src-address-list=\
        wan_only_gw0
    add action=mark-connection chain=prerouting_wan comment="use only gw1 list" \
        connection-mark=no-mark new-connection-mark=to_astral1 src-address-list=\
        wan_only_gw1
    add action=mark-connection chain=prerouting_wan comment="use prefer gw0 list" \
        connection-mark=no-mark new-connection-mark=to_astral0 src-address-list=\
        wan_failover_prefer_gw0
    add action=mark-connection chain=prerouting_wan comment="use prefer gw1 list" \
        connection-mark=no-mark new-connection-mark=to_astral1 src-address-list=\
        wan_failover_prefer_gw1
    add action=mark-connection chain=prerouting_wan comment=PCC connection-mark=\
        no-mark new-connection-mark=to_astral0 per-connection-classifier=\
        both-addresses:2/0
    add action=mark-connection chain=prerouting_wan comment=PCC connection-mark=\
        no-mark new-connection-mark=to_astral1 per-connection-classifier=\
        both-addresses:2/1
    add action=mark-routing chain=prerouting_markroute comment=\
        "mark packet to_astral0" connection-mark=to_astral0 new-routing-mark=\
        to_astral0
    add action=mark-routing chain=prerouting_markroute comment=\
        "mark packet to_astral1" connection-mark=to_astral1 new-routing-mark=\
        to_astral1
    Ответ написан
    Комментировать
  • Как при каскадном подключении роутеров настроить маршрутизацию?

    Melkij
    @Melkij
    PostgreSQL DBA
    Я не сетевик и затруднюсь сказать, как это сделать верно, но что тут происходит:
    Для конкретики, 172.17.2.5 хочет послать пакет на 192.168.0.8. Это не его сеть, поэтому запрос уходит на микротик. Микротик по таблице маршрутизации посылает пакет на 172.17.2.117.
    Далее:
    Или tp-link дропает пакет нафиг из соображений безопасности - и надо разбираться с этим.
    Или tp-link спокойно пропускает пакет, где на него отвечает 192.168.0.8. Поскольку отправитель 172.17.2.5 не в его сети - ответ уходит вновь на tp-link. Там NATится по штатному правилу натить всё для WAN'а и уходит на 172.17.2.5. А 172.17.2.5 в итоге очень удивляется, что это за пакет от 172.17.2.117, он таких не ждёт - и выкидывает его. (в этом случае, видимо, надо поставить исключение для правила NAT'а)
    tcpdump на узлах скажет точно, кто куда доходит.
    Ответ написан