В чем разница между использованием dev tap и dev tun для openvpn? Я знаю, что разные режимы не могут взаимодействовать. Какие есть технические отличия, кроме работы со слоями 2 и 3. Существуют ли разные характеристики производительности или разные уровни накладных расходов. Какой режим лучше. Какой функционал эксклюзивно доступен в каждом режиме.
если можно создать vpn на уровне 3 (еще один переход между подсетями) - выбирайте tun.
если вам нужно соединить два сегмента Ethernet в двух разных местах - используйте кран. при такой настройке у вас могут быть компьютеры в одной подсети IP (например, 10.0.0.0/24) на обоих концах vpn, и они смогут «общаться» друг с другом напрямую без каких-либо изменений в своих таблицах маршрутизации. vpn будет действовать как коммутатор Ethernet. это может показаться крутым и в некоторых случаях полезно, но я бы посоветовал не прибегать к нему, если он вам действительно не нужен. если вы выберете такую настройку моста 2 уровня - будет немного «мусора» (то есть широковещательных пакетов), проходящего через ваш vpn.
используя кран, у вас будет немного больше накладных расходов - помимо заголовков IP также 38B или больше заголовков Ethernet будут отправляться через туннель (в зависимости от типа вашего трафика - возможно, это приведет к большей фрагментации).
Я выбрал «касание» при настройке VPN для друга, который владел малым бизнесом, потому что в его офисе используется клубок компьютеров Windows, коммерческих принтеров и файлового сервера Samba. Некоторые из них используют чистый TCP / IP, некоторые, похоже, используют только NetBIOS (и, следовательно, нуждаются в широковещательных пакетах Ethernet) для связи, а некоторые я даже не уверен.
Если бы я выбрал «tun», я, вероятно, столкнулся бы с множеством неисправных сервисов - множеством вещей, которые работали, пока вы физически находитесь в офисе, но затем сломались бы, когда вы ушли за пределы объекта, и ваш ноутбук не мог «видеть» устройств в подсети Ethernet больше.
Но, выбирая «касание», я говорю VPN, чтобы удаленные машины чувствовали себя в точности так, как будто они находятся в локальной сети, с широковещательными пакетами Ethernet и необработанными протоколами Ethernet, доступными для связи с принтерами и файловыми серверами и для питания их дисплея сетевого окружения. Он отлично работает, и я никогда не получаю сообщений о вещах, которые не работают вне офиса!
Я всегда настраивал тун. Tap используется для Ethernet-моста в OpenVPN и представляет беспрецедентный уровень сложности, о котором просто не стоит беспокоиться. Обычно, когда необходимо установить VPN, это необходимо сейчас, а сложные развертывания не происходят быстро.
В OpenVPN FAQ и Протоколы Ethernet Bridging HOWTO являются превосходно ресурсы по этой теме.
Если вы планируете подключать мобильные (iOS или Android) устройства с помощью OpenVPN, вам следует использовать TUN как текущий TAP. не поддерживается OpenVPN на них:
Недостатки TAP: ..... нельзя использовать с устройствами Android или iOS.
Потому что мне сложно найти простой совет:
Я начал использовать tun, но переключился на tap, так как мне не нравилось использование подсети / 30 для каждый ПК (мне нужна поддержка Windows). Я обнаружил, что это расточительно и сбивает с толку.
Затем я обнаружил на сервере опцию «топология подсети». Работает с RC 2.1 (не 2.0), но дает мне все преимущества tun (отсутствие мостов, производительности, маршрутизации и т. Д.) С удобством использования одного (последовательного) IP-адреса на каждую машину (Windows).
Мои "практические правила"
TUN - если вам нужен ТОЛЬКО доступ к ресурсам, подключенным напрямую к серверу OpenVPN на другом конце, и нет проблем с Windows. Здесь может помочь немного творчества, поскольку ресурсы «кажутся» локальными для сервера OpenVPN. (примерами могут быть подключение CUPS к сетевому принтеру или общий ресурс Samba на другом компьютере, установленном на сервере OpenVPN.)
TAP - если вам нужен доступ к нескольким ресурсам (машинам, хранилищам, принтерам, устройствам), подключенным через сеть на другом конце. TAP также может потребоваться для некоторых приложений Windows.
У меня был этот же вопрос много лет назад, и я попытался объяснить его в простых терминах (которые, как я лично обнаружил, отсутствуют в других ресурсах) в моем блоге: Основы 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 и т. д.
вы настраиваете 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 и второе шифрование на 32 накладных расходах. Вместо этого он выполняет однократное шифрование на 1500 + 32 служебных данных.
Так что влияние здесь минимальное.
На более старом оборудовании вы можете заметить большее влияние, но на современном оборудовании оно действительно сведено к минимуму.
Шифрование между двумя виртуальными машинами с поддержкой AES дает мне мой ovpn с TAP до 120-150 Мбит / с.
Некоторые сообщают, что выделенные маршрутизаторы с поддержкой аппаратного шифрования AES достигают скорости 400 Мбит / с! В 3 раза быстрее, чем у i5-3570k (что на моей тестовой системе не могло быть выше 150 Мбит / с при 100% использовании одного ядра) Мой другой конец: E3-1231 v3, тогда был примерно 7% загрузки ЦП, около Было использовано 25% ядра openvpn. Так что E3, скорее всего, может увеличить соединение в 3-4 раза.
так что у вас будет что-то между 360 Мбит / с и 600 Мбит / с с подключением между процессором E3-1231 v3, выполняющим тап AES265 шифр, аутентификацию SHA256 и ta.key, сертификаты tls-cipher Я также использовал самый высокий 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.
Я обычно по умолчанию использую TUN, так как наличие его в собственной подсети лучше по ряду причин, среди которых брандмауэр и OpenVPN, как правило, работают прямо из коробки.
Однако у TAP есть несколько преимуществ, среди которых то, что подключенные клиенты ведут себя точно так же, как физические. Это означает, например, что любые ресурсы с ограничением по IP, которые обычно доступны только в физической сети, также работают.
Другой вариант использования, который я вижу в домашних ситуациях, заключается в том, что сервер OpenVPN не имеет выхода в Интернет и, следовательно, маршрутизируется через какой-то модем / маршрутизатор, поддерживаемый провайдером. Чаще всего они не поддерживают такие вещи, как статическая маршрутизация, которая является обязательной, если вы позволяете OpenVPN использовать свою собственную подсеть.
Если тогда что, сколько у вас есть? Я бы использовал TAP явно по той причине, что распределение пакетов по уровням происходит с гораздо меньшими задержками и потерями передачи, которые устраняются этим методом. Однако только на уровне 3 это влияет на любое очевидное влияние на работу VPN, особенно на аспект туннелирования, а также на то, какие IP-адреса разрешены и назначаемые адреса. Использование UDP может привести к другой ситуации, когда вам нужно будет решить, какой маршрут лучше всего выбрать для вас. Каждая сеть отличается и требует уникального набора параметров. Надеюсь это поможет.