Одновременный доступ из вне через 2 WAN.

Тема в разделе "Вопросы начинающих", создана пользователем Bizz..., 6 ноя 2017.

  1. Bizz...

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

    Здравствуйте, товарищи!
    После 2-х дней мучений, так и не смог решить задачу.
    Есть 2 провайдера (WAN1 и WAN2) со статическими адресами, подключены в один микротик, и настроены в режиме резервирование по средством переключения дистанции с одного на другой.
    Все работает отлично.
    В этой схеме когда дистанция меньше у WAN1, WAN2 не пингуется снаружи, и соответственно его адрес нельзя использовать для доступа на микротик или на врученную часть сети через проброс портов.
    Если сделать дистанцию меньше на WAN2, становится все наоборот, WAN1 не виден снаружи.
    WAN=111.11.11.128
    WAN=22.22.22.34
    делал маркировку соединений
    Код:
    /ip firewall mangle
    add action=mark-connection chain=input dst-address11.11.11.128 in-interface="ether6 WAN1" new-connection-mark=com-WAN1 passthrough=yes
    add action=mark-routing chain=output connection-mark=com-WAN1 new-routing-mark=WAN-1 passthrough=yes
    add action=mark-connection chain=input dst-address=22.22.22.34 in-interface="ether7 WAN2" new-connection-mark=com-WAN2 passthrough=yes
    add action=mark-routing chain=output connection-mark=com-WAN2 new-routing-mark=WAN-2 passthrough=yes
    
    Если после этого промаркировать руты, то WAN1 и WAN2 начинают оба пинговаться снаружи, но при этом внутри сети пропадает интернет "Ответ от 10.0.0.1: Заданный узел недоступен."

    Подскажите, какой момент я упустил?
     
  2. Bizz...

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

    Вот полный конфиг
    Код:
    /interface bridge
    add arp=proxy-arp name=Bridge-local
    add disabled=yes fast-forward=no name="bridge 10.0.0.15"
    /interface ethernet
    set [ find default-name=ether6 ] mac-address=78:24:AF:E5:34:60 name="ether6 WAN1"
    set [ find default-name=ether7 ] mac-address=00:18:F8:B8:DC:5D name="ether7 WAN2"
    set [ find default-name=ether9 ] master-port=ether8
    /interface l2tp-client
    add allow=mschap2 connect-to=77.77.77.175 disabled=no name=l2tp-out1 password=PasPasPas user=UserUser
    /ip neighbor discovery
    set "ether6 WAN1" discover=no
    set "ether7 WAN2" discover=no
    /ip pool
    add name=dhcp_pool1 ranges=10.0.0.170-10.0.0.254
    add name=pool_l2tp ranges=10.0.0.160-10.0.0.169
    /ip dhcp-server
    add address-pool=dhcp_pool1 disabled=no interface=Bridge-local lease-time=1h name=dhcp1
    /ppp profile
    add bridge=Bridge-local dns-server=10.0.0.1,8.8.8.8 local-address=10.0.0.1 \
        name=L2TP-server remote-address=pool_l2tp use-compression=no \
        use-encryption=yes use-mpls=yes
    add bridge=Bridge-local change-tcp-mss=yes dns-server=10.0.0.1,8.8.8.8 \
        local-address=10.0.0.1 name=PPTP-server remote-address=pool_l2tp \
        use-compression=no use-encryption=no use-mpls=no
    /interface bridge port
    add bridge="bridge 10.0.0.15" disabled=yes interface=ether10
    add bridge=Bridge-local interface=ether8
    add bridge=Bridge-local interface=wlan1
    add bridge=Bridge-local interface=ether1
    add bridge=Bridge-local interface=ether2
    add bridge=Bridge-local interface=ether5
    add bridge=Bridge-local interface=ether4
    add bridge=Bridge-local interface=ether3
    /interface l2tp-server server
    set authentication=mschap2 default-profile=L2TP-server enabled=yes \
        ipsec-secret=SecSec use-ipsec=required
    /interface pptp-server server
    set default-profile=PPTP-server
    /ip address
    add address=10.0.0.15/24 interface="bridge 10.0.0.15" network=10.0.0.0
    add address=10.0.0.1/24 interface=Bridge-local network=10.0.0.0
    /ip dhcp-client
    add add-default-route=no dhcp-options=hostname,clientid disabled=no interface="ether6 WAN1"
    add add-default-route=no dhcp-options=hostname,clientid disabled=no interface="ether7 WAN2"
    /ip dhcp-server network
    add address=10.0.0.0/24 dns-server=10.0.0.1,8.8.8.8,8.8.4.4 gateway=10.0.0.1
    /ip dns
    set allow-remote-requests=yes servers=8.8.8.8,77.88.8.8,10.0.0.1
    /ip dns static
    add address=195.82.146.214 name=rutracker.org
    /ip firewall address-list
    add address=10.0.5.2 disabled=yes list=l2tp_out1
    add address=195.82.146.214 disabled=yes list=l2tp_out1
    add address=10.0.0.0/24 list=local_net
    /ip firewall filter
    add action=drop chain=input comment="\CE\F2\EA\EB\FE\F7\E0\E5\EC \E2\ED\E5\F8\
        \ED\E5\E5 \F1\EE\E5\E4\E8\ED\E5\ED\E8\E5 \EA DNS" dst-address=\
        11.11.11.128 dst-port=53 in-interface="ether6 WAN1" log-prefix=\
        query_in_drop protocol=udp
    add action=drop chain=input comment="\CE\F2\EA\EB\FE\F7\E0\E5\EC \E2\ED\E5\F8\
        \ED\E5\E5 \F1\EE\E5\E4\E8\ED\E5\ED\E8\E5 \EA DNS WAN1" dst-port=53 \
        in-interface="ether6 WAN1" protocol=udp
    add action=drop chain=input comment="\CE\F2\EA\EB\FE\F7\E0\E5\EC \E2\ED\E5\F8\
        \ED\E5\E5 \F1\EE\E5\E4\E8\ED\E5\ED\E8\E5 \EA DNS WAN2" dst-port=53 \
        in-interface="ether7 WAN2" protocol=udp
    add action=drop chain=output comment=\
        "\C7\E0\EF\F0\E5\F2 DNS GOOGLE \F7\E5\F0\E5\E7 WAN2" dst-address=8.8.4.4 \
        out-interface="ether7 WAN2"
    add action=drop chain=output comment=\
        "\C7\E0\EF\F0\E5\F2 DNS Yandex \F7\E5\F0\E5\E7 WAN2" dst-address=\
        77.88.8.1 out-interface="ether7 WAN2"
    add action=drop chain=input comment="\C7\E0\EF\F0\E5\F2 \ED\E0 WAN \E0\E4\F0\
        \E5\F1\E0 11.11.11.128 \E4\EE\F1\F2\F3\EF \EA 80 \EF\EE\F0\F2\F3" \
        dst-address=11.11.11.128 dst-port=80 protocol=tcp
    add action=drop chain=input comment="\C7\E0\EF\F0\E5\F2 \ED\E0 WAN \E0\E4\F0\
        \E5\F1\E0 22.22.22.34 \E4\EE\F1\F2\F3\EF \EA 80 \EF\EE\F0\F2\F3" \
        dst-address=22.22.22.34 dst-port=80 protocol=tcp
    add action=accept chain=input protocol=icmp
    add action=accept chain=forward protocol=icmp
    add action=accept chain=forward comment="allow vpn to lan" disabled=yes \
        in-interface=all-ppp out-interface=Bridge-local src-address=10.0.0.0/24
    
    /ip firewall mangle
    add action=mark-routing chain=prerouting disabled=yes dst-address-list=\
        l2tp_out1 new-routing-mark=l2tp_out1 passthrough=no
    add action=mark-routing chain=prerouting comment="\EF\F3\F1\EA\E0\E5\EC \E2\E5\
        \F1\FC \F2\F0\E0\F4\E8\EA 10.0.0.245 \F7\E5\F0\E5\E7 VPN" disabled=yes \
        new-routing-mark=l2tp_out1 passthrough=yes src-address=10.0.0.245
    /ip firewall nat
    add action=masquerade chain=srcnat out-interface="ether6 WAN1"
    add action=masquerade chain=srcnat out-interface="ether7 WAN2"
    add action=masquerade chain=srcnat comment="\EC\E0\F1\EA\E0\F0\E0\E4\E8\ED\E3 \
        \E4\EB\FF \EB\EE\EA\E0\EB\FC\ED\EE\E9 \F1\E5\F2\E8 (\ED\E5\E7\ED\E0\FE \ED\
        \F3\E6\E5\ED \E8\EB\E8 \ED\E5\F2, \F0\E0\E1\EE\F2\E0\E5\F2 \E8 \E1\E5\E7 \
        \ED\E5\E3\EE)" disabled=yes src-address=10.0.0.0/24
    add action=dst-nat chain=dstnat comment="rdp 3389" dst-address=11.11.11.128 dst-port=3389 protocol=tcp src-address=\
        10.0.0.0/24 to-addresses=10.0.0.140 to-ports=3389
    add action=masquerade chain=srcnat comment="rdp 3389" dst-address=10.0.0.140 dst-port=3389 protocol=tcp src-address=10.0.0.0/24 \
        to-addresses=10.0.0.140 to-ports=3389
    add action=masquerade chain=srcnat comment=VPN-E out-interface=l2tp-out1
    add action=dst-nat chain=dstnat comment="rdp 3389 \ED\E0 t450 (WAN1)" \
        dst-address=11.11.11.128 dst-port=3389 protocol=tcp to-addresses=\
        10.0.0.140 to-ports=3389
    add action=dst-nat chain=dstnat comment="rdp 3389 \ED\E0 t450 (WAN2)" \
        dst-address=22.22.22.34 dst-port=3389 protocol=tcp to-addresses=\
        10.0.0.140 to-ports=3389
    add action=dst-nat chain=dstnat comment="\EA\E0\EC\E5\F0\FB" dst-address=\
        11.11.11.128 dst-port=8120 protocol=tcp to-addresses=10.0.0.180 \
        to-ports=8120
    add action=dst-nat chain=dstnat comment="WEB to WAN 8081" dst-address=\
        11.11.11.128 dst-port=8081 protocol=tcp to-addresses=10.0.0.1 to-ports=\
        80
    add action=dst-nat chain=dstnat comment="WEB to WAN 8081" dst-address=\
        22.22.22.34 dst-port=8081 protocol=tcp to-addresses=10.0.0.1 to-ports=80
    add action=masquerade chain=srcnat comment=L2TP-server disabled=yes \
        out-interface=all-ppp
    /ip route
    add distance=1 gateway=l2tp-out1 routing-mark=l2tp_out1
    add comment=ISP1 distance=3 gateway=11.11.11.1
    add comment=ISP2 distance=4 gateway=22.22.22.254
    add distance=30 gateway=Bridge-local
    add check-gateway=ping disabled=yes distance=1 gateway=10.0.0.1
    add comment="\C4\EE\F1\F2\F3\EF \E4\EE DNS GOOGLE \F2\EE\EB\FC\EA\EE \F7\E5\F0\
        \E5\E7 WAN1" distance=1 dst-address=8.8.4.4/32 gateway=11.11.11.1
    add distance=10 dst-address=10.0.5.0/24 gateway=l2tp-out1
    add distance=10 dst-address=10.0.8.0/24 gateway=l2tp-out1
    add comment="\C4\EE\F1\F2\F3\EF \E4\EE DNS Yandex \F2\EE\EB\FC\EA\EE \F7\E5\F0\
        \E5\E7 WAN1" distance=1 dst-address=77.88.8.1/32 gateway=11.11.11.1
    add comment="rutracker.org \F7\E5\F0\E5\E7 VPN" distance=1 dst-address=\
        195.82.146.214/32 gateway=l2tp-out1
    /ip service
    set telnet disabled=yes
    set ftp disabled=yes
    set ssh address=10.0.0.0/24
    set api disabled=yes
    set api-ssl disabled=yes
    /ppp secret
    add name=admin password=PasPasPas profile=L2TP-server service=l2tp
    /system clock
    set time-zone-name=Europe/Moscow
    /system identity
    set name=MT
    /system logging
    add action=echo topics=caps
    add prefix=debug topics=wireless
    /system script
    /system watchdog
    set no-ping-delay=10m watch-address=10.0.0.1
    /tool netwatch
    add comment="\EF\E5\F0\E2\E0\FF \E2\E5\F0\F1\E8\FF" disabled=yes down-script="\
        /log error \"ISP1 IS DOWN\"\r\
        \n/ip route enable [find comment=\"ISP2\"];\r\
         \n/log error \"ISP1 IS UP\";\r\
        \n/ip route disable [find comment=\"ISP2\"];\r\
    add comment="\EF\F0\EE\E2\E5\F0\EA\E0 GW WAN1" down-script="/log error \"GW 11.11.11.1 WAN1 DOWN\";\r\
    add comment="\EF\F0\EE\E2\E5\F0\EA\E0 GW WAN2" down-script="/log error \"GW 22.22.22.254 WAN2 DOWN\";\r\
    add comment="\ED\EE\E2\E0\FF \E2\E5\F0\F1\E8\FF \F1 \EF\F0\EE\E2\E5\F0\EA\EE\
        \E9 \E8 \EF\EE DNS Yandex" down-script=":local time [/sys clock get time];\
        \r\
        \n:local hour [: pick [/system clock get time] 0 2];\r\
        \n\r\
        \n/log warning \"server 8.8.4.4 fail\85\";\r\
        \n:local time [/sys clock get time];\r\
        \n:local checkip [/ping 77.88.8.1 count=10];\r\
        \n:if (checkip = 0) do={\r\
        \n\r\
        \n/log error \"ISP1 IS DOWN\";\r\
        \n#/ip route enable [find comment=\"ISP2\"];\r\
        \n\r\
        \n/ip route set distance=4 numbers=[find comment=ISP1];\r\
        \n/ip route set distance=3 numbers=[find comment=ISP2];\r\
        \n\r\
        \n:delay 3\r\
        \n#\E7\E0\EA\F0\FB\E2\E0\E5\EC \E7\E0\E2\E8\F1\F8\E8\E5 \ED\E0 \F1\F2\E0\
        \F0\EE\EC \EB\E8\ED\EA\E8 \F1\E8\EF \EA\EE\ED\ED\E5\EA\F2\FB\r\
        \n/system script run udp_sip_drop;\r\
        \n\r\
        \n:if (\$hour >= 9 and \$hour <= 22) do={\r\
        \n\r\
        \n}" host=8.8.4.4 interval=15s timeout=2s up-script=":local time [/sys clo\
        ck get time];\r\
        \n/log error \"ISP1 IS UP \$time\";\r\
        \n#/ip route disable [find comment=\"ISP2\"];\r\
        \n\r\
        \n/ip route set distance=3 numbers=[find comment=ISP1];\r\
        \n/ip route set distance=4 numbers=[find comment=ISP2];\r\
        \n\r\
        \n:delay 3\r\
        \n#\E7\E0\EA\F0\FB\E2\E0\E5\EC \E7\E0\E2\E8\F1\F8\E8\E5 \ED\E0 \F1\F2\E0\
        \F0\EE\EC \EB\E8\ED\EA\E8 \F1\E8\EF \EA\EE\ED\ED\E5\EA\F2\FB\r\
        \n/system script run udp_sip_drop;\r\
    
     
  3. Bizz...

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

    Хочется сохранить функционал основной(WAN1)/резервный(WAN2) канал, но при этом чтобы снаружи до внутренней сети был доступ с обоих WAN.
     
  4. Разбирайтесь с dual-WAN. Вот тут посмотрите:
    https://spw.ru/forum/threads/dostup-k-mikrotik-iz-vne-po-wan1-wan2.452/
     
  5. Bizz...

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

    Эту тему я прочитал еще до написания поста.

    Последняя версия конфига выглядит так:
    Код:
    /ip firewall mangle
    add action=mark-connection chain=input dst-address=11.11.11.128 in-interface="ether6 WAN1"new-connection-mark=com-WAN1 passthrough=no
    add action=mark-routing chain=output connection-mark=com-WAN1 new-routing-mark=WAN-1 passthrough=no
    add action=mark-connection chain=input dst-address=22.22.22.34 in-interface="ether7 WAN2" new-connection-mark=com-WAN2 passthrough=no
    add action=mark-routing chain=output connection-mark=com-WAN2 new-routing-mark=WAN-2 passthrough=no
    add action=mark-routing chain=prerouting dst-address-list=!LocalNet new-routing-mark=Local-Net-WAN1 passthrough=no src-address=10.0.0.0/24
    add action=mark-routing chain=prerouting dst-address-list=!LocalNet new-routing-mark=Local-Net-WAN2 passthrough=no src-address=10.0.0.0/24
    
    /ip route
    add comment=Local-Net-WAN1 disabled=yes distance=10 gateway=11.11.11.1 routing-mark=Local-Net-WAN1
    add comment=Local-Net-WAN2 disabled=yes distance=11 gateway=22.22.22.254 routing-mark=Local-Net-WAN2
    add comment=ISP1 distance=3 gateway=11.11.11.1 routing-mark=WAN1
    add comment=ISP2 distance=4 gateway=22.22.22.254 routing-mark=WAN2
    add distance=30 gateway=Bridge-local
    
    /ip firewall nat
    add action=masquerade chain=srcnat out-interface="ether6 WAN1"
    add action=masquerade chain=srcnat out-interface="ether7 WAN2"
    add action=masquerade chain=srcnat src-address=10.0.0.0/24
    add action=dst-nat chain=dstnat comment="WEB to WAN 8081" dst-address=11.11.11.128 dst-port=8081 protocol=tcp to-addresses=10.0.0.1 to-ports=80
    add action=dst-nat chain=dstnat comment="WEB to WAN 8081" dst-address=22.22.22.34 dst-port=8081 protocol=tcp to-addresses=10.0.0.1 to-ports=80
    add action=dst-nat chain=dstnat comment="rdp 43389 (WAN1)" dst-address=11.11.11.128 dst-port=43389 protocol=tcp to-addresses=10.0.0.140 to-ports=3389
    add action=dst-nat chain=dstnat comment="rdp 43389 (WAN2)" dst-address=22.22.22.34 dst-port=43389 protocol=tcp to-addresses=10.0.0.140 to-ports=3389
    
    
    

    На выходе получил:
    + оба внешних адреса пингуются снаружи
    - WEB микротика ни с одного адреса снаружи не доступен, по какой-то причине перестал работать проброс портов dst-port=8081 -> to-ports=80
    + в локальной сети появился интернет, работает по наименьшей дистанции, срабатывает условие add comment=Local-Net-WAN1 disabled=yes distance=10 gateway=11.11.11.1 routing-mark=Local-Net-WAN1
    - проброс RDP порта(в моем случае 43389) работает только с одного внешнего адреса в которого в рутах меньшая дистанция
     
  6. 0 src-address=109.x.x.x/32 action=lookup-only-in-table table=WAN1

    1 src-address=87.x.x.x/32 action=lookup-only-in-table table=WAN2

    Есть такие записи в route rules ?
     
  7. /ip route
    add distance=1 gateway=109.x.x.x routing-mark=WAN1
    add distance=1 gateway=87.x.x.x routing-mark=WAN2
    add check-gateway=arp distance=1 gateway=109.x.x.x
    add check-gateway=arp distance=2 gateway=87.x.x.x
     
  8. Bizz...

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

    Не было, сделал.

    Сделал, единственное что заработало - WEB микротика стал быть доступен из WAN где на шлюзе меньшая дистанция.
     
  9. еще разок конфиг
     
  10. Илья Князев

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

    У вас вот тут ошибка. Вы в инпут коннекшины маркируете, а трафик через NAT идет в Forward. Надо
    Код:
    /ip firewall mangle
    #Conection MARK
    add action=mark-connection chain=prerouting dst-address=11.11.11.128 in-interface="ether6 WAN1"new-connection-mark=com-WAN1 passthrough=no
    add action=mark-connection chain=prerouting dst-address=22.22.22.34 in-interface="ether7 WAN2" new-connection-mark=com-WAN2 passthrough=no
    
    #Output MARK route
    add action=mark-routing chain=output connection-mark=com-WAN1 new-routing-mark=WAN-1 passthrough=no
    add action=mark-routing chain=output connection-mark=com-WAN2 new-routing-mark=WAN-2 passthrough=no
    
    #Prerouting Mark Route
    add action=mark-routing chain=prerouting in-interface=!"ether6 WAN1" connection-mark=com-WAN1 new-routing-mark=WAN1 passthrough=no
    add action=mark-routing chain=prerouting in-interface=!"ether7 WAN2" connection-mark=com-WAN2 new-routing-mark=WAN2 passthrough=no src-address=10.0.0.0/24
    
    То есть соединения на врохде маркируем в прероутинг (через него проходит и input, и forward)
    А потом маркируем маршруты НАРУЖУ.
    Обратите внимание на интерфейсы в нижнем прероутинге.
     
    Последнее редактирование: 20 май 2018
  11. zrcadlo7

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

    Так-с, пардон за некромантию, но прям вот ситуация подходит.

    Как работает dstnat при нескольких WAN понятно, но что делать, если потом в мэнглах начинается замена connection mark для QoS? Прям вот брать и для QoS сразу пакетами метить?
     
  12. Илья Князев

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

    Или извращаться с прямой маркировкой или на QoS выделять другой роутер.