The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблема с OpenVPN"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Проблема с OpenVPN"  +/
Сообщение от Afternoon email(ok) on 11-Апр-12, 11:37 
Коллеги, помогите, уже мозг себе сломал.

Есть сервер FreeBSD 8.2, на нем поднят OpenVPN-сервер по tcp, к которому коннектились клиенты на W7 и WXP. Сервер подключен к инету через ADSL-модем.

Все замечательно работало до определенного момента, после которого канал VPN так же успешно поднимался, но программы через него не работали. Эмпирическим путем, а именно варьируя размер ICMP-пакетов командой ping определил, что нефрагментированные пакеты ходят отлично, а пакеты, требующие фрагментации, т.е. более 1472 байт не приходили обратно.

Вдумчивое чтение документации показало, что это наверняка проблема с MTU. Уменьшил MTU с двух сторон до 1400, потом до 1300. Картина та же - пакеты размером до MTU ходят отлично, все что больше - не приходит обратно (вполне возможно, что и не уходит). Пробовал играться с опцией mssfix - безрезультатно.

Обновил серверную часть - поставил последний из портов 2.2.2. Обновил клиентскую до 2.2.1. Не помогло.

Надеюсь и уповаю токмо на коллективный разум, который ткнет меня аки слепого барана в мою ошибку :)

Да, канал по UDP использовать не могу, т.к. часть клиентов сидят за прокси.

Ниже конфигурационный файл сервера и клиента.

Сервер:

port 1194
proto tcp-server
dev tun
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/---.crt
key /usr/local/etc/openvpn/keys/---.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 192.168.8.0 255.255.255.0
push "route 192.168.56.0 255.255.255.0"
duplicate-cn
keepalive 10 120
tls-server
tls-auth /usr/local/etc/openvpn/keys/ta.key 0
comp-lzo
persist-key
persist-tun
tun-mtu 1450
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3

Клиент:

client
dev tun
;port 1194
dev-node OpenVPN2
proto tcp-client
;nobind
remote --.---.--.---
http-proxy-retry # retry on connection failures
http-proxy proxy 8080
tls-client

ca            "C:\\Program Files\\OpenVPN\\config\\control\\ca.crt"
cert          "C:\\Program Files\\OpenVPN\\config\\control\\----.crt"
key           "C:\\Program Files\\OpenVPN\\config\\control\\----.key"
tls-auth      "C:\\Program Files\\OpenVPN\\config\\control\\ta.key" 1
ns-cert-type  server
comp-lzo
verb          3

tun-mtu 1450
tun-mtu-extra 32
mssfix

route-method  exe
route-delay 2
persist-key
persist-tun

В логах ничего крамольного нет.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблема с OpenVPN"  +/
Сообщение от konst email(??) on 12-Апр-12, 01:12 
> Коллеги, помогите, уже мозг себе сломал.
> Все замечательно работало до определенного момента, после которого ...

А что это за "определенный момент"? Что именно изменилось?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Проблема с OpenVPN"  +/
Сообщение от Afternoon email(ok) on 12-Апр-12, 10:52 
> А что это за "определенный момент"? Что именно изменилось?

Неясно, на сервере ничего не менялось в тот момент вообще. Подозреваю, что провайдер что-то подкрутил.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Проблема с OpenVPN"  +/
Сообщение от DN (ok) on 12-Апр-12, 01:44 
> Вдумчивое чтение документации показало, что это наверняка проблема с MTU. Уменьшил MTU
> с двух сторон до 1400, потом до 1300. Картина та же
> - пакеты размером до MTU ходят отлично, все что больше -
> не приходит обратно (вполне возможно, что и не уходит). Пробовал играться
> с опцией mssfix - безрезультатно.

Из manual:
It's best to use the --fragment and/or --mssfix options to deal with MTU sizing issues.

Both --fragment and --mssfix are designed to work around cases where Path MTU discovery is broken on the network path between OpenVPN peers.

The --mssfix option only makes sense when you are using the UDP protocol for OpenVPN peer-to-peer communication, i.e. --proto udp.

The --fragment option only makes sense when you are using the UDP protocol ( --proto udp ).

Переключитесь на UDP протокол.
Поставьте опции fragment и mssfix с обоих сторон.

mtu-test можно временно включить.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Проблема с OpenVPN"  +/
Сообщение от Afternoon email(ok) on 12-Апр-12, 10:53 
>[оверквотинг удален]
> MTU sizing issues.
> Both --fragment and --mssfix are designed to work around cases where Path
> MTU discovery is broken on the network path between OpenVPN peers.
> The --mssfix option only makes sense when you are using the UDP
> protocol for OpenVPN peer-to-peer communication, i.e. --proto udp.
> The --fragment option only makes sense when you are using the UDP
> protocol ( --proto udp ).
> Переключитесь на UDP протокол.
> Поставьте опции fragment и mssfix с обоих сторон.
> mtu-test можно временно включить.

Спасибо, я это читал, но VPN по UDP мне не подходит из-за того, что ряд клиентов сидит за прокси-серверами.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Проблема с OpenVPN"  +/
Сообщение от DN (ok) on 12-Апр-12, 16:44 
>> Переключитесь на UDP протокол.
>> Поставьте опции fragment и mssfix с обоих сторон.

Sorry , mssfix на одной стороне.

> Спасибо, я это читал, но VPN по UDP мне не подходит из-за
> того, что ряд клиентов сидит за прокси-серверами.

Попробуйте установить маленькое MTU (=>576) для туннеля.
Сбрасывйте принудительно DF бит для пакетов,
которые направляются в туннель.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Проблема с OpenVPN"  +/
Сообщение от Afternoon email(ok) on 13-Апр-12, 12:08 

> Попробуйте установить маленькое MTU (=>576) для туннеля.
> Сбрасывйте принудительно DF бит для пакетов,
> которые направляются в туннель.

Установил MTU в 576 - картина та же.

Принудительно сбрасываю бит DF. Пакеты объемом ниже MTU проходят и возвращаются отлично, пакеты более - естественно, не проходят.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Проблема с OpenVPN"  +/
Сообщение от DN (ok) on 14-Апр-12, 15:31 
> Установил MTU в 576 - картина та же.
> Принудительно сбрасываю бит DF. Пакеты объемом ниже MTU проходят и возвращаются отлично,
> пакеты более - естественно, не проходят.

Посмотрите tcpdump на маршрутизаторе под FreeBSD, что пакеты большого размера, которые
направляются в туннель, действительно дефрагментируются маршрутизатором.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Проблема с OpenVPN"  +/
Сообщение от a2l email on 17-Апр-12, 05:02 
>> Попробуйте установить маленькое MTU (=>576) для туннеля.
>> Сбрасывйте принудительно DF бит для пакетов,
>> которые направляются в туннель.
> Установил MTU в 576 - картина та же.
> Принудительно сбрасываю бит DF. Пакеты объемом ниже MTU проходят и возвращаются отлично,
> пакеты более - естественно, не проходят.

Это значит, что в "определённый момент" или провайдер ( или ты сам себе) зарезал icmp-трафик.Попробуй отключить firewall, если не поможет - ругайся с провайдером.
Чудикам, которые icmp бездумно блокируют я бы яйца поотрывал.
http://www.netheaven.com/pmtu.html - теория по теме.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру