Почему VPN (pptpd) работает при подключении с декстопа, но не работает при подключении с mikrotik?

И снова здравствуй, %username%!

Ситуация следующая. Имеется VPS на hetzner-е, на нем работает pptpd-демон. При подключении к нему с десктопа (win) - всё работает как надо - трафик ходит в обе стороны, вообще без нареканий.

Но стоит подключиться к нему с mikrotik-а (поднять соединение поверх pppoe соединения) - как сайты открываются 1 из 10, хотя ICMP трафик (пинги) ходят без проблем как на доменные имена, так и IP адреса. Mikrotik настроен корректно, проверено созданием второго подключения к серверу hideme.ru - при подключении к нему всё работает отлично. И стоит переключиться обратно на мой VPS - сразу печаль.

Конфиги демона и iptables прилагаю:
Name : pptpd
Arch : x86_64
Version : 1.4.0
Release : 2.el7
Summary : PoPToP Point to Point Tunneling Server
URL : poptop.sourceforge.net


Его настройки:
localip 10.0.0.1
remoteip 10.0.0.10-50
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.4.4
ms-dns 8.8.8.8
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
noipx


iptables (по умолчанию никакой трафик не блокируется, но accept правила всё же прописаны):
*filter
:INPUT ACCEPT [3:349]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [54:46649]
-A INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12321 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80:90 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
-A INPUT ! -s 127.0.0.0/8 -p tcp -m tcp --dport 11211 -j REJECT --reject-with tcp-reset
-A FORWARD -i eth0 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [57:2966]
:INPUT ACCEPT [57:2966]
:OUTPUT ACCEPT [14:910]
:POSTROUTING ACCEPT [1:60]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT


Настройки микротика:
/ip firewall nat add action=masquerade chain=srcnat comment="Private VPN masquerade" out-interface=pptp-private-vpn
/ip firewall nat add action=masquerade chain=srcnat comment="default configuration" out-interface=pppoe-out1

/interface pppoe-client add add-default-route=yes allow=chap,mschap2 comment=Provider default-route-distance=20 disabled=no interface=ether1-wan keepalive-timeout=disabled name=pppoe-out1 password=PASSWORD service-name=SERVICE_NAME user=USERNAME
/interface pptp-client add add-default-route=yes comment="Private VPN" connect-to=123.123.123.123 default-route-distance=10 name=pptp-private-vpn password=PASSWORD user=USERNAME

/ip route add comment="Private VPN route" distance=1 dst-address=123.123.123.123/32 gateway=pppoe-out1


Подскажете чем может быть вызвано данное поведение? В какую сторону смотреть? Может дело в MTU?
  • Вопрос задан
  • 831 просмотр
Решения вопроса 2
HawK3D
@HawK3D
Судя по симптомам, это Path MTU Discovery Black Hole.
В Windows для VPN-подключений MTU по-умолчанию равен 1400, поэтому проблем с этим не возникает. В Router OS эта проблема решается достаточно легко:
1. Опытным путем меняя значение Max MTU в свойствах соответствующего подключения, нужно установить значение этого параметра при котором проблема исчезнет. Этот способ самый простой, однако не самый оптимальный и работает не во всех случаях.
b31f241c2b4b4df1a43e7014f45e41c2.jpg 2. В профиле PPP, который указан для вашего подключения выберите "yes" для параметра Change TCP MSS.
6df505a6114d4c3e9468faa29bbe3a16.jpg
При этом создаются динамические правила в цепочке mangle фаервола, устанавливающие значения tcp-mss в syn-пакетах равным 1410, если оно больше. Сталкивался с ситуациями, когда 1410 оказывалось недостаточно. Можно скопировать эти динамические правила в mangle и изменяя параметры на меньшие, чем 1410 добиться решения проблемы. Чтобы Router OS не создавала эти динамические правила нужно в используемом профиле отключить "Change TCP MSS".
3. Способ, который работает во всех случаях связанных с PMTU Discovery Black Hole - добавление правила в mangle:
698b053e67bc4ead8fe2378e23489005.jpgd20f2fd3dd354c9dbc1b2faa18dcf21a.jpg3a77533373964136ae30ac9fb807399b.jpg
В поле src. address указываете вашу локальную подсеть, в out. interface - название вашего pptp-подключения.
Ответ написан
Комментировать
@efkot
Смотрите в сторону MTU
99% затык там
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maxlinus
@Maxlinus
а настройки микротика где?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы