Отказоустойчивый ipsec vpn через multiwan
-
Доброе.
Спасибо за скрины ospf.Настройки скринов интерфейсов выкладывать не буду - там просто туннель, метрика и зона. Для интерфейса LAN метрика отсутствует
Все же можно выложить , если не затруднит ?
Router ID замазал на всякий.
Router ID - это внешний ip?
-
Ок, держи скрины интерфейсов с клиента. На сервере всё аналогично.
Значения Router ID по идее могут быть вообще любыми, но они обязательно должны отличаться друг от друга. Во время тестов пробовал значения 0.0.0.1 и 0.0.0.2 и всё работало.
UPD: галочка Accept Filter появилась в результате попыток исправить ошибку "ошибки "Unable to contact daemon Service not running?. " Скорее всего она не нужна, т.к. пока я не добавил 10.0.8.1/32 , 10.0.9.1/32 и т.д. в Disable Acceptance ошибка не исчезла.
-
А какова загрузка CPU для pf на концах туннеля?
Немного не в тему.
Обновил pf до 2.3.2_1 х64.
Установил\обновил клиента Windows прямо из Client Export Utility. Получил скорость копирования по SMB 50Мбит.
До этого на 2.2.6 как и у вас было не более 15 Мбит.Настройки сервера на всякий случай
dev ovpns5 verb 1 dev-type tun tun-ipv6 dev-node /dev/tun5 writepid /var/run/openvpn_server5.pid #user nobody #group nobody script-security 3 daemon keepalive 10 60 ping-timer-rem persist-tun persist-key proto udp cipher AES-128-CBC auth SHA1 up /usr/local/sbin/ovpn-linkup down /usr/local/sbin/ovpn-linkdown client-connect /usr/local/sbin/openvpn.attributes.sh client-disconnect /usr/local/sbin/openvpn.attributes.sh local tls-server server client-config-dir /var/etc/openvpn-csc/server5 username-as-common-name auth-user-pass-verify "/usr/local/sbin/ovpn_auth_verify user 'Local Database' true server5" via-env tls-verify "/usr/local/sbin/ovpn_auth_verify tls 'ra-ovpns-cert' 1" lport management /var/etc/openvpn/server5.sock unix push "route " push "route " ca /var/etc/openvpn/server5.ca cert /var/etc/openvpn/server5.cert key /var/etc/openvpn/server5.key dh /etc/dh-parameters.1024 crl-verify /var/etc/openvpn/server5.crl-verify tls-auth /var/etc/openvpn/server5.tls-auth 0 persist-remote-ip float topology subnet reneg-sec 0 ifconfig-pool-persist /var/games/ips.list 0
Hardware Crypto отключено.
-
Ребята, насчёт скорости прошу прошения. Сейчас скорость не 10 Мбит/c, а 10 Мбайт/c. Ну и на IPsec была соотв 35-40 МБайт/c.
pigbrother,
pf у меня уже 2.3.2_1 х64, а клиентом выступает второй pf тоже на 2.3.2_1 х64.С настройками сервера поиграюсь) Надеюсь, что хватит добавления "sndbuf 100000; rcvbuf 100000;" В целом настройки схожи с вашими. Пробовал менять шифрование с AES-256-CBC на AES-128-CBC - ничего не поменялось.
Причём на туннеле между медленными резервными WAN (по 100 мбит каждый) скорость в районе 8Мбайт,а на быстрых Гигабитных каналах - около 10Мбайт. -
Рискнул попробовать применить директивы "sndbuf 100000; rcvbuf 100000; " сейчас.
На скорости никак не отразилось - в процессе передачи файла размером примерно 4ГБ она менялась от 8.3 МБ/c до 10.7 МБ/c. Нагрузка на камень в процессе передачи была от 30 до 41% на сервере и от 19 до 28 на клиенте pf ( на клиенте чуть помощнее проц) -
Рискнул попробовать применить директивы "sndbuf 100000; rcvbuf 100000; " сейчас.
На скорости никак не отразилось - в процессе передачи файла размером примерно 4ГБ она менялась от 8.3 МБ/c до 10.7 МБ/c. Нагрузка на камень в процессе передачи была от 30 до 41% на сервере и от 19 до 28 на клиенте pf ( на клиенте чуть помощнее проц)CPU многоядерный?Проценты смотрели в дашбоарде?
Гляньте нагрузку в top.
OpenVPN - однопоточное приложение,один инстанс - одно ядро. Вполне возможно оно грузит это ядро на 100%, а дашбоард показывает суммарное потребления CPU всеми ядрами.
Неплохая статья:
Optimizing performance on gigabit networks
Правда про Linux, но в данном случае это не важно.
https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux#no1 -
2 Igor Filth
Попробуйте вкл. аппаратную поддержку шифрования для Openvpn (как советовал ув. pigbrother).https://forum.pfsense.org/index.php?topic=120625.0
-
2 Igor Filth
Попробуйте вкл. аппаратную поддержку шифрования для Openvpn (как советовал ув. pigbrother).https://forum.pfsense.org/index.php?topic=120625.0
Я пока от нее отказался. Не знаю, с ней ли было связано - но pf после переезда на новую платформу и включения аппаратной поддержки pf стал неадекватно себя вести. Не уверен, что дело в ее включении, пока набираю статистику. После обязательно поэкспериментирую опять.
По поводу загрузки CPU - без аппаратной поддержки 50 Мбит Openvpn загружают одно ядро Celeron N3150 на 40%.
При этом сам pf неплохо себя чувствует на оставшихся 3-х ядрах. При прибл. 100 Мбит Openvpn явно съел бы одно ядро полностью. -
2 werter
Попробую включить и потестировать на выходных.На всякий случай напишу конфиг своего сервера: 2 процессора Xeon E5620, 8 гб оперативки, sas диски в 10 RAID (ST3600057SS), pf крутится на виртуалке HV 2012R2.
pigbrother
Если несложно напишите в чём именно была неадекватность, чтобы я сразу обратил на это внимание?P.S. Сегодня руководство дало согласие выделить определённую сумму на новые 1U сервера для шлюзов, если это поможет поднять скорость хотя бы до 450-500 Мбит/c. Хотелось бы понять какой процессор для этого выбрать - с большей частотой или также обратить внимание на количество ядер. Лучше брать xeon? Или может быть собрать сервер на обычных i5-i7?
-
Если несложно напишите в чём именно была неадекватность, чтобы я сразу обратил на это внимание?
У меня нет опыта с таким VPN-трафиком, но свои предположения постараюсь изложить подробнее.
Цифры загрузки CPU вы смотрите в дашбоарде (главной странице) pfSense? Если так, то вы видите усредненную загрузку всех ядер процессора.OpenVPN - однопоточное приложение, если грубо - один экземпляр OpenVPN сервера или клиента - одно ядро. Массивный трафик вполне способен это ядро загрузить полностью и проявится ограничение скорости. Контролировать загрузку CPU при работе OVPN надо в консоли - или локально на pfSense, или через SSH, предварительно SSH включив в настройках pfSense.
В консоли - пункт 8 - Shell.
Затем набрать top
в выводе top наблюдать сколько ядер и на сколько загружает процесс openvpnP.S. Сегодня руководство дало согласие выделить определённую сумму на новые 1U сервера для шлюзов, если это поможет поднять скорость хотя бы до 450-500 Мбит/c. Хотелось бы понять какой процессор для этого выбрать - с большей частотой или также обратить внимание на количество ядер. Лучше брать xeon? Или может быть собрать сервер на обычных i5-i7?
Я уже приводил ссылку:
https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux#no1
450-500 Мбит/c - почти предел для OpenVPN.
Как вариант, вероятно - поднимать несколько серверов на разных портах, на удаленной стороне - несколко клиентов и распределять нагрузку между ними.Процессоры выбирайте какие позволяет бюджет, удостоверьтесь в поддержке ими AES-NI,
https://doc.pfsense.org/index.php/Are_cryptographic_accelerators_supported
пока OpenVPN с AES-NI использует не очень эффективно, но ситуация меняется.pf крутится на виртуалке HV 2012R2.
Соберите тестовый стенд на голом железе. Желательно - с хорошими сетевыми картами. Прогонять такой трафик через виртуальные сетевые карты и коммутаторы для гипервизора задача непростая, плюс поддержка AES-NI в виртуальную машину с хоста, скорее всего, не переносится. -
Я бы посмотрел в сторону чего-то из совсем свежего на Intel Kaby Lake.
pf крутится на виртуалке HV 2012R2.
Посмотрите в сторону Proxmox + software zfs raid 10 (из коробки) - универсальное bare metal решение. Управление из веб-гуи (html 5), бэкапы из коробки и по расписанию (!), кластер из коробки, zfs (copy-on-write) и все это даром.
Зачем вам Вин в кач-ве гипервизора? Зациклились все на этом гипер-в :'(
P.s. Еще и NAS бы настроил на nas4free (http://2gusia.livejournal.com/tag/nas4free)
-
Еще пара ссылок на тему:
https://forum.pfsense.org/index.php?topic=35669.0Looks like when you setup multiple openvpn instances it sets up additional processes:
eg…
root 38648 0.0 0.2 5116 3516 ?? Ss 6:18PM 0:00.00 openvpn --config /var/etc/openvpn/server2.conf
root 40283 0.0 0.2 5116 3764 ?? Ss 11:38AM 0:04.11 openvpn --config /var/etc/openvpn/server1.confSo in principle you could setup multiple processes this way, each listening on a different port and use the load balancer module. (From a quick google openvpn isn't multithreaded)
https://sourceforge.net/p/openvpn/mailman/message/27365978/
-
Позаимствовал на время у сотрудников 2 более-менее мощных компьютера (процессоры i5-4690 и i3-4130)
Поднял на них hyper-v и pfsense.
Скорость ovpn туннеля поднялась, но незначительно - до 14 МБ/с. Процессор на i3 при этом нагрузился порядочно (~80%). Смотрел через ssh top’ом.
Пробовал отключать шифрование, включать аппаратную поддержку – на скорость это не влияло вообще никак.Затем поставил PF на эти же компьютеры, но без hyper-v – скорость более 50 МБ/c, нагрузка на i3 примерно 60%.
Теперь отвечу почему hyper-v. Решение руководства. Якобы, на винде всё проще.
Сейчас уже заменить на proxmox немного проблематично – нужно всё полностью протестировать; показать руководству и убедить, что так лучше; научить человека, который меня замещает им пользоваться и поехать «в командировку» в выходной день всё это дело развернуть и настроить. -
Теперь отвечу почему hyper-v. Решение руководства. Якобы, на винде всё проще.
Это они гипер-в в "чистом" виде не видели (а не как роль вин-сервера). В чистом виде - также ком. строка (powershell).
Вы его таким покажите рук-ву :)Скорость ovpn туннеля поднялась, но незначительно - до 14 МБ/с
Поколение вирт. маш. гипер-в - второе ? Сетевая - не legacy ?
P.s. Осталось попробовать vmware esxi и xen.
-
А чего тогда freeBSD используют то? Ну и настраивали бы все на голой винде, там тоже все есть, каналы будут работать винда-винда, там L2TP помоему в нативе, только работает через одно место, да и глючит частенько… Я както пробовал ради интереса, за сутки канал раз 10 упал.
Предложите им такой вариант, пусть понюхают, как винда на самом деле работает в данных решениях.
Простите за офтоп... -
Это они гипер-в в "чистом" виде не видели (а не как роль вин-сервера). В чистом виде - также ком. строка (powershell).
Вы его таким покажите рук-ву :)Так оно в чистом виде и используется) Чтобы бесплатно было)
Поколение вирт. маш. гипер-в - второе ? Сетевая - не legacy ?
Поколение первое. Не стал пока со вторым разбираться для невиндовых os. Но могу и на втором развернуть. Сетевая не legacy.
-
Для начала было бы неплохо протестировать скорости на proxmox.
нагрузка на i3 примерно 60%
Странно. На "железном" pf 50 Мбит OpenVPN нагружают Celeron N3150 менее, чем на 50%.
Кстати, а просто 50 Мбит не OpenVPN трафика насколько загружают CPU?
Если ощутимо - виноваты сетевые карты\обработка прерываний.Смотреть так:
top -aSH
12 root -92 - 0K 640K WAIT 0 769:24 4.20% [intr{irq268: igb2[/b]:que}]
-
pigbrother
50 Мегабайт, а не мегабит ;)
Ставлю proxmox на свой стенд
-
-
pigbrother
50 Мегабайт, а не мегабит ;)
Ставлю proxmox на свой стенд
Нихаха себе канал… 400 мегабит. Для чего используете такую мощь, если не секрет?
Интересно будет посомотреть что его потянет. Ждемс.