Чи слід використовувати tap або tun для openvpn?


85

Які відмінності між використанням dev tap та dev tun для openvpn? Я знаю, що різні режими не можуть взаємодіяти. У чому полягають технічні відмінності, крім операцій просто шар 2 проти 3. Чи є різні експлуатаційні характеристики або різний рівень накладних витрат. Який режим краще. Який функціонал доступний виключно в кожному режимі.


Поясніть, будь ласка, різницю? Що мостить Ethernet і чому це погано?
Thomaschaaf

Відповіді:


74

якщо це нормально, щоб створити vpn на рівні 3 (ще один перехід між підмережами) - перейдіть до налаштування.

якщо вам потрібно з'єднати два сегменти Ethernet у двох різних місцях - тоді використовуйте tap. у таких налаштуваннях ви можете мати комп’ютери в одній підмережі ip (наприклад, 10.0.0.0/24) на обох кінцях vpn, і вони зможуть безпосередньо спілкуватися один з одним без змін у таблицях маршрутизації. vpn буде діяти як Ethernet комутатор. це може здатися крутим і корисним у деяких випадках, але я б радив не звертатись до нього, якщо вам це справді не потрібно. якщо ви вибрали такий спосіб встановлення мостового шару 2 - через ваш vpn буде трохи "сміття" (тобто трансляції пакетів).

за допомогою tap ви матимете трохи більше накладних витрат - крім того, що ip-заголовки також надсилатимуть через тунель 38B або більше заголовків Ethernet (залежно від типу вашого трафіку - це, можливо, внесе більше фрагментації).


24

Я вибрав "tap" під час налаштування VPN для друга, який володів малим бізнесом, оскільки його офіс використовує клубок машин Windows, комерційних принтерів та файлового сервера Samba. Деякі з них використовують чистий TCP / IP, деякі, здається, використовують лише NetBIOS (і тому потрібні широкомовні пакети Ethernet), а деякі я навіть не впевнений у цьому.

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

Але, вибираючи "натиснути", я кажу VPN, щоб віддалені машини відчували себе так, як вони є в локальній мережі, з широкомовними пакетами Ethernet та сирими протоколами Ethernet, доступними для спілкування з принтерами та файловими серверами та для живлення їх мережевого відображення сусідства. Це чудово працює, і я ніколи не отримую повідомлення про речі, які не працюють за межами місця!


15

Я завжди налаштовував тюн. Tap використовується мостом Ethernet в OpenVPN і вводить безпрецедентний рівень складності, з яким просто не варто турбуватися. Зазвичай, коли потрібно встановити VPN, він потрібен зараз , а складні розгортання не швидко проходять.

OpenVPN FAQ і HOWTO Ethernet Bridging є відмінними ресурсами по цій темі.


9
На мій досвід, Tun простіше налаштувати, але не обробляє стільки конфігурацій мережі, тому у вас виникають набагато більш дивні проблеми з мережею. Навпаки, натиснення трохи складніше в налаштуванні, але як тільки ви це зробите, воно, як правило, "просто працює" для всіх.
Серін

8

Якщо ви плануєте підключати мобільні пристрої (iOS або Android) за допомогою OpenVPN, тоді слід використовувати TUN, оскільки на даний момент TAP не підтримується OpenVPN :

Недоліки TAP: ..... не можна використовувати на пристроях Android або iOS


TAP підтримується на Android через сторонні програми: Клієнт OpenVPN (розробник: colucci-web.it)
Boo

5

Я почав використовувати tun, але перейшов на tap, оскільки мені не сподобалось використання підмережі / 30 для кожного ПК (мені потрібно підтримувати Windows). Я виявив, що це марно і заплутано.

Потім я виявив на сервері параметр "топологія підмережі". Працює з 2.1 RC (не 2.0), але це дає мені всі переваги настройки (без мостів, продуктивності, маршрутизації тощо) із зручністю одного (послідовного) IP-адреси на (Windows) машині.


5

Тому що мені важко знайти прості поради:

Ви можете використовувати TUN, якщо просто використовуєте VPN для підключення до Інтернету .

Вам потрібно використовувати TAP, якщо ви хочете підключитися до фактичної віддаленої мережі (принтери, віддалені настільні комп'ютери тощо)


4

У мене було таке саме питання років тому, і я намагався пояснити його простою думкою (чого мені особисто не вистачало інших ресурсів) у своєму блозі: OpenVPN Primer

Сподіваюся, це комусь допоможе


2
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Марк Хендерсон

Чудовий пост! Я дуже рідко читаю подібний пост, але цей, який я зробив. Я згоден з Марком Хендерсоном, ви повинні написати невеликий резюме та поставити посилання після.
П’єр-Люк Бертран

4

Мої "великі правила"
TUN - якщо вам ТІЛЬКИ потрібен доступ до ресурсів, підключених безпосередньо до серверної машини OpenVPN на іншому кінці, і проблем з Windows немає. Трохи творчості тут може допомогти, якщо ресурси "здаються" локальними для сервера OpenVPN. (прикладами можуть бути з'єднання CUPS з мережевим принтером або спільний доступ Samba на іншому апараті. ПОНЯТТЯ на сервері OpenVPN.)

TAP - якщо вам потрібен доступ до декількох ресурсів (машин, накопичувачів, принтерів, пристроїв), підключених через мережу в інший кінець. TAP також може знадобитися для деяких програм Windows.


Переваги:
TUN зазвичай обмежує доступ VPN до однієї машини (IP-адреса), а отже (імовірно) кращої безпеки через обмежене підключення до віддаленої мережі. Підключення TUN створить менше навантаження на тунель VPN, і, у свою чергу, далекобійну мережу, оскільки лише трафік до / з однієї IP-адреси перетинатиме VPN на іншу сторону. Маршрутизація IP до інших станцій підмережі не включається, тому трафік не надсилається через тунель VPN і мало або взагалі неможливо спілкуватися поза сервером OpenVPN.

TAP - зазвичай дозволяє пакетам вільно протікати між кінцевими точками. Це дає гнучкість спілкування з іншими станціями в далекій мережі, включаючи деякі методи, що використовуються старішим програмним забезпеченням Microsoft. TAP має властивості безпеки, пов'язані із наданням зовнішнього доступу "за брандмауером". Це дозволить протікати більше пакетів трафіку через тунель VPN. Це також відкриває можливість вирішення конфліктів між кінцевими точками.

там євідмінності в затримці через рівень стека, але в більшості сценаріїв кінцевого користувача швидкість з'єднання кінцевих точок, ймовірно, є більш значущим фактором затримки, ніж конкретний рівень стека передачі. Якщо затримка піддається сумніву, можливо, було б корисно розглянути інші варіанти. Поточні мультипроцесори рівня ГГц зазвичай випереджають вузьке місце передачі через Інтернет.

"Краще" і "гірше" не можна визначити без контексту.
(Це улюблена відповідь консультанта: "Ну, це залежить ...")
Невже Ferrari "кращий", ніж самоскид? Якщо ви намагаєтесь піти швидко, це може бути; але якщо ви намагаєтеся перевозити великі вантажі, мабуть, ні.

Необхідно визначити такі обмеження, як "потреба в доступі" та "вимоги безпеки", а також визначення обмежень, таких як пропускна здатність мережі та обмеження обладнання, перш ніж можна вирішити, чи краще TUN чи TAP підходять вашим потребам.


2

Налаштування TAP майже не потребує додаткових робіт від людини, яка його налаштовує.

Звичайно, якщо ви знаєте, як налаштувати TUN, але не розумієте, що ви робите, і просто слідуючи навчальному посібнику, ви будете боротися за налаштування TAP, але не тому, що це складніше, а тому, що ви не знаєте, що ви робити. Що легко може призвести до мережевих конфліктів у середовищі TAP, і тоді це виглядає як складніше.

насправді, якщо вам не потрібен підручник, тому що ви знаєте, що ви робите, налаштування крана займає стільки ж часу, як і налаштування тюнінгу.

при натисканні існує багато рішень щодо підмережі, і я вважав, що найпростішим способом є використання підмережі класу B. site1 (Network1), використовуючи 172.22.1.0/16 site2 (network2), використовуючи 172.22.2.0/16 site3, використовуючи 172.22.3.0/16 і т.д.

ви налаштовуєте site1 за допомогою сервера oVPN і надаєте клієнтам діапазон ip 172.22.254.2 - 172.22.254.255/16, щоб у вас було понад 200 ovpn-клієнтів (підмереж), кожна підмережа може мати понад 200 клієнтів. Загалом складає 40 000 клієнтів (сумнівайтеся, що oVPN може це впоратися, але, як бачите, налаштування правильної підмережі дасть вам більше, ніж вам, швидше за все, потрібно)

ви користуєтесь краном, і всі клієнти разом, як у величезній корпоративній мережі.

Якщо, однак, на кожному сайті є свій власний DHCP, і він повинен бути, вам потрібно переконатися, що використовуючи ebtables або iptables або dnsmasq, щоб заблокувати розподіл dhcp, щоб уникнути дикого. Однак ebtables уповільнить продуктивність. використання dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44, ігнорування, наприклад, буде величезною задачею для установки на всіх dhcp-серверах. однак на сучасне обладнання вплив ebtables не так вже й великий. лише 1 або 2%

накладні витрати на кран, приблизно 32 до тюнінгу, теж не є великою проблемою (можливо, в незашифрованих мережах), але в зашифрованих мережах зазвичай AES спричиняє уповільнення.

На мій wrt3200acm, наприклад, незашифрований, я отримую 360 Мбіт / с. Використовуючи шифрування, він зменшується до 54-100 Мбіт / с, залежно від того, який тип шифрування я вибираю), але openvpn не робить шифрування на 1500 та 2-го шифрування на 32 накладних. Натомість він робить одноразове шифрування на 1500 + 32 накладних.

Тож вплив тут мінімальний.

На старій апараті ви можете помітити вплив більше, але на сучасному обладнанні це дійсно до мінімуму.

Шифрування між двома віртуальними машинами з підтримкою AES отримує мені свій ovpn з TAP до 120-150Mbps.

Деякі спеціалізовані маршрутизатори звіту з підтримкою апаратного шифрування AES отримують аж 400Mbps! У 3 рази швидше, ніж можна зробити i5-3570k (що в моїй тест-системі не могло отримати більше 150 Мбіт / с при 100% використання 1 ядра) Інший мій кінець: E3-1231 v3, тоді було приблизно 7% використання процесора, приблизно 25% використовуваного ядра openvpn було використано. Тож E3, швидше за все, міг би збільшити з'єднання в 3 - 4 рази.

тож у вас буде щось між 360Mbps і 600Mbps при підключенні між процесором E3-1231 v3, роблячи шифр AES265, auth SHA256 і ta.key, сертифікати tls-cipher Я також використовував найвищий TLS-DHE-RSA-WITH-AES- 256-SHA256

Щоб це вказати, натисніть: wrt3200acm отримує до 70-80 Мбіт з шифруванням. i5-3570k отримує 120-150 із шифруванням. E3-1231 v3 отримує щонайменше 360 Мбіт / с з шифруванням (це інтерполюється з моїх висновків із випадками 1 і 2, тому що у мене не було 2 E3-1231 v3 для тестування.)

Це мої висновки, що базуються на копіюванні вікон на вікна між двома клієнтами у двох різних підмережах, підключених через openvpn TAP


-1

Якщо тоді, чому що, скільки у вас є? Я використовував би TAP, явно з тієї причини, що відшарування пакетів протікає із значно меншою затримкою та втратою передачі, що зменшується цим методом. Однак тільки на шарі 3 це впливає на будь-який очевидний ефект на роботу VPN, зокрема аспект тунелювання та IP-адреси, дозволені через і присвоюються адреси. Використання UDP, можливо, спричинить іншу ситуацію, коли вам потрібно буде вирішити, який для вас найкращий шлях. Кожна мережа відрізняється і вимагає унікального набору параметрів. Сподіваюся, це допомагає.


1
Досить заплутано. Будь ласка, подумайте про їх очищення, пояснення важливих відмінностей та усунення їх.
vonbrand
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.