- Должен ли я использовать tap или tun для openvpn?
- 10 ответов
- Должен ли я использовать tap или tun для openvpn?
- Вы можете использовать TUN, если вы просто используете VPN для подключения к Интернету .
- Вам нужно использовать TAP, если вы хотите подключиться к реальной удаленной сети (принтеры, удаленные рабочие столы и т. Д.)
Должен ли я использовать tap или tun для openvpn?
В чем разница между использованием dev tap и dev tun для openvpn? Я знаю, что разные режимы не могут взаимодействовать. Каковы технические отличия, другие, а не только операции 2-го и 3-го уровней. Существуют ли разные характеристики производительности или разные уровни накладных расходов. Какой режим лучше. Какая функциональность доступна исключительно в каждом режиме.
10 ответов
, если нормально создавать vpn на уровне 3 (еще один прыжок между подсетями) — перейдите к tun.
, если вам нужно переместить два сегмента ethernet в двух разных местах — затем используйте tap. в такой настройке вы можете иметь компьютеры в одной и той же подсети (например, 10.0.0.0/24) на обоих концах vpn, и они смогут «разговаривать» друг с другом напрямую, без каких-либо изменений в их таблицах маршрутизации. vpn будет действовать как коммутатор ethernet. это может показаться классным и полезным в некоторых случаях, но я бы советовал не идти на это, если вам это действительно не нужно. если вы выберете такую настройку моста слоя 2 — будет немного «мусора» (это широковещательные пакеты), проходящего через ваш vpn.
с помощью крана у вас будет немного больше накладных расходов — кроме заголовков ip также 38B или более заголовков ethernet будут отправляться через туннель (в зависимости от типа вашего трафика — это может привести к большей фрагментации).
Я выбрал «tap» при настройке VPN для друга, который владел малым бизнесом, потому что его офис использует путаницу машин Windows, коммерческих принтеров и файлового сервера Samba. Некоторые из них используют чистый TCP /IP, некоторые, похоже, используют только NetBIOS (и, следовательно, для передачи Ethernet-пакетов), и некоторые из них я даже не уверен.
Если бы я выбрал «tun», я бы, вероятно, столкнулся с множеством сломанных сервисов — много вещей, которые работали, когда вы находились в офисе физически, но потом ломались, когда вы уходили с сайта, а ваш ноутбук мог ‘t «видеть» устройства в подсети Ethernet больше.
Но, выбрав «tap», я говорю VPN, чтобы удаленные машины чувствовали себя точно так же, как в локальной сети, с широковещательными Ethernet-пакетами и необработанными протоколами Ethernet, доступными для обмена данными с принтерами и файловыми серверами и для питания их сетевого окружения дисплей. Он отлично работает, и я никогда не получаю сообщений о вещах, которые не работают вне сайта.
Я всегда настраивал tun. Tap используется мостом Ethernet в OpenVPN и представляет собой беспрецедентный уровень сложности, которого просто не стоит беспокоиться. Обычно, когда необходимо установить VPN, требуется сейчас , а сложные развертывания выполняются не быстро.
FAQ OpenVPN и Ethernet Bridging HOWTO являются отличными ресурсами по этой теме .
Если вы планируете подключать мобильные устройства (iOS или Android) с помощью OpenVPN, то вы должны использовать TUN как в настоящее время TAP не поддерживается OpenVPN :
Недостатки TAP: . не могут использоваться с устройствами Android или iOS.
Я начал использовать tun, но переключился на космос, так как мне не понравилось использование /30 подсети для каждого ПК (мне нужно поддерживать Windows). Я нашел это расточительным и запутанным.
Затем я обнаружил опцию «подсеть топологии» на сервере. Работает с 2.1 RC (не 2.0), но дает мне все преимущества tun (без моста, производительности, маршрутизации и т. Д.) С удобством одного (последовательного) IP-адреса на (windows) машину.
Мои «эмпирические правила»
TUN — если вам нужен только доступ к ресурсам, подключенным непосредственно к серверу OpenVPN на другом конце, и нет проблем с Windows. Небольшое творчество здесь может помочь, заставив ресурсы «появляться» локально на сервере OpenVPN. (примерами могут быть подключение CUPS к сетевому принтеру или общий ресурс Samba на другом компьютере, настроенном на сервере OpenVPN.)
TAP — если вам нужен доступ к нескольким ресурсам (компьютеры, хранилища, принтеры, устройства), подключенные через сеть на другом конце. TAP также может потребоваться для некоторых приложений Windows.
Преимущества:
TUN обычно ограничивает доступ VPN к одному компьютеру (IP-адрес) и, следовательно, (предположительно) лучшую защиту за счет ограниченного подключения к сети дальней сети. Соединение TUN создаст меньшую нагрузку на туннель VPN и, в свою очередь, на дальнюю сеть, поскольку только трафик на /из одного IP-адреса будет пересекать VPN с другой стороны. IP-маршруты к другим станциям в подсети не включены, поэтому трафик не отправляется через туннель VPN, и связь с сервером OpenVPN практически невозможна или отсутствует.
TAP — обычно позволяет пакетам свободно течь между конечными точками. Это дает гибкость в общении с другими станциями в дальней сети, включая некоторые методы, используемые старым программным обеспечением Microsoft. TAP имеет неотъемлемые риски безопасности, связанные с предоставлением внешнего доступа «за брандмауэром». Это позволит увеличить количество пакетов трафика через туннель VPN. Это также открывает возможность конфликтов адресов между конечными точками.
Там есть различия в задержке из-за уровня стека, но в большинстве сценариев конечных пользователей скорость соединения конечных точек, вероятно, является более существенным фактором задержки, чем конкретный уровень стека передачи. Если возникает латентность, может быть хорошей идеей рассмотреть другие альтернативы. Современные многопроцессоры на уровне ГГц обычно обгоняют узкое место передачи через Интернет.
«Лучше» и «Хуже» не определены без контекста.
(Это любимый ответ консультанта: «Ну, это зависит . »)
Феррари «лучше», чем самосвал? Если вы пытаетесь идти быстро, это может быть; но если вы пытаетесь вытащить тяжелые грузы, возможно, нет.
Должны быть определены ограничения, такие как «необходимость доступа» и «требования безопасности», а также определение ограничений, таких как пропускная способность сети и ограничения оборудования, прежде чем можно решить, подходит ли TUN или TAP для ваших нужд.
У меня был такой же вопрос много лет назад, и я попытался объяснить это в простых выражениях (которых я лично нашел в других ресурсах) в своем блоге: Primer OpenVPN
Надеюсь, что это поможет кому-то
Настройка TAP требует почти никакой дополнительной работы от человека, настроившего его.
Конечно, если вы знаете, как настроить TUN, но не понимаете, что делаете, и просто следуя учебному курсу, вы будете бороться с настройкой TAP, но не потому, что это сложнее, а потому, что вы не знаете, что ты делаешь. Это легко может привести к сетевым конфликтам в среде TAP, а затем выглядит более сложным.
факт, если вам не нужен учебник, потому что вы знаете, что вы делаете, настройка tap занимает столько же времени, как настройка tun.
при нажатии есть много решений о подсети, я нашел самый простой способ использовать подсеть класса B. site1 (Network1) с использованием 172.22.1.0/16 site2 (network2) с использованием 172.22.2.0/16 site3 с использованием 172.22.3.0/16 и др.
вы устанавливаете сайт1 с сервером 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 и второе шифрование на 32 служебные данные. Вместо этого он делает однократное шифрование на 1500 + 32overhead.
Таким образом, влияние здесь минимально.
На более старых аппаратных средствах вы можете заметить влияние больше, но на современных аппаратных средствах это действительно сведено к минимуму.
Шифрование между двумя виртуальными машинами с поддержкой AES дает мне мой ovpn с 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 cpu, использующим шифр 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 для тестирования).
Это мои выводы, основанные на Windows-окнах, копируя между двумя клиентами в двух разных подсетях, связанных openvpn TAP
Должен ли я использовать tap или tun для openvpn?
Каковы различия между использованием dev tap и dev tun для openvpn? Я знаю, что разные режимы не могут взаимодействовать. В чем технические отличия, кроме просто слой 2 против 3 операции. Существуют ли разные характеристики производительности или разные уровни накладных расходов. Какой режим лучше. Какие функции доступны исключительно в каждом режиме.
если это нормально для создания 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 :
Недостатки TAP: . не может использоваться с устройствами Android или iOS
Я начал использовать 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