LINUX.ORG.RU
ФорумAdmin

Аналог OpenVPN в ядре

 , ,


0

3

Есть много девайсов разной дохлости (ARM, Geode etc), которые подключаются к другому чуть менее дохлому девайсу по OpenVPN со статическим ключом. По туннелям ходит OSPF.

Из-за дохлости скорость OpenVPN желает лучшего. Плюс у некоторых девайсов есть хардварные акселераторы шифрования, который в ядре юзаются автоматом, а из юзерспейса нужно ибаццо (cryptodev etc).

Посоветуйте аналог.

Требования:

- Выделенный интерфейс на каждый туннель (IPSEC VTI?) для OSPF

- В ядре

- Нормальная работа клиентов из-за NAT-а.

StrongSwan вроде что-то такое умеет (IPSEC-over-NAT-T + VTI?), у кого есть опыт?

IMHO только ipsec умеет использовать хардварные аппаратные средства шифрования.

Что-то простое было в racoon/openswan для gre туннелей - ospf через них умеет ходить.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

IMHO только ipsec умеет использовать хардварные аппаратные средства шифрования.

Та не, OpenVPN тоже может, если подгрузить в ведро модуль cryptodev, экспортирующий криптоалгоритмы ядра в юзерспейс. OpenSSL с ним даже нативно работает. Лично проверял на AMD Geode и его встроенном AES акселераторе - работает. Но не решает низкой производительности OpenVPN из-за перегона траффика между ядром и юзерспейсом (а в случае cryptodev небось даже два раза).

Что-то простое было в racoon/openswan для gre туннелей

GRE тут сразу отпадает, т.к. он требует реальных IP с двух сторон. А у меня НАТ везде. У циски в DMVPN это решено через NHRP протокол, даже есть опенсурс реализация OpenNHRP, но когда я её юзал последний раз - это было редкостное глюкалово. Причём сильно завязанное на енота (racoon). Может ему уже полегчало - надо бы проверить...

Но вроде как vti интерфейсы эффективнее GRE и имеют меньший оверхед.

blind_oracle ★★★★★
() автор топика

что то не заметил просадки в скорости на оpenvpn, почти 96% от 100Mb/s канала, ipsec не тестировал

anonymous
()
Ответ на: комментарий от anonymous

почти 96% от 100Mb/s канала

Какой проц и нагрузка на проц при этом какая? :-)

Ну и конфиг тоже не помешал бы, а то может у ТСа вот такая вот уже слегка прибояненная шняга

Pinkbyte ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

Да траффик разный, от VoIP до шар на самбе.

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

blind_oracle ★★★★★
() автор топика
Ответ на: комментарий от anonymous

На десктопных системах или серверах то с этим проблем нет - всё, в основном, упирается в шифрование. Даже на старом каком-то Core 2 Duo я упирался в 100Мбит, а не в процессор.

С embedded железяками ситуация несколько иная уже, там доля шифрования и таскания траффика в\из ядра иная, особенно учитывая ускорители шифрования (а они есть у меня в половине железок - в geode и в marvell kirkwood).

blind_oracle ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

а то может у ТСа вот такая вот уже слегка прибояненная шняга

Не, буферы настроены, проблем в общем именно в лишнем оверхеде самой архитектуры OpenVPN (tun/tap девайсы итд). Хочу то же самое, но в ядре :)

blind_oracle ★★★★★
() автор топика

strongSwan умеет создавать сетевой интерфейс только в том случае, если он использует userspace-реализацию ipsec.

ValdikSS ★★★★★
()
Ответ на: комментарий от blind_oracle

А поставьте mssfix 0 на сервере, и меняйте MSS через iptables, может, поможет. Код, который отвечает за смену MSS в OpenVPN, чрезвычайно медленный.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Ну, это будет шило на мыло. Я уже посмотрел примеры как юзать ядерный strongswan с VTI - там просто скрипт при подключении клиента исполняется который делает ip tunnel add ... с нужным XFRM Mark которым strongswan метит траффик. Такое может сработать, но нужно будет костылить скрипты эти.

blind_oracle ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.