PfSense & OpenVPN speed



  • Ребят, привет всем.
    Имеем установленный pfSense 2.2.6 на гипервизоре VMWare ESXi 5.5 (как виртуальную машину). Два провайдера. Один - основной, IP-статика, даунлод спид = 50 мбит/сек, аплод спид = 100 мбит/сек. Другой - резервный (10/10 мбит/сек). Имеем OpenVPN установленный и настроенный на pfSense на основной IP-линк (50/100 который).
    Если подключаться из дома с ПК Windows 7 по туннелю (OpenVPN GUI) при входящей скорости интернет-канала домашнего провайдера (85-95 мбит/сек по факту), и стянуть что-нибудь с файлошары через NetBIOS (137 порт) за туннелем, то скорость в пике достигает 1,25 мегабайт/сек (~  10 мбит/сек всего). Почему такая низкая скорость? Интерфейс в Виндовс 7 показывает, что скорость 100 мбит/сек по туннелю.
    OpenVPN настроен по UDP, используется "tun", пробовал играться с разными значениями буферов и т.д. - ничего не помогает, скорость не меняется. Выкладываю конфиг серверных настроек OpenVPN.
    Есть идеи?
    Всю голову уже сломал.



  • Наблюдения из личного опыта:
    1. на 2.2.6 имел скорости, близкие к вашим. После перехода на 2.3.2 - 4-7 Мегабайт/сек.
    2. Попадался  провайдер, через которого туннель UDP давал вообще смешные 100-500 Килобайт/сек. Переход на TCP увеличил скорость раза в 3.



  • @pigbrother:

    Наблюдения из личного опыта:
    1. на 2.2.6 имел скорости, близкие к вашим. После перехода на 2.3.2 - 4-7 Мегабайт/сек.
    2. Попадался  провайдер, через которого туннель UDP давал вообще смешные 100-500 Килобайт/сек. Переход на TCP увеличил скорость раза в 3.

    Пробовал обновляться до 2.3.2 версии, там почему-то клиенты перестают получать статические IP-адреса, которые указаны для них в "Client Specific Overrides" графе, командой:
    ifconfig-push 10.10.10.28 255.255.255.0;
    Перерыл все, ответа не нашёл, поэтому пришлось откатываться на 2.2.6. По крайней мере, он меня полностью устраивает, все работает.
    Попробую на днях на TCP "затеститься", может действительно поможет.



  • Если сервер с topology subnet (НЕ net30), то статику клиентам, IMHO, удобнее раздавать так:
    https://forum.pfsense.org/index.php?topic=106612.msg609136#msg609136

    работало в 2.2.6 работает и в 2.3.2

    Директива должна выглядеть так
    ;ifconfig-pool-persist /../../ips.list 0



  • Принял к сведению, но обновляться пока до 2.3.2 не планирую.



  • Доброе

    Имеем установленный pfSense 2.2.6 на гипервизоре VMWare ESXi 5.5

    Раз пф работает как вирт. маш., то настройки сетевых карт при этом поправили (откл. аппаратную разгрузку tcp) ?
    Open Vmtools также установили и сетевые карты у вас virtio ?

    пробовал играться с разными значениями буферов и т.д

    Покажите, как вы это делали ? На скринах этого нет.



  • @werter:

    Доброе

    Имеем установленный pfSense 2.2.6 на гипервизоре VMWare ESXi 5.5

    Раз пф работает как вирт. маш., то настройки сетевых карт при этом поправили (откл. аппаратную разгрузку tcp) ?
    Open Vmtools также установили и сетевые карты у вас virtio ?

    пробовал играться с разными значениями буферов и т.д

    Покажите, как вы это делали ? На скринах этого нет.

    VMWare-tools не установлен на pfSense, попробую установить.
    Аппаратная разгрузка по дефолту отключена (см. скрин)
    Буферы выставлял согласно этой статье https://habrahabr.ru/post/246953/




  • Можно установить Open-VM-Tools из стандартного набора пакетов.

    Буферы выставлял согласно этой статье https://habrahabr.ru/post/246953

    На 2.2.6 тоже экспериментировал с параметрами. Ощутимого результата не получил.



  • @pigbrother:

    Можно установить Open-VM-Tools из стандартного набора пакетов.

    Буферы выставлял согласно этой статье https://habrahabr.ru/post/246953

    На 2.2.6 тоже экспериментировал с параметрами. Ощутимого результата не получил.

    Благодарю, поставил из стандартного набора пакетов этот Open VM Tools package, надо попробовать ребутнуть виртуальную машинку с пф и еще раз проверить быстродействие OpenVPN.



  • Попробуйте добавить в System/Advanced/System Tunables net.inet.ip.fastforwarding 1



  • @borg:

    Попробуйте добавить в System/Advanced/System Tunables net.inet.ip.fastforwarding 1

    Ок, изменил значение с "default" на 1, веду наблюдение.



  • Никаких изменений, скорость скачки в районе 1-1,2 мегабайта/сек (8-9 мегабит/сек) :(



  • @Electric^shock:

    Никаких изменений, скорость скачки в районе 1-1,2 мегабайта/сек (8-9 мегабит/сек) :(

    А какова версия клиента? Если достаточно старая - попробуйте обновить.
    Если это Windows - гляньте свойства\состояние TAP-адаптера в состоянии коннекта. Старые версии TAP-адаптера показывали 10Мбит, новые - 100.



  • @pigbrother:

    @Electric^shock:

    Никаких изменений, скорость скачки в районе 1-1,2 мегабайта/сек (8-9 мегабит/сек) :(

    А какова версия клиента? Если достаточно старая - попробуйте обновить.
    Если это Windows - гляньте свойства\состояние TAP-адаптера в состоянии коннекта. Старые версии TAP-адаптера показывали 10Мбит, новые - 100.

    Самая новая стоит - 2.4.0, скорость показывает на адаптере - 100 мбит/сек.




  • Самая новая стоит - 2.4.0, скорость показывает на адаптере - 100 мбит/сек.

    Тогда идей больше нет. Просто напомню:
    Попробую на днях на TCP "затеститься", может действительно поможет.
    Проверяли?
    Какая, кстати, загрузка CPU при передаче файла?

    на гипервизоре VMWare ESXi 5.5
    Принял к сведению, но обновляться пока до 2.3.2 не планирую.

    А что мешает быстро поднять на ESXi 2.3.2 и проверить скорость?



  • @pigbrother:

    Самая новая стоит - 2.4.0, скорость показывает на адаптере - 100 мбит/сек.

    Тогда идей больше нет. Просто напомню:
    Попробую на днях на TCP "затеститься", может действительно поможет.
    Проверяли?
    Какая, кстати, загрузка CPU при передаче файла?

    на гипервизоре VMWare ESXi 5.5
    Принял к сведению, но обновляться пока до 2.3.2 не планирую.

    А что мешает быстро поднять на ESXi 2.3.2 и проверить скорость?

    А может ли такое быть, что виртуальный интерфейс OpenVPN этот в pfSense на 10 мбит/сек включен?
    Делаю ifconfig ovpns1 и он вообще почему-то не показывает его скорость (см. скрин)
    P.S. попробовал на TCP протеститься с этой же версией (2.2.6) - результат еще хуже (около 750 кбайт/сек), а когда по UDP - то до 1,35 мбайт/сек доходило.
    В момент загрузки файла через NetBIOS загрузка CPU на pfSense доходит до 33% даже
    Если tcpdump'ом снять лог в момент прокачки файла, то вот лог видим на pfSense:

    
    23:51:45.684037 IP (tos 0x0, ttl 128, id 12340, offset 0, flags [DF], proto TCP (6), length 40)
        10.10.10.27.50750 > Server.stk.loc.microsoft-ds: Flags [.], cksum 0xf195 (correct), seq 61505, ack 26339423, win 7959, length 0
    23:51:45.684069 IP (tos 0x0, ttl 63, id 33318, offset 0, flags [DF], proto TCP (6), length 1393)
        Server.stk.loc.microsoft-ds > 10.10.10.27.50750: Flags [.], cksum 0x9ef6 (correct), seq 26447663:26449016, ack 61505, win 1035, length 1353                                    SMB-over-TCP packet:(raw data or continuation?)
    
    23:51:45.684074 IP (tos 0x0, ttl 63, id 33319, offset 0, flags [DF], proto TCP (6), length 1393)
        Server.stk.loc.microsoft-ds > 10.10.10.27.50750: Flags [.], cksum 0x8a6b (correct), seq 26449016:26450369, ack 61505, win 1035, length 1353                                    SMB-over-TCP packet:(raw data or continuation?)
    
    23:51:45.684297 IP (tos 0x0, ttl 63, id 33320, offset 0, flags [DF], proto TCP (6), length 1393)
        Server.stk.loc.microsoft-ds > 10.10.10.27.50750: Flags [.], cksum 0x4ecf (correct), seq 26450369:26451722, ack 61505, win 1035, length 1353                                    SMB-over-TCP packet:(raw data or continuation?)
    
    23:51:45.684302 IP (tos 0x0, ttl 63, id 33321, offset 0, flags [DF], proto TCP (6), length 1393)
        Server.stk.loc.microsoft-ds > 10.10.10.27.50750: Flags [.], cksum 0x4da4 (correct), seq 26451722:26453075, ack 61505, win 1035, length 1353                                    SMB-over-TCP packet:(raw data or continuation?)
    
    23:51:45.684557 IP (tos 0x0, ttl 128, id 12341, offset 0, flags [DF], proto TCP (6), length 40)
        10.10.10.27.50750 > Server.stk.loc.microsoft-ds: Flags [.], cksum 0xe70e (correct), seq 61505, ack 26342129, win 7948, length 0
    
    

    Вроде как с MTU где-то косяк, на pfSens'e (ovpns1 интерфейсе) стоит 1500




  • Вроде как с MTU где-то косяк, на pfSens'e (ovpns1 интерфейсе) стоит 1500

    mtu - маловероятно

    Вот мой вывод ipconfig:
    ovpns5: flags=8051 <up,pointopoint,running,multicast>metric 0 mtu 1500
            options=80000 <linkstate>inet6 fe80::21b:21ff:fe80:35b8%ovpns5 prefixlen 64 scopeid 0xc
            inet 10.11.11.1 –> 10.11.11.2 netmask 0xffffff00
            nd6 options=21 <performnud,auto_linklocal>Opened by PID 27269

    А может ли такое быть, что виртуальный интерфейс OpenVPN этот в pfSense на 10 мбит/сек включен?
    Думаю, что индикация "скорости" подключения TAP - специфика реализации TAP как физического адаптера, специфичная для Windows.</performnud,auto_linklocal></linkstate></up,pointopoint,running,multicast>



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



  • @PbIXTOP:

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

    Пробовал на домашней машинке прописать MTU вместо 1500 - 1492, так удалось скорость поднять до 2,2 мегабайта/сек, но тем не менее, уведомления в tcpdump'е так и сыплются.



  • В момент загрузки файла через NetBIOS загрузка CPU на pfSense доходит до 33% даже

    Для приведенных вами скоростей цифра довольно высока. Сколько ядер выделено ВМ? Процессор гипервизора?



  • @pigbrother:

    В момент загрузки файла через NetBIOS загрузка CPU на pfSense доходит до 33% даже

    Для приведенных вами скоростей цифра довольно высока. Сколько ядер выделено ВМ? Процессор гипервизора?

    Одно ядро выделено от процессора Intel Xeon E5-2620 (2,0 GHz)




  • @Electric^shock:

    @PbIXTOP:

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

    Пробовал на домашней машинке прописать MTU вместо 1500 - 1492, так удалось скорость поднять до 2,2 мегабайта/сек, но тем не менее, уведомления в tcpdump'е так и сыплются.

    Рекомендую не прописывать, а проверять вначале как MTU так и скорость не шифрованного канала.