Maxlinus
@Maxlinus

Как настроить проброс портов при балансировки Mikrotik PCC?

привет, подскажите как пробросить порт при использовании PCC

/ip firewall mangle
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=ether2 new-connection-mark=ether1_conn passthrough=yes
add action=mark-connection chain=prerouting connection-state=new \
    in-interface=ether3 new-connection-mark=ether2_conn passthrough=yes
add action=mark-routing chain=output connection-mark=ether1_conn \
    new-routing-mark=to_ether1 passthrough=yes
add action=mark-routing chain=output connection-mark=ether2_conn \
    new-routing-mark=to_ether2 passthrough=yes
add action=mark-connection chain=prerouting connection-state=new \
    dst-address-type=!local in-interface=ether1-master new-connection-mark=\
    ether1_conn passthrough=yes per-connection-classifier=both-addresses:2/0
add action=mark-connection chain=prerouting connection-state=new \
    dst-address-type=!local in-interface=ether1-master new-connection-mark=\
    ether2_conn passthrough=yes per-connection-classifier=both-addresses:2/1
add action=mark-routing chain=prerouting connection-mark=ether1_conn \
    in-interface=ether1-master new-routing-mark=to_ether1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ether2_conn \
    in-interface=ether1-master new-routing-mark=to_ether2 passthrough=yes
add action=accept chain=prerouting dst-address=192.168.6.0 in-interface=\
    ether1-master
add action=accept chain=prerouting dst-address=192.168.5.0 in-interface=\
    ether1-master


/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether2
add action=masquerade chain=srcnat out-interface=ether3
  • Вопрос задан
  • 973 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Если у вас не только в prerouting стоят первые 4 правила, но и в таблице маршрутизации созданы routing mark соответствующие, то картина ничем не отличается от одного аплинка. Эти правила как раз и обеспечивают ответ на входящее соединение именно на тот канал, откуда запрос пришёл.

Я для удобства в nat завёл цепочку port_forward, в которую перебрасывал пакеты по правилам in-interface=ether2 и in-interface=ether3. А в этой цепочке уже обычный форвардинг без привязки к реальному интерфейсу.

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether3-gw0
add action=masquerade chain=srcnat out-interface=ether4-gw1
add action=jump chain=dstnat in-interface=ether3-gw0 jump-target=port_forwarding_udp protocol=udp
add action=jump chain=dstnat in-interface=ether4-gw1 jump-target=port_forwarding_udp protocol=udp
add action=jump chain=dstnat in-interface=ether3-gw0 jump-target=port_forwarding_tcp protocol=tcp
add action=jump chain=dstnat in-interface=ether4-gw1 jump-target=port_forwarding_tcp protocol=tcp
add action=dst-nat chain=port_forwarding_udp dst-port=6891 protocol=udp to-addresses=192.168.5.20
add action=dst-nat chain=port_forwarding_tcp dst-port=80 protocol=tcp to-addresses=192.168.7.10

Если с какого-то аплинка порт остаётся закрыт, попробуйте попинговать сам роутер. Если пингов нет на том же самом провайдере - разбирайтесь с routing-mark. Я не раскурил в своё время, как работает эта магия с check-gateway 8.8.8.8.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Maxlinus
@Maxlinus Автор вопроса
я не до конца понимаю где у меня ошибка:(
правило проброса я создаю как обычно?

/ip route
add distance=1 gateway=8.8.4.4 routing-mark=to_ether1
add distance=1 gateway=8.8.8.8 routing-mark=to_ether1
add distance=1 gateway=8.8.4.4 routing-mark=to_ether2
add distance=1 gateway=8.8.8.8 routing-mark=to_ether2
add check-gateway=ping distance=1 gateway=8.8.8.8
add check-gateway=ping distance=1 gateway=8.8.4.4
add distance=1 dst-address=8.8.4.4/32 gateway=192.168.6.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=192.168.5.1 scope=10
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы