VPN з високою пропускною здатністю для підключення хостів центрів обробки даних


16

Ми орендуємо декілька хостів у загальнодоступному центрі обробки даних. Центр обробки даних не пропонує приватні VLAN; всі хости отримують одну (або більше) публічних IPv4 / IPv6 адрес. Хости оснащені дуже сучасними процесорами (чотириядерний Haswell, 3,4 ГГц) і мають Gbit-посилання. Різні райони (кімнати? Поверхи? Будинки?) Центру обробки даних пов'язані між собою - з того, що я можу сказати, - посиланнями Gbit або 500Mbit. Наші господарі працюють за допомогою дихання Debian. Наразі ми працюємо трохи вище 10 хостів, очікуючи зростання в найближчому майбутньому.

Я шукаю спосіб змусити всіх господарів спілкуватися між собою, надійно та конфіденційно. Шар 3 тонкий, шар 2 добре (але не обов'язково). Оскільки я не маю доступу до VLAN, він повинен бути певним VPN.

Що для мене важливо:

  1. висока пропускна здатність, ідеально близька до провідногошвидкості
  2. децентралізована, сітчаста архітектура - це переконання, що пропускна здатність не сповільнюється центральним елементом (наприклад, концентратор VPN)
  3. Помітка процесора не надмірна (враховуючи шифри AESNI та GCM, я сподіваюся, що це не смішна вимога)
  4. простота експлуатації; не надто складна в налаштуванні; мережа може рости без втрати встановлених з'єднань

Зараз ми використовуємо tinc . Він тикає [2] та [4], але я досягаю лише 600 Мбіт / с (симплекс) проводів швидкості 960 Мбіт / с, і я повністю втрачаю одне ядро. Крім того, tinc 1.1 - наразі в розробці - ще не багатопоточний, тому я застряг у виконанні сингл-хору.

Традиційний IPSec не підлягає сумніву, оскільки він потребує центрального елемента або налаштування sh * тунелів (щоб досягти [2]). IPsec з опортуністичним шифруванням був би рішенням, але я не впевнений, що він коли-небудь перетворював його на стабільний виробничий код.

Я сьогодні натрапив на tcpcrypt . За винятком відсутньої автентичності, це виглядає як те, що я хочу. Реалізація простору користувача пахне повільно, але так само, як і всі інші VPN. І вони говорять про реалізацію ядра. Я ще цього не пробував, і мені цікаво, як він поводиться повторно [1] та [3].

Які ще варіанти є? Що роблять люди, які не на AWS?

Додаткова інформація

Я зацікавлений у GCM, сподіваючись, що це зменшить слід процесора. Дивіться статтю Intel на цю тему . Під час розмови з одним із розробників тинку він пояснив, що навіть використовуючи AESNI для шифрування, HMAC (наприклад, SHA-1) все ще дуже дорогий при швидкості Gbit.

Остаточне оновлення

IPsec у транспортному режимі працює ідеально і робить саме те, що я хочу. Після довгої оцінки я вибрав Openswan над ipsec-інструментами, просто тому, що він підтримує AES-GCM. На процесорах Haswell я вимірюю близько 910-920Mbit / сек симплексної пропускної здатності з приблизно 8-9% завантаженням процесора одного kworkerd.


Так, низький кінець екіпірування? Яку ефективність ви очікуєте зберегти після шифрування гігабітного рівня? Ні в якому разі - я пропоную вам знайти більш професійного хоста або вбити частину шифрування.
TomTom

2
@tomtom, згідно з документами про криптовалюту Intel, продуктивність шифрування для AES-128-CBC становить 4,52 циклу на байт, що означає, що 100 МБ / с буде з'їдати до 450 МГц одного ядра. Розшифрування значно дешевше. Тому, якщо проблеми, пов'язані з впровадженням, не знижують продуктивність, вона повинна працювати навантаженнях, які не потребують максимальної продуктивності процесора та максимальної продуктивності мережі одночасно .
ваббіт

чому б ви хотіли GCM? IPSEC не сприйнятливий до атак TLS, тому розгляд питання використання GCM для подолання слабкостей TLS в режимах CBC є суперечливим моментом.
the wabbit

Відповіді:


15

Чого ви не хочете, це VPN. Те , що ви робите покупку дійсно IPsec, але не в тунельному режимі. Швидше, ви хочете IPsec у транспортному режимі.

У цій конфігурації кожен хост спілкується безпосередньо зі своїм одноранговим, і тільки корисні навантаження пакетів шифруються, залишаючи IP-заголовки на місці. Таким чином, вам не потрібно робити будь-яку гімнастику маршрутизації, щоб налагодити роботу.

Так, вам знадобиться строфа підключення IPsec для кожного хоста (якщо тільки ваші хости не згруповані в підмережу; в цьому випадку це можна зробити через блок CIDR), але це може бути легко запрограмовано програмно системою управління конфігурацією.

Ви не питали про деталі конфігурації, але якщо вам потрібні деякі вказівники (там не все так багато надійної інформації про транспортний режим), ви можете звернутися до цієї публікації в блозі, яку я нещодавно написав.


Я є другою ідеєю використовувати для цього транспортний режим IPSEC. Однак використання PSK з OpenSWAN може бути не найкращим з усіх налаштувань. Linux вже поставляється з власною реалізацією IPSEC та демон-клавішами (racoon), я б дотримувався цього, якщо не існує конкретної вимоги, яка не охоплена KAME / racoon.
the wabbit

1
Дуже дякую! Поєднуючи ваші поради, я використав натисну реалізацію IPsec з єноном. Я спробував спочатку на невеликих одноядерних машинах, і вже пропускна здатність збільшилася на 50%, а затримка знизилася приблизно до 60%. Я підтверджую це на вузлах Haswell наступного тижня і тоді прийму відповідь. Мені потрібно розібратися, чи підтримується AES-GCM в ядрі, і як подати сигнал до IPsec.
Хенк

@ syneticon-dj - просто цікаво ... чому б не openswan? Він все ще використовує біти ip xfrm ядра ядра для IPsec, але використовує плутон як демон IKE у просторі користувачів замість racoon. Я не прихильник того, що openwan - найкраще там - це просто все, що я використав, і якщо є кращі варіанти, я хочу рухатись у цьому напрямку.
ЄЕАА

1
Це, мабуть, зводиться до особистих уподобань, але у мене завжди виникали проблеми з неелегантністю файлів конфігурацій Free- / OpenSWAN та абсолютно некрасивою реалізацією маршрутизації. Мені дуже подобається динамічна частина, racoonctlяка дуже нагадує те, що дозволяють комерційні маршрутизатори в своїх системах управління IPSEC. KAME відчуває себе більш ретельно спроектованим, тоді як OpenSWAN, швидше, почувається зв'язаним разом.
ваббіт

@ syneticon-dj, ви б хотіли детальніше розглянути це? Ви маєте на увазі, що можете прокладати декілька мереж через посилання IPSec, не потребуючи декількох конфігурацій SA, як це зараз стоїть у Openswan?
rsuarez
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.