Большой Воронежский Форум
» Техническая поддержка>OpenVPN. code 995
strangern 20:02 13.09.2010
конфиг серва

local 192.168.1.2
port 1194
proto udp
dev tun
comp-lzo
duplicate-cn
client-to-client
ca "C:\\Program files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program files\\OpenVPN\\easy-rsa\\keys\\win0.crt"
key "C:\\Program files\\OpenVPN\\easy-rsa\\keys\\win0.key"
dh "C:\\Program files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"
tls-server
tls-auth "C:\\Program files\\OpenVPN\\easy-rsa\\keys\\ta.key" 0
server 192.168.10.0 255.255.255.0
ifconfig 192.168.10.2 192.168.10.20
route 192.168.10.0 255.255.255.0
push "route 192.168.10.0 255.255.255.0"
auth SHA1
keepalive 2 11500
max-clients 5
cipher BF-CBC
persist-key
persist-tun
status "C:\\Program files\\OpenVPN\\log\\status.log"
#log-append "C:\\Program files\\OpenVPN\\log\\openvpn.log"
client-to-client
verb 3

конфиг клиента

client
dev tun
remote vpn.nax
proto udp
resolv-retry infinite
nobind
pull
comp-lzo
persist-key
persist-tun
verb 3
ns-cert-type server
tls-auth "C:\\Program Files\\OpenVPN\\config\\ta.key" 1
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client.crt"
key "C:\\Program Files\\OpenVPN\\config\\client.key"
auth SHA1
cipher BF-CBC
route-method exe
route-delay 2

в сети 7 машин.
у всех все работает отлично кроме одной. стоит на ней запустить любое приложение на source(half-life 2, игры короче) то пинг 1000 и больше.
что пробовал-фаеры антивиры отключал удалял. винду переставлял. раньше был домолинк все настройки в модеме перекрутил. сейчас оптика фридом. сетевую менял. tun режим пробовал, даже на статичных ключах пробовал. пробовал разную шифрацию, таймауты, вообщем конфиги все перевертел.
вот логи конекта сервера и одной этой машины:

лог клиента. с момента соединения.

Wed Sep 15 00:29:16 2010 Initialization Sequence Completed
Wed Sep 15 00:30:08 2010 read from TUN/TAP : Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения. (code=995)
Wed Sep 15 00:30:08 2010 TUN/TAP interface has been stopped, exiting
Wed Sep 15 00:30:08 2010 TCP/UDP: Closing socket
Wed Sep 15 00:30:08 2010 C:\WINDOWS\system32\route.exe DELETE 192.168.10.0 MASK 255.255.255.0 192.168.10.5
ЌҐ **©¤Ґ* гЄ*§***л© ¬*аиагв.
Wed Sep 15 00:30:08 2010 C:\WINDOWS\system32\route.exe DELETE 192.168.10.0 MASK 255.255.255.0 192.168.10.5
ЌҐ **©¤Ґ* гЄ*§***л© ¬*аиагв.
Wed Sep 15 00:30:08 2010 Closing TUN/TAP interface
Wed Sep 15 00:30:08 2010 SIGTERM[soft,tun-stop] received, process exiting
Press any key to continue...

на сколько я понял проблема в драйвере tapdrvr.c
вот че на оф сайте нашел

{
622 DEBUGP (("[%s] Destroying tap device\n", p_Extension->m_TapName));
623
624 //======================================
625 // Let clients know we are shutting down
626 //======================================
627 p_Extension->m_TapIsRunning = FALSE;
628 p_Extension->m_TapOpens = 0;
629 p_Extension->m_Halt = TRUE;
630
631 //=====================================
632 // If we are concurrently executing in
633 // TapDeviceHook or AdapterTransmit,
634 // give those calls time to finish.
635 // Note that we must be running at IRQL
636 // < DISPATCH_LEVEL in order to call
637 // NdisMSleep.
638 //=====================================
639 NdisMSleep (500000);
640
641 //================================================== =========
642 // Exhaust IRP and packet queues. Any pending IRPs will
643 // be cancelled, causing user-space to get this error
644 // on overlapped reads:
645 // The I/O operation has been aborted because of either a
646 // thread exit or an application request. (code=995)
647 // It's important that user-space close the device handle
648 // when this code is returned, so that when we finally
649 // do a NdisMDeregisterDevice, the device reference count
650 // is 0. Otherwise the driver will not unload even if the
651 // the last adapter has been halted.
652 //================================================== =========
653 FlushQueues (p_Extension);
654 NdisMSleep (500000); // give user space time to respond to IRP cancel
655
656 TapDeviceFreeResources (p_Extension);
657 }

