Каковы различия между использованием dev tap и dev tun для openvpn? Я знаю, что разные режимы не могут взаимодействовать. В чем технические отличия, кроме просто слой 2 против 3 операции. Существуют ли разные характеристики производительности или разные уровни накладных расходов. Какой режим лучше. Какие функции доступны исключительно в каждом режиме.
85
Ответы:
если это нормально для создания vpn на уровне 3 (еще один прыжок между подсетями) - перейдите на tun.
если вам нужно соединить два сегмента Ethernet в двух разных местах - используйте команду tap. в такой конфигурации вы можете иметь компьютеры в одной подсети ip (например, 10.0.0.0/24) на обоих концах vpn, и они смогут напрямую «общаться» друг с другом без каких-либо изменений в своих таблицах маршрутизации. VPN будет действовать как коммутатор Ethernet. Это может звучать круто и полезно в некоторых случаях, но я бы посоветовал не делать этого, если вам это действительно не нужно. если вы выберете такую настройку моста 2-го уровня - будет немного мусора (то есть широковещательных пакетов), проходящего через ваш vpn.
при использовании tap у вас будет немного больше накладных расходов - помимо заголовков ip через туннель будет отправляться также 38B или более заголовков ethernet (в зависимости от типа вашего трафика - возможно, это приведет к большей фрагментации).
источник
Я выбрал «tap» при настройке VPN для друга, который владел небольшим бизнесом, потому что его офис использует множество компьютеров под управлением Windows, коммерческих принтеров и файлового сервера Samba. Некоторые из них используют чистый TCP / IP, некоторые, кажется, используют только NetBIOS (и, следовательно, нуждаются в широковещательных пакетах Ethernet), а некоторые я даже не уверен.
Если бы я выбрал «tun», я бы, вероятно, столкнулся с множеством сломанных сервисов - множество вещей, которые работали, пока вы находитесь в офисе физически, но потом сломались бы, когда вы уходили за пределы площадки и ваш ноутбук не мог «видеть» устройства в подсети Ethernet больше.
Но, выбрав «tap», я говорю VPN, чтобы удаленные машины чувствовали себя точно так же, как они находятся в локальной сети, с широковещательными Ethernet-пакетами и необработанными Ethernet-протоколами, доступными для связи с принтерами и файловыми серверами, а также для питания дисплея сетевого соседства. Это прекрасно работает, и я никогда не получаю сообщений о вещах, которые не работают вне офиса!
источник
Я всегда настраиваю Tun. Tap используется мостовым соединением Ethernet в OpenVPN и представляет беспрецедентный уровень сложности, с которым просто не стоит беспокоиться. Обычно, когда требуется установить VPN, она необходима сейчас , и сложные развертывания не осуществляются быстро.
OpenVPN FAQ и HOWTO Ethernet Bridging являются отличными ресурсами по этой теме.
источник
Если вы планируете подключать мобильные устройства (iOS или Android) с использованием OpenVPN, то вам следует использовать TUN, так как в настоящее время TAP не поддерживается на них OpenVPN :
источник
Я начал использовать tun, но переключился на tap, так как мне не нравилось использование подсети / 30 для каждого ПК (мне нужно поддерживать Windows). Я нашел это расточительным и запутанным.
Затем я обнаружил параметр «топология подсети» на сервере. Работает с RC 2.1 (не 2.0), но дает мне все преимущества tun (без мостов, производительности, маршрутизации и т. Д.) С удобством одного (последовательного) IP-адреса на (windows) машину.
источник
Потому что мне трудно найти простой совет:
Вы можете использовать TUN, если вы просто используете VPN для подключения к Интернету .
Вам нужно использовать TAP, если вы хотите подключиться к реальной удаленной сети (принтеры, удаленные рабочие столы и т. Д.)
источник
У меня был тот же вопрос несколько лет назад, и я попытался объяснить его в прямом выражении (которого я лично не нашел в других ресурсах) в своем блоге: Учебник по OpenVPN.
Надеюсь, это поможет кому-то
источник
Мои "правила большого пальца"
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 для ваших нужд.
источник
Настройка 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 для тестирования.)
Это мои выводы, основанные на копировании окон в окна между двумя клиентами в 2 разных подсетях, подключенных с помощью openvpn TAP
источник
Если тогда, то что, сколько у тебя есть? Я бы использовал TAP явно по той причине, что многоуровневое пакетирование происходит с гораздо меньшими задержками и потерями передачи, которые уменьшаются с помощью этого метода. Однако только на уровне 3 это влияет на любое очевидное влияние на работу VPN, особенно на аспект туннелирования и то, какие IP-адреса разрешены через и назначаемые адреса. Использование UDP может привести к другой ситуации, когда вам нужно будет решить, какой маршрут лучше для вас выбрать. Каждая сеть отличается и требует уникального набора параметров. Надеюсь это поможет.
источник