не восстанавливается ipsec tunnel после реконнекта pppoe

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

  1. z0rg59r

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

    Mikrotik 951Ui-2HnD v6.34.3
    1й порт: интернет pppoe (stat IP) Ростелеком.
    2й порт: LAN работает в бридже с WLan.

    Поднят vpn туннель ipsec между Mikrotik и Ubuntu сервером через интернет. Все работает отлично, пока на Микротике не произойдет disconnect/reconnect pppoe сессии.
    После этого туннель восстанавливается 5-6 минут или вообще не восстанавливается, в логах сообщение, что попытка установить туннель неудачна.
    Также после реконнекта pppoe долго (практически столько же, сколько восстанавливается туннель) регистрируется sip мини-атс, которая подключена к Lan. (Sip сервер в интернете). Остальной трафик TCP ходит без проблем в обе стороны.
    Пробовал: вкл/выкл ipsec peer, вкл/выкл pppoe, flush SA, отключал все правила в Filter Rules - ничего не помогает.
    Но после перезагрузки микротика, туннель поднимается моментально и мини-атс регистрируется сразу.
    Общее в работе туннеля и мин-иатс, что они работают по протоколу UDP.

    Подскажите, в чем проблема? Особенность работы pppoe, или не правильная настройка?
     
  2. Илья Князев

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

    В ipsec dpd настроен?
     
  3. z0rg59r

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

    Спасибо, за отклик!
    Да, dpd настроен по умолчанию, 120/5. Даже если бы был не настроен, то эта проблема решалась переподключением ipsec peer или flush SA. А получается, что после реконнекта pppoe микротик не видит удаленную сторону для установки туннеля, и так же атс не может зарегистрироваться на sip сервере 5-6 мин. :( После перезагрузки туннель восстанавливается моментально, так и атс регистрируется сразу.
     
  4. z0rg59r

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

    Провайдер переподключает pppoe раз в сутки с момента поднятия сессии. Пока сделал топорное решение - по расписанию, ночью, через 23:55, микротик перезагружается, тем самым обновляя сессию pppoe провайдера...:(
     
  5. Илья Князев

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

    Зачищайте Connection Tracker после смены внешнего адреса.
     
  6. z0rg59r

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

    Так ведь адрес не меняется, он статический...Или я не правильно понял?
     
  7. Илья Князев

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

    Статический на PPPoE интерфейсе?
     
  8. z0rg59r

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

    Статический на pppoe, с начала сессии провайдер выдает постоянный белый ip.
     
  9. Илья Князев

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

    Он не статический. Он динамический, хоть и один и тот же.
    Копайте в направлении Connection Tracker
     
  10. z0rg59r

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

    Касательно Connection Tracker все таймауты по умолчанию.
    Подскажите, работа Connection Tracker может влиять на восстановление туннеля после реконнекта pppoe?

    Так же заметил, что после жесткого откл/вкл питания микротика, те же 5-6 минут не пускает в винбокс из вне, не пингуется, в логах:
    mar/28 09:02:05 pppoe,ppp,info pppoe-out1: initializing...
    mar/28 09:02:05 pppoe,ppp,info pppoe-out1: connecting...
    mar/28 09:02:06 interface,info ether1 link up (speed 100M, full duplex)
    mar/28 09:02:06 interface,info ether2 link up (speed 100M, full duplex)
    mar/28 09:02:06 interface,info ether3 link up (speed 100M, full duplex)
    mar/28 09:02:08 pppoe,ppp,info pppoe-out1: authenticated
    mar/28 09:02:08 pppoe,ppp,info pppoe-out1: connected
    mar/28 09:02:09 system,info item added
    mar/28 09:02:09 system,info item added
    mar/28 09:03:00 system,error,critical router was rebooted without proper shutdown
    mar/28 09:08:41 system,info,account user admin logged in from 1.1.1.1 via winbox
    т.е. в 9:02 сессия pppoe установилась, а только в 9:08 микротик меня пустил.
    тоже самое будет если скриптом вкл/выкл ethernet port, на котором поднят pppoe.
    может с настройками pppoe что-то не правильно? Или так и должно быть?

    p.s. порт микротика на котором pppoe, подключен к оптическому терминалу (ростелеком).
    Заранее благодарен за ответ.
     
  11. Илья Князев

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

    А дайте таблицу маршрутизации когда pppoe подключен
    /ip route print
     
  12. z0rg59r

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

    # DST-ADDRESS PREF-SRC GATEWAY DISTANCE
    0 ADS 0.0.0.0/0 90.150.180.22 0
    1 ADC 90.150.180.22/32 2.2.2.2 pppoe-out1 0
    2 X S 192.168.0.0/24 pppoe-out1 1
    3 ADC 192.168.1.0/24 192.168.1.10 ether1 0
    4 ADC 192.168.2.0/24 192.168.2.1 bridge1 0
    5 ADC 192.168.3.0/24 192.168.3.1 bridge2 0

    адрес pppoe изменен на ip. 2.2.2.2
    ether1 - wan (pppoe)
    bridge1 - ether2+wlan
    bridge2 - ether3+VirtualAP
    192.168.0.0/24 - удаленная сеть за ipsec tunnel
     
    Последнее редактирование: 29 мар 2016
  13. Илья Князев

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

    А почему он выключен?
     
  14. z0rg59r

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

    этот маршрут добавил при тестировании туннеля, он не нужен, трафик ходит по правилу:
    chain=srcnat action=accept src-address=192.168.2.0/24 dst-address=192.168.0.0/24 log=no log-
     
  15. Илья Князев

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

    Неа.. Не по этому правилу он ходит ))
     
  16. z0rg59r

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

    я про трафик внутри туннеля... Подскажите, если не так, то по какому правилу?
     
  17. Илья Князев

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

    Так дайте конфиг. Измените внешние адреса на 1.1.1.1 и/или 2.2.2.2.
    Пароли можете прибить..
     
  18. z0rg59r

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

    отключил DPD, туннель перестал падать при реконнекте pppoe сессии. Я бы даже сказал, что туннель практически не замечает этот реконнект и продолжает работу. Оставил DPD только на Ubuntu сервере.

    Но атс так же после реконнекта долго регистрируется на sip сервер, после отключения питания или откл/вкл ethernet порта на котором поднят pppoe, и так же микротик 5-6 минут не пускает в винбокс и не пингуется из вне, хотя по логу, pppoe поднимается сразу после загрузки роутера.

    ;;; ipsec-tunnel-policy
    src-address=192.168.2.0/24 src-port=any dst-address=192.168.0.0/24 dst-port=any protocol=all action=encrypt level=require
    ipsec-protocols=esp tunnel=yes sa-src-address=2.2.2.2 sa-dst-address=1.1.1.1 proposal=ipsec-tunnel-proposal
    priority=0

    name="ipsec-tunnel-proposal" auth-algorithms=md5 enc-algorithms=3des lifetime=23h pfs-group=none


    ;;; Ipsec-tunel-peers
    address=1.1.1.1/32 local-address=:: passive=no port=500 auth-method=pre-shared-key secret="111"
    generate-policy=no policy-template-group=group1 exchange-mode=main send-initial-contact=yes nat-traversal=no
    proposal-check=obey hash-algorithm=md5 enc-algorithm=3des dh-group=modp1024 lifetime=23h lifebytes=0
    dpd-interval=disable-dpd dpd-maximum-failures=5

    # apr/01/2016 19:45:08 by RouterOS 6.34.4
    # software id = 9B7N-56T2
    #
    /ip firewall layer7-protocol
    add name=company.local regexp=company.local
    /ip firewall address-list
    add address=0.0.0.0/8 list=BOGON
    add address=10.0.0.0/8 list=BOGON
    add address=100.64.0.0/10 list=BOGON
    add address=127.0.0.0/8 list=BOGON
    add address=169.254.0.0/16 list=BOGON
    add address=172.16.0.0/12 list=BOGON
    add address=192.0.0.0/24 list=BOGON
    add address=192.0.2.0/24 list=BOGON
    add address=198.18.0.0/15 list=BOGON
    add address=198.51.100.0/24 list=BOGON
    add address=203.0.113.0/24 list=BOGON
    add address=224.0.0.0/4 list=BOGON
    add address=240.0.0.0/4 list=BOGON
    add address=1.1.1.1 list="Winbox Allow Address"
    add address=192.168.0.0/24 list="Winbox Allow Address"
    add address=192.168.10.0/24 list="Winbox Allow Address"
    add address=192.168.88.0/24 list="Winbox Allow Address"
    /ip firewall filter
    add chain=input in-interface=ether1
    add action=drop chain=input comment="drop invalid connections" connection-state=invalid
    add action=drop chain=input comment="Drop BOGON" in-interface=pppoe-out1 src-address-list=BOGON
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment=\
    "Port scanners to list" protocol=tcp psd=21,3s,3,1
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment=\
    "NMAP FIN Stealth scan" protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment="SYN/FIN scan" \
    protocol=tcp tcp-flags=fin,syn
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment="SYN/RST scan" \
    protocol=tcp tcp-flags=syn,rst
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment="FIN/PSH/URG scan" \
    protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment="ALL/ALL scan" \
    protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg
    add action=add-src-to-address-list address-list=port_scanners address-list-timeout=2w chain=input comment="NMAP NULL scan" \
    protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg
    add action=drop chain=input comment="dropping port scanners" disabled=yes src-address-list=port_scanners
    add action=drop chain=forward comment="dropping port scanners" disabled=yes src-address-list=port_scanners
    add action=passthrough chain=unused-hs-chain comment="place hotspot rules here" disabled=yes
    add chain=input comment="Allow ICMP" disabled=yes protocol=icmp
    add chain=input comment="Allow Ber_Office to Router" in-interface=pppoe-out1 src-address=192.168.0.0/24
    add chain=input comment="Allow Local_Perm to Router" connection-state=new in-interface=!bridge2 src-address=192.168.2.0/24
    add chain=input comment="Allow DNS,NTP from Regoin" connection-state=new dst-port=53,123 in-interface=bridge2 protocol=udp
    add chain=input comment="Allow Winbox" dst-port=8291 protocol=tcp src-address-list="Winbox Allow Address"
    add chain=input comment="Allow FTP" dst-port=21 protocol=tcp src-address-list="Winbox Allow Address"
    add chain=input comment="Allow input L2TP Server" dst-port=1701,500,4500 protocol=udp
    add chain=input comment="Allow input Ipsec" protocol=ipsec-esp
    add chain=input comment="Allow input Ipsec" protocol=ipsec-ah
    add chain=input comment="Allow established connections" connection-state=established,related
    add chain=output comment="Allow established connections" connection-state=!invalid disabled=yes
    add chain=forward comment="Allow VPN Client IN" dst-address=192.168.2.205-192.168.2.210 in-interface=bridge1
    add chain=forward comment="Allow Region-Network OUT WAN" connection-state=established,new in-interface=bridge2 out-interface=\
    pppoe-out1 src-address=192.168.3.0/24
    add chain=forward comment="Allow Region-Network IN WAN" connection-state=established,related dst-address=192.168.3.0/24 \
    in-interface=pppoe-out1 out-interface=bridge2
    add chain=forward comment="Allow Perm-Network OUT WAN" connection-state=established,new in-interface=bridge1 out-interface=\
    pppoe-out1 src-address=192.168.2.0/24
    add chain=forward comment="Allow Perm-Network in WAN" connection-state=established,related dst-address=192.168.2.0/24 \
    in-interface=pppoe-out1 out-interface=bridge1
    add chain=forward comment="Allow from Ber-Office Network" in-interface=pppoe-out1 src-address=192.168.0.0/24
    add chain=forward comment="Allow out Ber-Office Network" dst-address=192.168.0.0/24 out-interface=pppoe-out1
    add chain=forward comment="Allow VPN Client OUT" out-interface=bridge1 src-address=192.168.2.205-192.168.2.210
    add action=drop chain=input comment="Drop ALL Input" in-interface=pppoe-out1
    add action=drop chain=forward comment="Drop ALL Forward"
    /ip firewall mangle
    add action=mark-connection chain=prerouting dst-address=192.168.2.1 dst-port=53 layer7-protocol=company.local \
    new-connection-mark=uralsalt.local-fwd protocol=tcp
    add action=mark-connection chain=prerouting dst-address=192.168.2.1 dst-port=53 layer7-protocol=company.local \
    new-connection-mark=company.local-fwd protocol=udp
    /ip firewall nat
    add chain=srcnat dst-address=192.168.0.0/24 src-address=192.168.2.0/24
    add action=masquerade chain=srcnat comment="Allow NAT L2TP Clients " out-interface=bridge1 src-address=\
    192.168.2.205-192.168.2.210
    add action=masquerade chain=srcnat comment="All NAT for Perm to WAN" out-interface=!bridge2 src-address=192.168.2.0/24
    add action=masquerade chain=srcnat comment="All NAT Region to WAN" out-interface=pppoe-out1 src-address=192.168.3.0/24
    add action=netmap chain=dstnat comment="RDP U-Comp" dst-port=33900 protocol=tcp to-addresses=192.168.2.90 to-ports=3389
    add action=dst-nat chain=dstnat comment="to DNS Server Company" connection-mark=uralsalt.local-fwd to-addresses=192.168.0.11
    /ip firewall service-port
    set ftp ports=21
    set irc disabled=yes
    set h323 disabled=yes
    set sip disabled=yes ports=5060,5061

    P.S. Пробовал отключать все drop правила, не помогло.
    Не понятно, почему после реконнекта с включенным DPD, туннель не восстанавливался.
     
  19. Илья Князев

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

    Посмотрел ваши конфиги. Никакого криминала не нашел, кроме того, что не рекомендую я использовать 3DES на микротике. Миниму в 3 раза медленнее работает по сравнению с AES.
    По текущей проблеме не знаю что сказать. По идее надо строить стенд и разбираться. Но времени на это сейчас просто нет :(
     
  20. z0rg59r

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

    Я поспешил с выводами при отключенном DPD :( через несколько обновлений ключей ipsec, после реконнекта pppoe так же не восстанавливается туннель :(

    Установил дома RouterOSx86 v5.26, провайдер тот же, подключение pppoe/stat ip. сначала сделал аналогичный туннель c ubuntu сервером - отлично работает, проделал множество рекконнектов pppoe, туннель быстро восстанавливается.
    Затем сделал туннель из дома с тем же 951Ui-2HnD v6.34.4. аналогичная проблема, при реконнекте pppoe на стороне 951-го, так же перестает подниматься туннель.
    На ум приходит, либо понижать 951 до 5,26, либо, может помочь конфигурация с нуля?

    Спасибо за ответ и замечание по поводу 3des. на самом деле я пробовал разные алгоритмы шифрования, на момент экспорта конфига был 3des)
     
    Последнее редактирование: 4 апр 2016