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

Мистика с PPTP принимаю любые предположения

Всем доброго времени суток.

 

Есть следующая лажа - в последнее время часто разрывается PPTP у клиентов.

 

На сервере ошибок нет, в радиусе - User-Request.

 

Принимаю любые идеи и предложения, что ещё бл проверить, т.к. у самого уже голова кругом идет.

 

В общем: Arch Linux, 2.6.31, pppd 2.4.5 (vanilla + gigawords), pptpd 1.3.4 (vanilla). Одна встроенная сетевая (sic!), на ней весь трафик.

 

Сейчас подозреваю сетевую, однако ещё месяц назад при таком же раскладе всё отлично работало.

 

В общем, жду идей. Даже самых странных, на грани бреда.

Share this post


Link to post
Share on other sites

Вирусы у клиентов. Левый софт. Ещё какая-то дрянь с клиентской стороны.

Опрашивайте звонящих на предмет установленного софта и составляйте базу для анализа.

Попробуй соорудить другой сервер pptpd (на другой ОС/дистрибутиве), раскидайте соединения поровну по ним и смотрите, есть ли какая-то зависимость разрывов от того, на какой сервер он попал.

Edited by EvilShadow

Share this post


Link to post
Share on other sites

Часто клинты любят эксперементировать и ставить Windows от Zver.Были случаи когда отсутсвовал ВПН и браузер в сборке.

Чаще встречается недо-сетевая служба-подключается и отключается по не выясненным причинам.

7ки и Висты тоже имели магические оссобенности.

 

Поэтому выяснять что у пользователя там стоит,и посылать гонца сносить недо-софт

Edited by g7001

Share this post


Link to post
Share on other sites

Всё чаще грешу на вирусы (судя по всему - эпидемия какой-то новой разновидности Kido).

Вообще пока придумали такой вариант: заводить черный список софта (уже в списке: NOD 3/4, все Касперские), рекомендовать сносить, а особо ревностным - давать на недельку поюзать заведомо безглючный роутер, дабы доказать, что проблема в их компьютере.

 

Но, увы, с такими раскладами народ очень сразу складывает о нас негативное мнение.

 

Кстати, специально для 7-к у меня поднят паралельно РРРоЕ. Как костыль.

Share this post


Link to post
Share on other sites
Кстати, специально для 7-к у меня поднят паралельно РРРоЕ. Как костыль.
А у меня наоборот - pptp поднят как костыль. Вместо pppoe :)

Недавно убрал accel-pptp, который где-то раз в месяц вешал сервера, поселил вместо него обычный user-level pptpd - количество переключений контекста сразу подскочило в разы. Теперь вот буду пытаться использовать pptp только для тех случаев, когда pppoe по каким-то причинам использовать невозможно. Благо, бОльшая часть абонентов уже переведена на pppoe.

Share this post


Link to post
Share on other sites
Кстати, специально для 7-к у меня поднят паралельно РРРоЕ. Как костыль.
А у меня наоборот - pptp поднят как костыль. Вместо pppoe :)

Недавно убрал accel-pptp, который где-то раз в месяц вешал сервера, поселил вместо него обычный user-level pptpd - количество переключений контекста сразу подскочило в разы. Теперь вот буду пытаться использовать pptp только для тех случаев, когда pppoe по каким-то причинам использовать невозможно. Благо, бОльшая часть абонентов уже переведена на pppoe.

Короче, из огня да в полымя :-D.

Думаю над L2TP. На примере Корбины - оно себя ведёт куда адекватней.

Share this post


Link to post
Share on other sites
Короче, из огня да в полымя :-D.
Да, как-то так. Впрочем, на моих масштабах и в моих условиях туннели рулят и бибикают.

А pptp на pppoe я сменил по таким причинам:

1. Зависимость pptp от dns, т.е. ещё одна точка отказа. Без dns никак нельзя, ибо это самый простой способ балансировки соединений.

2. Неприятные особенности поведения WinXP. По умолчанию для pptp она ставит mtu 1400, что иногда приводит к неочевидным последствиям.

3. Обкатанный kernel-level pppoe сервер. User-level pptpd даёт неоправданно высокую нагрузку, а accel-pptp ещё не настолько стабилен, чтоб поставить и забыть.

4. Большая надёжность pppoe, проистекающая из его бродкастовой сути. Например, есть два сервера pptp: x.x.x.x и y.y.y.y. У клиентов в качестве pptp-сервера указан какой-нибудь vpn.loc. DNS отдаёт на это имя два адреса, которые используются по кругу. В случае падения одного из серверов в 50% случаев клиент будет стучаться на мёртвый сервер и получать ошибки. В то же время, если падает один из двух pppoe-серверов, клиент на бродкастовый запрос получает ответ только от оставшегося и соответственно будет пытаться подключиться только к нему.

5. Да и вообще простые решения мне нравятся больше, чем сложные. А pppoe архитектурно проще.

Хотя в некоторых случаях немаршрутизируемость pppoe может стать решающим фактором для того, чтоб его не использовать. Но, опять же, в моих условиях это не самый важный фактор :)

Share this post


Link to post
Share on other sites

По-моему как раз самое правильное - собирать статистику по клиентскому По и оборудованию для данных проблем. Как вариант - домашние роутеры клиентов, при приличных каналах вовне нагрузка на них ложится тоже соответствующая, особенно в свете pptp (а также всяких торрентов и мютп в оных), соотв-но под 100% загрузом цпу рутера у него сносит башню и сессия рвется.

Share this post


Link to post
Share on other sites

Лично у меня дома D-Link DIR-300/NRU + OpenWrt - полёт отличный.

Всё-таки буду собирать статистику. Сегодня ещё должна приехать сетевуха на 82576, буду пробовать.

Share this post


Link to post
Share on other sites
Всем доброго времени суток.

 

Есть следующая лажа - в последнее время часто разрывается PPTP у клиентов.

 

На сервере ошибок нет, в радиусе - User-Request.

 

Принимаю любые идеи и предложения, что ещё бл проверить, т.к. у самого уже голова кругом идет.

 

В общем: Arch Linux, 2.6.31, pppd 2.4.5 (vanilla + gigawords), pptpd 1.3.4 (vanilla). Одна встроенная сетевая (sic!), на ней весь трафик.

 

Сейчас подозреваю сетевую, однако ещё месяц назад при таком же раскладе всё отлично работало.

 

В общем, жду идей. Даже самых странных, на грани бреда.

были похожие проблемы, избавились перейдя на freebsd + mpd

mpd работает четко, потребеление памяти существенно ниже, можно настроить одновременно на pptp, pppoe, l2tp

Share this post


Link to post
Share on other sites
1. Зависимость pptp от dns, т.е. ещё одна точка отказа. Без dns никак нельзя, ибо это самый простой способ балансировки соединений.
Посоветуйте - где почитать про балансировку с помощью dns?

 

2. Неприятные особенности поведения WinXP. По умолчанию для pptp она ставит mtu 1400, что иногда приводит к неочевидным последствиям.
Что за последствия и как лечится?

Share this post


Link to post
Share on other sites
1. Зависимость pptp от dns, т.е. ещё одна точка отказа. Без dns никак нельзя, ибо это самый простой способ балансировки соединений.
Посоветуйте - где почитать про балансировку с помощью dns?

Где почитать - не знаю. Но делается это так:

ac A x.x.x.1

ac A x.x.x.2

ac A x.x.x.3

У клиента сервером прописан ac, при подключении днс-сервер отдаёт ему сразу пачку адресов по кругу. Соответственно, один клиент пойдёт на первый сервер, другой - на второй и т.д.

2. Неприятные особенности поведения WinXP. По умолчанию для pptp она ставит mtu 1400, что иногда приводит к неочевидным последствиям.
Что за последствия и как лечится?

У меня был случай, когда у клиента на хостинге в интернетах MSS был всегда 1400 байт, что с учётом заголовков превышало MTU для клиентского pptp-туннеля. Вылечилось использованием pppoe у клиента :)

Share this post


Link to post
Share on other sites

Поменял сегодня сетевую. Поставил сразу, не жлобясь, 82756 ;). Будем смотреть, что из этого получилось.

Share this post


Link to post
Share on other sites
У меня был случай, когда у клиента на хостинге в интернетах MSS был всегда 1400 байт, что с учётом заголовков превышало MTU для клиентского pptp-туннеля. Вылечилось использованием pppoe у клиента :)
Т.е. для pptp это не лечится?

 

Но делается это так:

ac A x.x.x.1

ac A x.x.x.2

ac A x.x.x.3

У клиента сервером прописан ac, при подключении днс-сервер отдаёт ему сразу пачку адресов по кругу. Соответственно, один клиент пойдёт на первый сервер, другой - на второй и т.д.

Почему другой пойдет на второй ас? При такой схеме получается скорее "горячее резервирование", а не балансировка. Или я что-то не допонял.

Share this post


Link to post
Share on other sites
Т.е. для pptp это не лечится?
Лечится ковырянием виндового реестра. Но проще объяснить, как настроить pppoe, чем что где изменить в реестре.
Но делается это так:

ac A x.x.x.1

ac A x.x.x.2

ac A x.x.x.3

У клиента сервером прописан ac, при подключении днс-сервер отдаёт ему сразу пачку адресов по кругу. Соответственно, один клиент пойдёт на первый сервер, другой - на второй и т.д.

Почему другой пойдет на второй ас? При такой схеме получается скорее "горячее резервирование", а не балансировка. Или я что-то не допонял.

Потому что round-robin. При первом запросе клиент получит

x.x.x.1

x.x.x.2

x.x.x.3

При втором

x.x.x.3

x.x.x.1

x.x.x.2

При третьем

x.x.x.2

x.x.x.3

x.x.x.1

И т.д.

Share this post


Link to post
Share on other sites

Лечится ковырянием виндового реестра. Но проще объяснить, как настроить pppoe, чем что где изменить в реестре.

У нас на сети только pptp. Так что совет "настроить pppoe" не подходит. Или может быть можно на одной кошке (она у нас pptp терминирует) поднять еще и ppoe одновременно с pptp с авторизацией через один и тот же радиус?

