gentoo linux
k s i m u t e
з а м е т к и   о   с и с т е м н о м   а д м и н и с т р и р о в а н и и    
версия v1.3.0
main menu main
Rambler's Top100
  »  WIKI
  »  Заметки (микро-блог)
  »  Smart HDD мониторинг
  »  Linux Software Raid
  »  Windows + Xserver
  »  Pptpd kill
  »  Stress Test pptpd
  »  Консоль на com порту
  »  Cisco 827 h323
  »  Squid + sarg Логи
  »  Squid и 2 канала
  »  arpd
  »  OpenVpn
  »  Perl HTML Parsing
  »  Мониторинг очереди Postfix
  »  Main


Rambler's Top100

Stress test VPN сервера + несколько траблов и их разруление. VPN
Коробанов Сергей
Сентябрь 8, 2006

Ахтунг! В pptpd v1.3.4 в pptpd.conf имеется опция connections
и необходимость патчевания pptpd на предмет max connections отпала!

Но статейка, даст бог, пригодится людям :).

Давным давно установили мы для аутентификации pptpd Linux Point-to-Point Tunelling Protocol Server
Приступили к миграции на него пользователей, и тут начались проблемы.
Отказывался держать более 100 соединений.
Вернее держал, но странно. Версия сервера pptpd v1.2.3 При тестировании сделал около 190 соединений и все. Больше не пускает. Номер ошибки 800. Каждый раз цифры (кол-во соединений) разные. Вообщем одно расстройство.

Для проверки я сделал тестилку. Функционал простой.
Создает до 254-х соединений. (сколько конкретно указывается в connect.sh)
Впринципе можно модифицировать но IMHO смысла нет.
Несколько тривиальных скриптов на bash

  1. генерируем chap-secrets на vpn сервере скрипт: gen_chap_server.sh
  2. генерируем chap-sechets на своей машине genchap.sh
  3. Создаем пиры в /etc/ppp/peers gentun.sh
  4. создаем алиасы на интерфейс (я взял 185-ю сеть) соответствующие пути на маршрутизаторе и vpn сервере должны быть прописаны.
    genface.sh
  5. Если бы pppd был правильный, то интерфейсы и localbind не понадобились бы,
    но если linux клиент поднимает 2 и более соединения тоесть одна linux машина устанавливает два соединения с сервером то на сервере получается зомби процесс pppd а на клиенте некоторое время висят 2 интерфейса, начали разбираться, пришли к выводу что виноват pptpd, в доке нашел, что pptp соединение идентифицируется парой IP адрес и еще какоето Id которое назначается сервером клиенту и должно быть уникальным, а pptpd демон, как оказалось, на это id внимания не обращает и оно у него всегда одинаковое, это хоть как то объяснило ситуацию.
    Простыми словами - с одного клиентского ПК 2 соединения не создать, вне зависимости от ОС ПК пользователя.
    Поэтому пришлось шаманить с созданием 254-х интерфейсов.
  6. соединяемся connect.sh connect выполняется командой:
     pptp --localbind 192.168.185.xxx vpn1.server.ru call txxx 
    
    через pptp-command start txx не получится. надо патчевать pptp-connand добавляя --localbind.
     
    
    
     vpn1 ppp~# ip a l | grep link | wc -l 353
    
акаунты для тестирования будут называться t2 -> t254
пароли 123 пиры t1 -> t254

Вывод: pptpd НАДО патчевать. В следующих версиях разработчики обещают, вынести MAX_CONNECTIONS в опции передаваемые pptpd при запуске, но "обещанного 3 года ждут".
P.S. Обещанного дождались :) :)
Патч заключается в увеличении числа MAX_CONNECTIONS в defaults.h pptpd и его пересборке. Пропатчеванная версия работает стабильно проверенно на 3-х "боевых" серверах.

ворота
назад
на главную
наверх
наверх
далее
другие статьи
на главную | contact | © « 2006, Korobanov Sergey»