it-swarm-ru.tech

Должен ли я использовать tap или tun для openvpn?

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

87
Thomaschaaf

если это нормально для создания vpn на уровне 3 (еще один прыжок между подсетями) - перейдите на tun.

если вам нужно соединить два сегмента Ethernet в двух разных местах - используйте команду tap. в такой конфигурации вы можете иметь компьютеры в одной подсети ip (например, 10.0.0.0/24) на обоих концах vpn, и они смогут напрямую "общаться" друг с другом без каких-либо изменений в своих таблицах маршрутизации. VPN будет действовать как коммутатор Ethernet. Это может звучать круто и полезно в некоторых случаях, но я бы посоветовал не делать этого, если вам это действительно не нужно. если вы выберете такую ​​настройку моста 2-го уровня - будет немного мусора (то есть широковещательных пакетов), проходящего через ваш vpn.

при использовании tap у вас будет немного больше накладных расходов - помимо заголовков ip также 8B или более заголовки Ethernet будут отправляться через туннель (в зависимости от типа вашего трафика - это, возможно, представит больше фрагментация).

76
pQd

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

Если бы я выбрал "tun", я бы, вероятно, столкнулся с множеством сломанных сервисов - множество вещей, которые работали, пока вы находитесь в офисе физически, но потом сломались бы, когда вы уходили за пределы площадки и ваш ноутбук не мог "видеть" устройства в подсети Ethernet больше.

Но, выбрав "tap", я говорю VPN, чтобы удаленные машины чувствовали себя точно так же, как они находятся в локальной сети, с широковещательными Ethernet-пакетами и необработанными Ethernet-протоколами, доступными для связи с принтерами и файловыми серверами, а также для питания их дисплеев сетевого соседства. Это прекрасно работает, и я никогда не получаю сообщений о вещах, которые не работают вне офиса!

24
Brandon Rhodes

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

OpenVPN FAQ и Ethernet Bridging HOWTO являются отличными ресурсами по этой теме.

16
jtimberman

Если вы планируете подключать мобильные (iOS или Android) устройства с использованием OpenVPN, то вам следует использовать TUN, как в настоящее время TAP не поддерживается OpenVPN на них:

Недостатки TAP: ..... не может использоваться с Android или iOS устройствами

8
Siegfried Löffler

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

Затем я обнаружил параметр "топология подсети" на сервере. Работает с RC 2.1 (не 2.0), но дает мне все преимущества tun (без мостов, производительности, маршрутизации и т.д.) С удобством одного (последовательного) IP-адреса на (windows) машину.

5
Mikeage

Потому что мне трудно найти простой совет:

Вы можете использовать TUN, если вы просто используете VPN для подключения к интернет.

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

5
user541686

Мои "правила большого пальца"
TUN - если вам нужен ТОЛЬКО доступ к ресурсам, подключенным напрямую к серверу OpenVPN на другом конце, и проблем с Windows нет. Здесь может помочь немного творчества, так как ресурсы "кажутся" локальными для сервера OpenVPN. (примерами могут быть подключение CUPS к сетевому принтеру или общий ресурс Samba на другом компьютере, установленном на сервере OpenVPN.)

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







находятся





5
oldbaritone

У меня был тот же вопрос несколько лет назад, и я попытался объяснить его в прямом выражении (которого я лично не нашел в других ресурсах) в своем блоге: Учебник по OpenVPN

Надеюсь, это поможет кому-то

4
Steve

Настройка TAP практически не требует дополнительной работы от человека, который его настраивает.

Конечно, если вы знаете, как настроить TUN, но не понимаете, что делаете, и просто следуете учебнику по туннелю, вы будете бороться за настройку TAP, но не потому, что это сложнее, а потому, что вы не знаете, что вы делаете. делает. Что легко может привести к сетевым конфликтам в среде TAP, а затем это выглядит сложнее.

дело в том, что если вам не нужен учебник, потому что вы знаете, что делаете, настройка tap занимает столько же времени, сколько и настройка tun.

с помощью 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 позволяет мне увеличить скорость передачи TAP до 120-150 Мбит/с.

Некоторые сообщают, что выделенные маршрутизаторы с поддержкой аппаратного шифрования AES достигают 400 Мбит/с! В 3 раза быстрее, чем может сделать i5-3570k (что в моей тестовой системе не могло быть выше 150 Мбит/с при 100% использования 1 ядра). Мой другой конец: E3-1231 v3, тогда было примерно 7% загрузки ЦП, около Использовалось 25% ядра openvpn. Так что E3, скорее всего, может увеличить соединение в 3-4 раза.

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

Чтобы указать на это, с tap: wrt3200acm получает до 70-80 Мбит/с с шифрованием. i5-3570k добирается до 120-150 с шифрованием. E3-1231 v3 получает не менее 360 Мбит/с с шифрованием (это интерполируется из моих выводов в случаях 1 и 2, потому что у меня не было 2 E3-1231 v3 для тестирования.)

Это мои выводы, основанные на копировании окон в окна между двумя клиентами в двух разных подсетях, подключенных через openvpn TAP

2
Vincent