Jump to content
Калькуляторы

Два аплинка и разруливание по принципу "откуда пришел пакет, туда и ответить"

Есть MT, на котором будет три сетевых сегмента. Нужно настроить два аплинка (РТ и чей-то 4G), сегменты статически раскидать по аплинкам, но если какой-то аплинк упал, то весь трафик должен ходить через оставшийся аплинк.

Для входящего трафика ответные пакеты должны уходить в тот интерфейс, с которого они пришли.

Не поделитесь готовым примером?

Я такое как-то уже настраивал ранее (с помощью route rule и маркировки пакетов), но помню, что потратил кучу времени, потому что работало это все как-то нелогично. Но конфигурацию не сохранял, а тот настроенный микротик помер безвозвратно и конфигурацию с него не вытянуть.

Share this post


Link to post
Share on other sites

На вскидку всего не помню, но на Хабре есть целая статья с мануалом, посвященная, как это настроить.

Share this post


Link to post
Share on other sites

А как статья называлась?

Так то подобных статей в интернете тысячи, но 99% из них это перепечатка одни и тех же кривых примеров, которые как-то работают, но плохо и криво.

Я потому кучу времени и потратил, что приходилось подобный хлам отфильтровывать.

Share this post


Link to post
Share on other sites

настраивается PBR по source IP, вешается на интерфейсы нат, настраиваются дефолт маршруты с разными метриками и проверкой доступности шлюзов...

Share this post


Link to post
Share on other sites

В аттаче рабочие презентации с обьяснениями, делалось по ним много раз (хотя и не в полном обьеме). Фотографию шаманского бубна для отладки подобных конфигов нагуглите сами, мне лень.

presentation_6157_1554717194.pdf presentation_6827_1553517470.pdf

Share this post


Link to post
Share on other sites

Полистал презентацию — да, у меня настройка была сделана похожим образом.

Спасибо, возьму за основу.

Share this post


Link to post
Share on other sites

Просьба посмотреть и покритиковать конфиг.

Вроде бы все правильно, но глаз мог замылиться.

А объект далеко, выезжать на него не хотелось бы.