Share this post


Link to post
Share on other sites

странная у вас какая то проблема с MTU

-A FORWARD -p tcp --syn -j TCPMSS --set-mss 1350

и все... А если еще почитать ман - то даже от циферки можно избавиться ;)

Share this post


Link to post
Share on other sites
странная у вас какая то проблема с MTU

-A FORWARD -p tcp --syn -j TCPMSS --set-mss 1350

и все... А если еще почитать ман - то даже от циферки можно избавиться ;)

Не всё. В моём случае удалённый узел мало интересовался, какой MSS предложит ему клиент и ВСЕГДА выставлял 1400.

Share this post


Link to post
Share on other sites
странная у вас какая то проблема с MTU

-A FORWARD -p tcp --syn -j TCPMSS --set-mss 1350

и все... А если еще почитать ман - то даже от циферки можно избавиться ;)

Не всё. В моём случае удалённый узел мало интересовался, какой MSS предложит ему клиент и ВСЕГДА выставлял 1400.

Это правило перепакует пакеты.

Я сталкивался с неработоспособностью некоторых сайтов где стоит больно хитрый IIS. Это правило помогло.

Share this post


Link to post
Share on other sites
У меня был случай, когда у клиента на хостинге в интернетах MSS был всегда 1400 байт, что с учётом заголовков превышало MTU для клиентского pptp-туннеля. Вылечилось использованием pppoe у клиента :)

Для начала ICMP траффик резать не нужно было в обе стороны.

В MPD5 есть "set iface enable tcpmssfix" (оно цепляет ng_ одноимённый)

В PF есть "scrub out on $ext_if0 all max-mss 1400"

в совсем исключительных случаях "scrub in all no-df", но по идее портит PMTU дискавери.

scrub прописываются по принципу: срабатывает первое правило под которое попал пакет.

Share this post


Link to post
Share on other sites
У меня был случай, когда у клиента на хостинге в интернетах MSS был всегда 1400 байт, что с учётом заголовков превышало MTU для клиентского pptp-туннеля. Вылечилось использованием pppoe у клиента :)

Для начала ICMP траффик резать не нужно было в обе стороны.

В MPD5 есть "set iface enable tcpmssfix" (оно цепляет ng_ одноимённый)

В PF есть "scrub out on $ext_if0 all max-mss 1400"

в совсем исключительных случаях "scrub in all no-df", но по идее портит PMTU дискавери.

scrub прописываются по принципу: срабатывает первое правило под которое попал пакет.

Для начала - не беритесь судить, не зная фактов. Режу я только smtp, да и то выборочно. Так что Ваше "не нужно было" - полная ерунда.

Что что-то есть в MPD5 - это просто чудесно, но ставить Фрю ради одной программы я не намерен.

Share this post


Link to post
Share on other sites

Нашёл в логах вот такую фигню. PPTP:

Apr  6 11:46:13 sax pptpd[24874]: CTRL: Client 10.2.0.200 control connection started
Apr  6 11:46:13 sax pptpd[24874]: CTRL: Starting call (launching pppd, opening GRE)
Apr  6 11:46:13 sax pptpd[24874]: GRE: Bad checksum from pppd.
Apr  6 11:47:19 sax pptpd[24874]: CTRL: EOF or bad error reading ctrl packet length.
Apr  6 11:47:19 sax pptpd[24874]: CTRL: couldn't read packet header (exit)
Apr  6 11:47:19 sax pptpd[24874]: CTRL: CTRL read failed
Apr  6 11:47:19 sax pptpd[24874]: CTRL: Reaping child PPP[24875]
Apr  6 11:47:19 sax pptpd[24874]: CTRL: Client 10.2.0.200 control connection finished

PPP:

Apr  6 11:46:13 sax pppd[24875]: Plugin radius.so loaded.
Apr  6 11:46:13 sax pppd[24875]: RADIUS plugin initialized.
Apr  6 11:46:13 sax pppd[24875]: Plugin radattr.so loaded.
Apr  6 11:46:13 sax pppd[24875]: RADATTR plugin initialized.
Apr  6 11:46:13 sax pppd[24875]: pppd 2.4.5 started by root, uid 0
Apr  6 11:46:13 sax pppd[24875]: Using interface ppp182
Apr  6 11:46:13 sax pppd[24875]: Connect: ppp182 <--> /dev/pts/159
Apr  6 11:46:14 sax pppd[24875]: Cannot determine ethernet address for proxy ARP
Apr  6 11:46:14 sax pppd[24875]: local  IP address 10.0.0.6
Apr  6 11:46:14 sax pppd[24875]: remote IP address x.x.x.x
Apr  6 11:47:19 sax pppd[24875]: LCP terminated by peer (User request)
Apr  6 11:47:19 sax pppd[24875]: Connect time 1.1 minutes.
Apr  6 11:47:19 sax pppd[24875]: Sent 116 bytes, received 76 bytes.
Apr  6 11:47:19 sax pppd[24875]: Modem hangup
Apr  6 11:47:19 sax pppd[24875]: Connection terminated.
Apr  6 11:47:19 sax pppd[24875]: Exit.

 

ЧЯДНТ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this