При передачи данных на скорости 25-30 мбит/сек в 100-200 потоков, например через qBittorent или при скачивании с ftp через axel затушенный в 4 терминалах c параметром -n 20 (количество потоков) через некоторое время, обычно от 1 до 5 минут, vpn подключение "залипает", RX packets перестают увеличиваться, TX packets увеличиваются. Спустя примерно минуту VPN подключение вообще разрывается и интерфейс ppp падает.
tail -f /var/log/messages
Aug 4 12:16:00 ralf-office pppd[13325]: pppd 2.4.5 started by root, uid 0
Aug 4 12:16:00 ralf-office pppd[13325]: Serial connection established.
Aug 4 12:16:00 ralf-office pppd[13325]: Using interface ppp2
Aug 4 12:16:00 ralf-office pppd[13325]: Connect: ppp2 <--> /dev/pts/6
Aug 4 12:16:01 ralf-office pppd[13325]: CHAP authentication succeeded
Aug 4 12:16:01 ralf-office pppd[13325]: replacing old default route to eth0 [10.235.129.1]
Aug 4 12:16:01 ralf-office pppd[13325]: local IP address 10.234.220.133
Aug 4 12:16:01 ralf-office pppd[13325]: remote IP address 10.234.0.1
Aug 4 12:16:01 ralf-office pppd[13325]: CCP terminated by peer
Aug 4 12:16:01 ralf-office pppd[13325]: Compression disabled by peer.
Aug 4 12:16:05 ralf-office pppd[13325]: Terminating on signal 15
Aug 4 12:16:05 ralf-office pppd[13325]: Connect time 0.1 minutes.
Aug 4 12:16:05 ralf-office pppd[13325]: Sent 3480 bytes, received 1922 bytes.
Aug 4 12:16:05 ralf-office pppd[13325]: restoring old default route to eth0 [10.235.129.1]
Aug 4 12:16:05 ralf-office pppd[13325]: Child process pptp 10.235.0.16 --nolaunchpppd (pid 13326) terminated with signal 15
Aug 4 12:16:05 ralf-office pppd[13325]: Modem hangup
Aug 4 12:16:05 ralf-office pppd[13325]: Connection terminated.
Aug 4 12:16:06 ralf-office pppd[13325]: Exit.
cat /etc/ppp/options.pptp
noauth
# отключаем ненужные проверки
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
# отключаем компрессию
nobsdcomp
nodeflate
# восстановление связи при обрыве
persist
# десять попыток восстановления
maxfail 10
# подменяем дефолтный маршрут
defaultroute
replacedefaultroute
nomppe
Проводил аналогичный тест на Windows XP, скорость через uTorrent достикала 75-80 мбит/сек, соединение не "залипало".
На текущий момент подозреваю что причиной является MPPC, т.к. по данным администратора VPN сервера при использовании MPPC крайне важен порядок пакетов, и если хотя бы один пакет идет не по порядку, то и происходит подобное "залипание".
Microsoft Point-to-Point Compression (MPPC) — протокол сжатия данных, первоначально разработанный для использования поверх соединений PPP. Использует алгоритм Lempel-Ziv со скользящим окном буфера истории размером 8192 байт.
В Windows XP MPPC отключено. Если компрессия и сжатие это одно и тоже, то по логике вещей у меня оно также отключено, т.к. в /etc/ppp/options.pptp прописаны параметры nobsdcomp и nodeflate но похоже что это все же не отключение MPPC.
В интернете, например на http://forum.mageal.net/lofiversion/index.php/t116.html и http://asplinux.net/node/2796 для отключения MPPC существует параметр nomppc но после прописывания этого параметра в /etc/ppp/options.pptp после nomppe при запуске VPN соединения вижу:
/usr/sbin/pppd: In file /etc/ppp/options.pptp: unrecognized option 'nomppc'
На некоторых форумах также читал что в Ubutnu по дефолту MPPC вообще отсутствует, возможно поэтому параметр nomppc для нее не известный.
Ваши варианты причины проблемы и варианты решения?
Запустил с параметром debug dump logfd 2 nodetach, красным выделил участок лога после разрыва VPN подключения.
pppd options in effect:
debug # (from /etc/ppp/peers/ipsystems)
nodetach # (from /etc/ppp/peers/ipsystems)
persist # (from /etc/ppp/options.pptp)
logfd 2 # (from /etc/ppp/peers/ipsystems)
maxfail 10 # (from /etc/ppp/options.pptp)
dump # (from /etc/ppp/peers/ipsystems)
noauth # (from /etc/ppp/options.pptp)
refuse-pap # (from /etc/ppp/options.pptp)
refuse-chap # (from /etc/ppp/options.pptp)
refuse-mschap # (from /etc/ppp/options.pptp)
refuse-eap # (from /etc/ppp/options.pptp)
name test700-fake # (from /etc/ppp/peers/ipsystems)
password ?????? # (from /etc/ppp/peers/ipsystems)
remotename ipsystems # (from /etc/ppp/peers/ipsystems)
# (from /etc/ppp/options)
connect /bin/true # (from /etc/ppp/peers/ipsystems)
pty pptp 10.235.0.16 --nolaunchpppd # (from /etc/ppp/peers/ipsystems)
crtscts # (from /etc/ppp/options)
# (from /etc/ppp/options)
asyncmap 0 # (from /etc/ppp/options)
lcp-echo-failure 4 # (from /etc/ppp/options)
lcp-echo-interval 30 # (from /etc/ppp/options)
hide-password # (from /etc/ppp/options)
defaultroute # (from /etc/ppp/options.pptp)
replacedefaultroute # (from /etc/ppp/options.pptp)
proxyarp # (from /etc/ppp/options)
nobsdcomp # (from /etc/ppp/options.pptp)
nodeflate # (from /etc/ppp/options.pptp)
nomppe # (from /etc/ppp/options.pptp)
noipx # (from /etc/ppp/options)
Script /bin/true finished (pid 11550), status = 0x0
Serial connection established.
using channel 189
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x9d455e70> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <mru 1500> <magic 0x7b84dc44> <auth chap MS-v2> <mrru 2048> <ssnhf> <endpoint [MAC:00:15:17:d2:8d:ce]>]
sent [LCP ConfRej id=0x1 <mrru 2048> <ssnhf>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x9d455e70> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <mru 1500> <magic 0x7b84dc44> <auth chap MS-v2>]
sent [LCP ConfAck id=0x2 <accomp> <pcomp> <mru 1500> <magic 0x7b84dc44> <auth chap MS-v2>]
sent [LCP EchoReq id=0x0 magic=0x9d455e70]
rcvd [CHAP Challenge id=0x1 <bb1e68c30c542a4aa7e4917a80f24eb0>, name = ""]
sent [CHAP Response id=0x1 <bfbd7194ea45c31dbe3a59de6ef4a3ee0000000000000000a730acaae8fbcbe2843063f3c0ace2aba9a1d43b04149d9800>, name = "test700-fake"]
rcvd [LCP EchoRep id=0x0 magic=0x7b84dc44]
rcvd [CHAP Success id=0x1 "S=B65F1D0CB90F075990E3D643048CE38A94B3E0AA"]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 10.234.0.1> <compress VJ 0f 00>]
sent [IPCP ConfAck id=0x1 <addr 10.234.0.1> <compress VJ 0f 00>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
sent [CCP ConfReq id=0x1]
sent [CCP ConfRej id=0x1 <mppe +H -M +S +L -D -C>]
rcvd [IPCP ConfNak id=0x1 <addr 10.234.220.133>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
rcvd [CCP ConfAck id=0x1]
rcvd [CCP ConfReq id=0x2]
sent [CCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
replacing old default route to eth0 [10.235.129.1]
Cannot determine ethernet address for proxy ARP
local IP address 10.234.220.133
remote IP address 10.234.0.1
Script /etc/ppp/ip-up started (pid 11561)
rcvd [CCP TermReq id=0x3]
CCP terminated by peer
sent [CCP TermAck id=0x3]
Compression disabled by peer.
Script /etc/ppp/ip-up finished (pid 11561), status = 0x0
rcvd [CCP TermReq id=0x3]
CCP terminated by peer
sent [CCP TermAck id=0x3]
Compression disabled by peer.
Script /etc/ppp/ip-up finished (pid 11561), status = 0x0
No response to 4 echo-requests
Serial link appears to be disconnected.
Connect time 4.0 minutes.
Sent 9327668 bytes, received 216892605 bytes.
restoring old default route to eth0 [10.235.129.1]
Script /etc/ppp/ip-down started (pid 11805)
sent [LCP TermReq id=0x2 "Peer not responding"]
Script /etc/ppp/ip-down finished (pid 11805), status = 0x0
sent [LCP TermReq id=0x3 "Peer not responding"]
Connection terminated.
Modem hangup
Script pptp 10.235.0.16 --nolaunchpppd finished (pid 11549), status = 0x0
По данным с http://pptpclient.sourceforge.net/howto-diagnosis.phtml#debug мой случай частично похож на:
CCP ConfNak <mppe 0 0 0 0>
Symptom: debug logs contain this sequence:
sent [CCP ConfReq id=0x5]
rcvd [CCP ConfNak id=0x5 <mppe 0 0 0 0>]
sent [CCP ConfReq id=0x6]
rcvd [CCP ConfNak id=0x6 <mppe 0 0 0 0>]
sent [CCP ConfReq id=0xa]
rcvd [CCP TermReq id=0x3 00 00 02 dc]
sent [CCP TermAck id=0x3]
sent [LCP EchoReq id=0x1
CCP: timeout sending Config-Requests
sent [LCP EchoReq id=0x2
No response to 4 echo-requests
Serial link appears to be disconnected.
sent [LCP TermReq id=0x3 "Peer not responding"]
Diagnosis: your pppd is refusing to accept MPPE encryption. The PPTP Server requires MPPE, and so it terminates the connection.
Solution: make sure the MPPE module loads successfully. Prove this using the MPPE step in the Fault Tree.
Отключил буферизацию и логирование добавив ключи --nobuffer --loglevel 0 в /etc/ppp/peers/ipsystems
pty "pptp 10.235.0.16 --nolaunchpppd --nobuffer --loglevel 0" debug dump logfd 2 nodetach
connect /bin/true
name test700-fake
password "??????"
remotename ipsystems
file /etc/ppp/options.pptp
debug logs:
pppd options in effect:
debug # (from /etc/ppp/peers/ipsystems)
nodetach # (from /etc/ppp/peers/ipsystems)
persist # (from /etc/ppp/options.pptp)
logfd 2 # (from /etc/ppp/peers/ipsystems)
maxfail 10 # (from /etc/ppp/options.pptp)
dump # (from /etc/ppp/peers/ipsystems)
noauth # (from /etc/ppp/options.pptp)
refuse-pap # (from /etc/ppp/options.pptp)
refuse-chap # (from /etc/ppp/options.pptp)
refuse-mschap # (from /etc/ppp/options.pptp)
refuse-eap # (from /etc/ppp/options.pptp)
name test700-fake # (from /etc/ppp/peers/ipsystems)
password ?????? # (from /etc/ppp/peers/ipsystems)
remotename ipsystems # (from /etc/ppp/peers/ipsystems)
# (from /etc/ppp/options)
connect /bin/true # (from /etc/ppp/peers/ipsystems)
pty pptp 10.235.0.16 --nolaunchpppd --nobuffer --loglevel 0 # (from /etc/ppp/peers/ipsystems)
crtscts # (from /etc/ppp/options)
# (from /etc/ppp/options)
asyncmap 0 # (from /etc/ppp/options)
lcp-echo-failure 4 # (from /etc/ppp/options)
lcp-echo-interval 30 # (from /etc/ppp/options)
hide-password # (from /etc/ppp/options)
defaultroute # (from /etc/ppp/options.pptp)
replacedefaultroute # (from /etc/ppp/options.pptp)
proxyarp # (from /etc/ppp/options)
nobsdcomp # (from /etc/ppp/options.pptp)
nodeflate # (from /etc/ppp/options.pptp)
nomppe # (from /etc/ppp/options.pptp)
noipx # (from /etc/ppp/options)
Script /bin/true finished (pid 23167), status = 0x0
Serial connection established.
using channel 200
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x7eff1acd> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <mru 1500> <magic 0x4768ceb7> <auth chap MS-v2> <mrru 2048> <ssnhf> <endpoint [MAC:00:15:17:d2:8d:ce]>]
sent [LCP ConfRej id=0x1 <mrru 2048> <ssnhf>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x7eff1acd> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <mru 1500> <magic 0x4768ceb7> <auth chap MS-v2>]
sent [LCP ConfAck id=0x2 <accomp> <pcomp> <mru 1500> <magic 0x4768ceb7> <auth chap MS-v2>]
sent [LCP EchoReq id=0x0 magic=0x7eff1acd]
rcvd [CHAP Challenge id=0x1 <bb1e681d2fda360b5372a71281de6930>, name = ""]
sent [CHAP Response id=0x1 <079b421ac3ae458ed47d4188375f86ec000000000000000081dcdb9c5955d4879b9df98a040a23e3909bd5db90e96f9b00>, name = "test700-fake"]
rcvd [LCP EchoRep id=0x0 magic=0x4768ceb7]
rcvd [CHAP Success id=0x1 "S=0E99FE8E80088196D92981DA6AEA7176D9BC5EB0"]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 10.234.0.1> <compress VJ 0f 00>]
sent [IPCP ConfAck id=0x1 <addr 10.234.0.1> <compress VJ 0f 00>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
sent [CCP ConfReq id=0x1]
sent [CCP ConfRej id=0x1 <mppe +H -M +S +L -D -C>]
rcvd [IPCP ConfNak id=0x1 <addr 10.234.220.133>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
rcvd [CCP ConfAck id=0x1]
rcvd [CCP ConfReq id=0x2]
sent [CCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
replacing old default route to eth0 [10.235.129.1]
Cannot determine ethernet address for proxy ARP
local IP address 10.234.220.133
remote IP address 10.234.0.1
Script /etc/ppp/ip-up started (pid 23182)
rcvd [CCP TermReq id=0x3]
CCP terminated by peer
sent [CCP TermAck id=0x3]
Compression disabled by peer.
Script /etc/ppp/ip-up finished (pid 23182), status = 0x0
No response to 4 echo-requests
Serial link appears to be disconnected.
Connect time 7.1 minutes.
Sent 29987962 bytes, received 742638556 bytes.
restoring old default route to eth0 [10.235.129.1]
Script /etc/ppp/ip-down started (pid 23546)
sent [LCP TermReq id=0x2 "Peer not responding"]
Script /etc/ppp/ip-down finished (pid 23546), status = 0x0
sent [LCP TermReq id=0x3 "Peer not responding"]
Connection terminated.
Modem hangup
Script pptp 10.235.0.16 --nolaunchpppd --nobuffer --loglevel 0 finished (pid 23166), status = 0x0
Теперь если ориентироваться на http://pptpclient.sourceforge.net/howto-diagnosis.phtml#debug то больше похоже на:
CCP ConfNak <mppe 0 0 0 0>
Symptom: debug logs contain this sequence:
sent [CCP ConfReq id=0x5]
rcvd [CCP ConfNak id=0x5 <mppe 0 0 0 0>]
sent [CCP ConfReq id=0x6]
rcvd [CCP ConfNak id=0x6 <mppe 0 0 0 0>]
sent [CCP ConfReq id=0xa]
rcvd [CCP TermReq id=0x3 00 00 02 dc]
sent [CCP TermAck id=0x3]
sent [LCP EchoReq id=0x1
CCP: timeout sending Config-Requests
sent [LCP EchoReq id=0x2
No response to 4 echo-requests
Serial link appears to be disconnected.
sent [LCP TermReq id=0x3 "Peer not responding"]
Diagnosis: your pppd is refusing to accept MPPE encryption. The PPTP Server requires MPPE, and so it terminates the connection.
Solution: make sure the MPPE module loads successfully. Prove this using the MPPE step in the Fault Tree.
Возможно проблема все таки в MPPE?
Я являюсь сотрудником службы технической поддержки интернет провайдера и подобная проблема возникла у нескольких клиентов, при эмуляции описанных клиентами условий, проблема возникает и у меня (:
Все вышеописанное делал на Ubuntu 10.04.1 LTS архитектура i386
В /etc/ppp/options.pptp для теста заменил nomppe на require-mppe-128 все также залипает:
pppd options in effect:
debug # (from /etc/ppp/peers/ipsystems)
nodetach # (from /etc/ppp/peers/ipsystems)
persist # (from /etc/ppp/options.pptp)
logfd 2 # (from /etc/ppp/peers/ipsystems)
maxfail 10 # (from /etc/ppp/options.pptp)
dump # (from /etc/ppp/peers/ipsystems)
noauth # (from /etc/ppp/options.pptp)
refuse-pap # (from /etc/ppp/options.pptp)
refuse-chap # (from /etc/ppp/options.pptp)
refuse-mschap # (from /etc/ppp/options.pptp)
refuse-eap # (from /etc/ppp/options.pptp)
name test700-fake # (from /etc/ppp/peers/ipsystems)
password ?????? # (from /etc/ppp/peers/ipsystems)
remotename ipsystems # (from /etc/ppp/peers/ipsystems)
# (from /etc/ppp/options)
connect /bin/true # (from /etc/ppp/peers/ipsystems)
pty pptp 10.235.0.16 --nolaunchpppd --nobuffer --loglevel 0 # (from /etc/ppp/peers/ipsystems)
crtscts # (from /etc/ppp/options)
# (from /etc/ppp/options)
asyncmap 0 # (from /etc/ppp/options)
lcp-echo-failure 4 # (from /etc/ppp/options)
lcp-echo-interval 30 # (from /etc/ppp/options)
hide-password # (from /etc/ppp/options)
defaultroute # (from /etc/ppp/options.pptp)
replacedefaultroute # (from /etc/ppp/options.pptp)
proxyarp # (from /etc/ppp/options)
nobsdcomp # (from /etc/ppp/options.pptp)
nodeflate # (from /etc/ppp/options.pptp)
require-mppe-128 # (from /etc/ppp/options.pptp)
noipx # (from /etc/ppp/options)
Script /bin/true finished (pid 14699), status = 0x0
Serial connection established.
using channel 202
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x1d5786a1> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <mru 1500> <magic 0xbcf7463a> <auth chap MS-v2> <mrru 2048> <ssnhf> <endpoint [MAC:00:15:17:d2:8d:ce]>]
sent [LCP ConfRej id=0x1 <mrru 2048> <ssnhf>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x1d5786a1> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <mru 1500> <magic 0xbcf7463a> <auth chap MS-v2>]
sent [LCP ConfAck id=0x2 <accomp> <pcomp> <mru 1500> <magic 0xbcf7463a> <auth chap MS-v2>]
sent [LCP EchoReq id=0x0 magic=0x1d5786a1]
rcvd [CHAP Challenge id=0x1 <bb1e680461add892c4d71828445ec510>, name = ""]
sent [CHAP Response id=0x1 <2381a38260ab8925c10e04a5e6bb6d2e000000000000000080bc58843e752769d6222cc55528e315363fe4a1ec68527200>, name = "test700-fake"]
rcvd [LCP EchoRep id=0x0 magic=0xbcf7463a]
rcvd [CHAP Success id=0x1 "S=45AE347CB0D2629D4298BD3615748EA3AED11313"]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [IPCP ConfReq id=0x1 <addr 10.234.0.1> <compress VJ 0f 00>]
sent [IPCP TermAck id=0x1]
rcvd [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
sent [CCP ConfNak id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x2 <mppe +H -M +S -L -D -C>]
sent [CCP ConfAck id=0x2 <mppe +H -M +S -L -D -C>]
MPPE 128-bit stateless compression enabled
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.234.220.133>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.234.220.133>]
rcvd [IPCP ConfReq id=0x2 <addr 10.234.0.1> <compress VJ 0f 00>]
sent [IPCP ConfAck id=0x2 <addr 10.234.0.1> <compress VJ 0f 00>]
replacing old default route to eth0 [10.235.129.1]
Cannot determine ethernet address for proxy ARP
local IP address 10.234.220.133
remote IP address 10.234.0.1
Script /etc/ppp/ip-up started (pid 14711)
Script /etc/ppp/ip-up finished (pid 14711), status = 0x0
No response to 4 echo-requests
Serial link appears to be disconnected.
Connect time 7.0 minutes.
Sent 22797059 bytes, received 513012046 bytes.
restoring old default route to eth0 [10.235.129.1]
Script /etc/ppp/ip-down started (pid 15127)
MPPE disabled
sent [LCP TermReq id=0x2 "MPPE disabled"]
sent [LCP TermReq id=0x3 "MPPE disabled"]
Script /etc/ppp/ip-down finished (pid 15127), status = 0x0
sent [LCP TermReq id=0x4 "MPPE disabled"]
Connection terminated.
Modem hangup
Script pptp 10.235.0.16 --nolaunchpppd --nobuffer --loglevel 0 finished (pid 14698), status = 0x0
Script /bin/true finished (pid 15191), status = 0x0
Древний дистрибутив с ядром 2.6.15 это походу Ubuntu 6.06.2 LTS (Dapper Drake) правда на http://releases.ubuntu.org.ua/dapper/ оставили только серверную версию, хотя в целом для теста она подойдет, ведь пакет pptp-linux на http://packages.ubuntu.com/dapper/pptp-linux для нее есть (:
Пользователь решил продолжить мысль 05 Августа 2010, 18:35:26:
Поставил на виртуальную машину в Virtual Box Ubuntu 6.06.2 LTS (Dapper Drake) с ядром 2.6.15 с целью провести аналогичный тест на ней, но при запуске возникает проблема описанная на http://ubuntuforums.org/showthread.php?t=193280
Если предложения по решению вышеописанной проблемы?