Скрытый текст
/interface bridge
add name=loopback
/interface ethernet
set [ find default-name=ether1 ] name=eth1-wan1
set [ find default-name=ether2 ] name=eth2-cams
set [ find default-name=ether3 ] name=eth3-staff
set [ find default-name=ether4 ] arp=reply-only name=eth4-guest
set [ find default-name=ether5 ] name=eth5-wan2
/interface pppoe-client
add add-default-route=yes default-route-distance=10 disabled=no interface=eth1-wan1 name=pppoe-rt password=<pwd> use-peer-dns=yes user=<usr>
/interface list
add name=lan
add name=wan
add name=mgmt
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip dhcp-server
add add-arp=yes disabled=no interface=eth2-cams lease-time=1w name=dhcp-cams
/ip pool
add name=pool-staff ranges=192.168.101.1-192.168.101.99
add name=pool-guest ranges=192.168.102.1-192.168.102.199
/ip dhcp-server
add add-arp=yes address-pool=pool-staff disabled=no interface=eth3-staff lease-time=2d name=dhcp-staff
add add-arp=yes address-pool=pool-guest disabled=no interface=eth4-guest lease-time=1h name=dhcp-guest
/ip neighbor discovery-settings
set discover-interface-list=none
/interface list member
add interface=eth2-cams list=lan
add interface=eth3-staff list=lan
add interface=eth4-guest list=lan
add interface=pppoe-rt list=wan
add interface=eth5-wan2 list=wan
add interface=eth3-staff list=mgmt
add interface=loopback list=lan
/ip address
add address=192.168.102.250/24 interface=eth4-guest network=192.168.102.0
add address=192.168.101.250/24 interface=eth3-staff network=192.168.101.0
add address=192.168.100.250/24 interface=eth2-cams network=192.168.100.0
add address=bb.bb.bb.2/30 interface=eth5-wan2 network=bb.bb.bb.0
add address=192.168.1.1/24 interface=eth1-wan1 network=192.168.1.0
add address=192.168.255.250 interface=loopback network=192.168.255.250
add address=192.168.201.250/24 interface=eth2-cams network=192.168.201.0
/ip cloud
set ddns-enabled=yes
/ip dhcp-server lease
add address=192.168.100.200 comment="POE Switch" mac-address=F8:F0:82:64:06:FC server=dhcp-cams
...
/ip dhcp-server network
add address=192.168.100.0/24 dns-server=192.168.100.250 gateway=192.168.100.250 netmask=24 ntp-server=192.168.100.250
add address=192.168.101.0/24 dns-server=192.168.101.250 gateway=192.168.101.250 netmask=24 ntp-server=192.168.101.250
add address=192.168.102.0/24 dns-server=192.168.102.250 gateway=192.168.102.250 netmask=24 ntp-server=192.168.102.250
/ip dns
set allow-remote-requests=yes servers=8.8.8.8
/ip dns static
add address=192.168.255.250 name=usersite.local
add address=192.168.255.250 name=ntp.usersite.local
add address=192.168.100.0 name=cams.usersite.local
add address=192.168.100.250 name=gw.cams.usersite.local
add address=192.168.100.240 name=nvr.cams.usersite.local
add address=192.168.101.0 name=staff.usersite.local
add address=192.168.101.250 name=gw.staff.usersite.local
add address=192.168.102.0 name=guest.usersite.local
add address=192.168.102.250 name=gw.guest.usersite.local
add address=192.168.1.1 name=wan1-link-gw.usersite.local
add address=192.168.1.20 name=wan1-link-remote.usersite.local
add address=192.168.1.21 name=wan1-link-local.usersite.local
/ip firewall address-list
add address=192.168.101.0/24 list=net-staff
add address=192.168.102.0/24 list=net-guest
add address=192.168.100.0/24 list=net-cams
add address=xx.xx.127.95 list=acl-mgmt
add address=xx.xx.124.80 list=acl-mgmt
add address=0.0.0.0/8 comment="source this" list=acl-bogon
add address=10.0.0.0/8 comment="private network" list=acl-bogon
add address=100.64.0.0/10 comment=CG-NAT list=acl-bogon
add address=127.0.0.0/8 comment="loopback addresses" list=acl-bogon
add address=169.254.0.0/16 comment="link-local subnet" list=acl-bogon
add address=172.16.0.0/12 comment="private network" list=acl-bogon
add address=192.0.0.0/24 comment=reserved list=acl-bogon
add address=192.0.2.0/24 comment="test network" list=acl-bogon
add address=192.42.172.0/24 comment=non-work list=acl-bogon
add address=192.88.99.0/24 comment="anycast relay" list=acl-bogon
add address=192.168.0.0/16 comment="private network" list=acl-bogon
add address=198.18.0.0/15 comment="test inter-network" list=acl-bogon
add address=198.51.100.0/24 comment="test network" list=acl-bogon
add address=203.0.113.0/24 comment="test network" list=acl-bogon
add address=224.0.0.0/4 comment=multicast list=acl-bogon
add address=240.0.0.0/4 comment=reserved list=acl-bogon
add address=0.0.0.0/8 list=acl-invalid
add address=127.0.0.0/8 list=acl-invalid
add address=192.168.100.0/24 list=net-lan
add address=192.168.101.0/24 list=net-lan
add address=192.168.102.0/24 list=net-lan
add address=192.168.101.200-192.168.101.249 list=acl-mgmt
add address=192.168.201.0/24 list=net-cams
add address=192.168.201.0/24 list=net-lan
add address=192.168.100.0/24 list=acl-wan1
add address=192.168.101.0/24 list=acl-wan1
add address=192.168.201.0/24 list=acl-wan1
add address=192.168.102.0/24 list=acl-wan2
/ip firewall filter
add action=accept chain=input comment=established connection-state=established
add action=accept chain=input comment=related connection-state=related
add action=accept chain=input comment=ping icmp-options=8:0-255 protocol=icmp
add action=accept chain=input comment="mgmt (allow)" dst-port=8291,22,23,80,443 protocol=tcp src-address-list=acl-mgmt
add action=drop chain=input comment="mgmt (deny)" dst-port=8291,22,23,80,443 protocol=tcp
add action=accept chain=input comment="common lan services" dst-port=53,123 in-interface-list=lan protocol=udp src-address-list=net-lan
add action=accept chain=input comment="any lan services" in-interface-list=lan src-address-list=net-staff
add action=drop chain=input comment="default rule"
add action=accept chain=forward comment=established connection-state=established
add action=accept chain=forward comment=related connection-state=related
add action=accept chain=forward comment="direct dstnat" connection-nat-state=dstnat dst-port=65000-65535 in-interface-list=wan protocol=tcp src-address-list=\
    net-cybercom
add action=accept chain=forward comment="lan access for staff" dst-address-list=net-lan src-address-list=net-staff
add action=drop chain=forward comment="default rule"
add action=accept chain=output comment="default rule"
/ip firewall mangle
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface-list=lan new-connection-mark=conn-wan1 passthrough=yes src-address-list=\
    acl-wan1
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface-list=lan new-connection-mark=conn-wan2 passthrough=yes src-address-list=\
    acl-wan2
# pppoe-rt not ready
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=pppoe-rt new-connection-mark=conn-wan1 passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark in-interface=eth5-wan2 new-connection-mark=conn-wan2 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=conn-wan1 in-interface-list=!wan new-routing-mark=wan1 passthrough=yes
add action=mark-routing chain=prerouting connection-mark=conn-wan2 in-interface-list=!wan new-routing-mark=wan2 passthrough=yes
add action=mark-routing chain=output connection-mark=conn-wan1 new-routing-mark=wan1 passthrough=yes
add action=mark-routing chain=output connection-mark=conn-wan2 new-routing-mark=wan2 passthrough=yes
/ip firewall nat
# pppoe-rt not ready
add action=src-nat chain=srcnat comment="WAN1 NAT" out-interface=pppoe-rt src-address-list=net-lan to-addresses=83.239.114.27
add action=src-nat chain=srcnat comment="WAN2 NAT" out-interface=eth5-wan2 src-address-list=net-lan to-addresses=193.232.250.2
add action=masquerade chain=srcnat out-interface-list=wan src-address-list=net-lan
add action=dst-nat chain=dstnat comment="MGMT WIFI-REMOTE (http)" dst-port=65501 in-interface-list=wan protocol=tcp src-address-list=net-cybercom \
    to-addresses=192.168.1.20 to-ports=80
add action=dst-nat chain=dstnat comment="MGMT WIFI-LOCAL (http)" dst-port=65502 in-interface-list=wan protocol=tcp src-address-list=net-cybercom \
    to-addresses=192.168.1.21 to-ports=80
add action=dst-nat chain=dstnat comment="WEB NVR" dst-port=65200 in-interface-list=wan protocol=tcp src-address-list=net-cybercom to-addresses=\
    192.168.100.240 to-ports=80
add action=dst-nat chain=dstnat comment="WEB NVR (alt)" dst-port=65201 in-interface-list=wan protocol=tcp src-address-list=net-cybercom to-addresses=\
    192.168.201.240 to-ports=80
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip route
add distance=1 gateway=pppoe-rt routing-mark=wan1
add distance=1 gateway=bb.bb.bb.1 routing-mark=wan2
add distance=20 gateway=bb.bb.bb.1
/ip route rule
add action=lookup-only-in-table disabled=yes src-address=aa.aa.aa.27/32 table=wan1
add action=lookup-only-in-table disabled=yes src-address=bb.bb.bb.2/32 table=wan2
/ip service
set telnet disabled=yes
set ftp disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/system clock
set time-zone-name=Europe/Moscow
/system identity
set name=USERSITE
/system ntp client
set enabled=yes primary-ntp=188.225.9.167 secondary-ntp=213.110.203.168
/system ntp server
set enabled=yes
/tool graphing interface
add
/tool graphing queue
add
/tool graphing resource
add
/tool mac-server
set allowed-interface-list=mgmt
/tool mac-server mac-winbox
set allowed-interface-list=mgmt

 

 

Share this post


Link to post
Share on other sites

В конфиге есть одна ошибка.

Нужно явно добавить разрешающее правило в forward, соответствующее NAT (как минимум, разрешить форвардинг из ACL net-lan на группу интерфейсов wan).

Самого по себе правила в ip firewall nat недостаточно.

Ну и правило в filter с критерием connection nat state srcnat почему-то не работает

Share this post


Link to post
Share on other sites

В 16.12.2021 в 20:32, alibek сказал:

Я такое как-то уже настраивал ранее (с помощью route rule и маркировки пакетов), но помню, что потратил кучу времени, потому что работало это все как-то нелогично. Но конфигурацию не сохранял, а тот настроенный микротик помер безвозвратно и конфигурацию с него не вытянуть.

Не надо ничего вытягивать.

 

Нужно просто 2 микротика, каждый работает со своим каналом и не надо ничего смотреть по поводу откуда пришел пакет.

 

Далее через PPC маркируете всех абонентов по нужной пропорции, 1 к 1 или 2 к 1 и т.п., то есть сколько процентов абонентов идет на один аплинк, и сколько на другой - и все будет работать без проблем.

Нужно больше каналов - добавляете больше микротиков, подключив их все к "центральному", на котором будете управлять трафиком.

Если какой-то канал сломается, просто пингом через него проверяется доступность интернета (обычно несколько ресурсов), и когда доступа нет просто меняется маршрут. А пинг по прежнему идет, когда восстановится и трафик переключится.

Share this post


Link to post
Share on other sites

2 часа назад, alibek сказал:

Спас-бросок провален.

Я прошу прощения но это черт возьми шедевральный ответ ;)

 

у него просто пенальти на спас броски, всегда почти проваливает - видать проклял кто-то

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.