в промте:

{
622 DEBUGP ((" [%s] Разрушающий сигнал device\n", p_Extension-> m_TapName));
623
624//======================================
625//клиенты, Которым сообщают, мы закрываемся
626//======================================
627 p_Extension-> m_TapIsRunning = ЛОЖНЫЙ;
628 p_Extension-> m_TapOpens = 0;
629 p_Extension-> m_Halt = ВЕРНЫЙ;
630
631//=====================================
632//Если мы одновременно выполняем в
633//TapDeviceHook или AdapterTransmit,
634//дают тем требованиям время, чтобы закончиться.
635//Примечание, которым мы должны управлять в IRQL
636//<DISPATCH_LEVEL, чтобы звонить
637//NdisMSleep.
638//=====================================
639 NdisMSleep (500000);
640
641//================================================== =========
642//Выхлопной IRP и очереди пакета. Любое ожидание IRPs будет
643//быть отмененным, заставляя пространство пользователя получить эту ошибку
644//на перекрытом читает:
645//операция по вводу / выводу была прервана из-за любого a
646//пронизывают выход или прикладной запрос. (code=995)
647//важно, чтобы пространство пользователя закрыло ручку устройства
648//когда этот кодекс возвращен, так, чтобы когда мы наконец
649//делают NdisMDeregisterDevice, справочное количество устройства
650//0. Иначе водитель не будет разгружаться даже если
651//последний адаптер был остановлен.
652//================================================== =========
653 FlushQueues (p_Extension);
654 NdisMSleep (500000);//дают время пространства пользователя, чтобы ответить на IRP, отменяют
655
656 TapDeviceFreeResources (p_Extension);
657}

что делать то? на буржуйских сайтах рекомендуют переставить адаптер. вчера обновил версию и адаптер соответственно переставился.
насколько я понял 639 строку изменить надо? [Ответ]
fizzzz 10:19 14.09.2010
max-clients 5, а в сети 6 машин, остальное вроде все как надо [Ответ]
strangern 11:19 14.09.2010
fizzzz, о, спасибо, не заметил это, на 6 машин ключи раскидал но одновременно больше 5 не бывает.
но проблема факт не в этом, вчера запускал сервер и одну ту машину, пинг 700-1100.
что еще может быть?
думаю завтра под линью сервер попробовать запустить, но блин это темный лес, день точно провожусь с конфигами. [Ответ]
su -o 11:55 14.09.2010
а можно узнать ip проблемной машины? [Ответ]
strangern 11:57 14.09.2010
su -o, ip динамический, это не локалка, vpn через интернет поднят
на момент вчерашнего соединения ip в логах числится 83.139.133.36:2811 [Ответ]
strangern 10:59 15.09.2010
что с 995 ошибкой сделать? [Ответ]
fizzzz 12:50 15.09.2010
Ничего, она указывает, что подключение оборвалось во время передачи информации... [Ответ]
strangern 13:00 15.09.2010
физическое подключение не обрывалось. в чем причина Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения. (code=995) [Ответ]
fizzzz 13:41 15.09.2010
Вопрос:
Wed Sep 15 00:30:08 2010 C:\WINDOWS\system32\route.exe DELETE 192.168.10.0 MASK 255.255.255.0 192.168.10.5
ЌҐ **©¤Ґ* гЄ*§***л© ¬*аиагв.
Почему роуты удаляются? И что скрыто за иероглифами?

Имя компа по-русски написано? [Ответ]
strangern 14:04 15.09.2010
fizzzz, насколько я понимаю роуты удаляются потому как tap32 останавливается и udp сессия закрывается.
что за иероглифами без понятия, имя пользователя и компа по английски. по русски только имена подключений. но выше в листинге имя по русски без козюбриков. [Ответ]
Вверх