Devo usar tap ou tun para openvpn?

85

Quais são as diferenças entre usar o dev tap e o dev tun para o openvpn? Eu sei que os diferentes modos não podem interoperar. Quais são as diferenças técnicas, além da operação de camada 2 vs 3. Existem características de desempenho diferentes ou níveis diferentes de sobrecarga. Qual modo é melhor. Que funcionalidade está disponível exclusivamente em cada modo.

Thomaschaaf
fonte
Por favor, explique a diferença? o que é a ponte ethernet e por que é ruim?
7339 Thomaschaaf

Respostas:

74

se não há problema em criar vpn na camada 3 (mais um salto entre sub-redes) - vá para tun.

se você precisar conectar dois segmentos ethernet em dois locais diferentes - use tap. nessa configuração, você pode ter computadores na mesma sub-rede IP (por exemplo, 10.0.0.0/24) nas duas extremidades da VPN, e eles poderão 'conversar' diretamente entre si, sem nenhuma alteração nas tabelas de roteamento. O VPN atuará como um switch Ethernet. isso pode parecer legal e é útil em alguns casos, mas eu aconselho a não fazer isso, a menos que você realmente precise. se você escolher essa configuração de ponte da camada 2 - haverá um pouco de 'lixo' (que é pacotes de transmissão) passando pelo seu vpn.

usando tap, você terá um pouco mais de sobrecarga - além dos cabeçalhos IP, também serão enviados 38B ou mais cabeçalhos ethernet pelo túnel (dependendo do tipo de tráfego - possivelmente haverá mais fragmentação).

pQd
fonte
24

Eu escolhi "tap" ao configurar uma VPN para um amigo que possuía uma pequena empresa porque seu escritório usa um emaranhado de máquinas Windows, impressoras comerciais e um servidor de arquivos Samba. Alguns deles usam TCP / IP puro, outros parecem usar apenas NetBIOS (e, portanto, precisam de pacotes de difusão Ethernet) para se comunicar, e alguns nem tenho certeza.

Se eu tivesse escolhido "tun", provavelmente teria enfrentado muitos serviços quebrados - muitas coisas que funcionavam enquanto você estava no escritório fisicamente, mas que se rompiam quando você saía do local e seu laptop não conseguia "ver" os dispositivos na sub-rede Ethernet.

Mas, ao escolher "tocar", digo à VPN para fazer com que as máquinas remotas se sintam exatamente como se estivessem na LAN, com pacotes Ethernet de transmissão e protocolos Ethernet brutos disponíveis para comunicação com impressoras e servidores de arquivos e para ativar a exibição do ambiente de rede. Funciona muito bem e nunca recebo relatórios de coisas que não funcionam fora do local!

Brandon Rhodes
fonte
15

Eu sempre configuro tun. O Tap é usado pela ponte Ethernet no OpenVPN e apresenta um nível sem precedentes de complexidade que simplesmente não vale a pena se preocupar. Geralmente, quando uma VPN precisa ser instalada, ela é necessária agora e implantações complexas não são rápidas.

O OpenVPN FAQ e o Ethernet Bridging HOWTO são excelentes recursos sobre este tópico.

jtimberman
fonte
9
Na minha experiência, o tun é mais fácil de configurar, mas não lida com tantas configurações de rede, então você enfrenta problemas de rede muito mais estranhos. Por outro lado, o toque é um pouco mais complicado de configurar, mas, uma vez que você o faz, normalmente "simplesmente funciona" para todos.
Cerin 28/03
8

Se você planeja conectar dispositivos móveis (iOS ou Android) usando o OpenVPN, use TUN, pois atualmente o TAP não é suportado pelo OpenVPN :

Desvantagens da TAP: ..... não pode ser usado com dispositivos Android ou iOS

Siegfried Löffler
fonte
TAP é suportado em Android através de uma terceira partido app: OpenVPN Cliente (Desenvolvedor: colucci-web.it)
Boo
5

Comecei usando tun, mas mudei para tocar, pois não gostava do uso de uma sub-rede / 30 para cada PC (preciso dar suporte ao Windows). Eu achei isso um desperdício e confuso.

Então eu descobri a opção "sub-rede de topologia" no servidor. Funciona com os RCs 2.1 (não 2.0), mas oferece todas as vantagens do tun (sem ponte, desempenho, roteamento, etc.) com a conveniência de um endereço IP (seqüencial) por máquina (Windows).

Mikeage
fonte
5

Porque acho difícil encontrar conselhos simples:

Você pode usar TUN se você apenas usar a VPN para se conectar à Internet .

Você precisa usar a TAP se quiser se conectar à rede remota real (impressoras, áreas de trabalho remotas, etc.)

Mehrdad
fonte
4

Eu tive essa mesma pergunta anos atrás e tentei explicá-la em termos diretos (que eu pessoalmente considerava ausentes em outros recursos) no meu blog: An OpenVPN Primer

Espero que ajude alguém

Steve
fonte
2
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Mark Henderson
Ótimo post! Eu raramente leio um post inteiro como este, mas este eu li. Concordo com Mark Henderson, porém, você deve escrever um pequeno resumo e colocar o link depois.
Pierre-Luc Bertrand
4

Minhas "regras
práticas " TUN - se você SOMENTE precisa de acesso a recursos conectados diretamente à máquina do servidor OpenVPN na outra extremidade, e não há problemas no Windows. Um pouco de criatividade aqui pode ajudar, fazendo com que os recursos "pareçam" serem locais para o servidor OpenVPN. (os exemplos podem ser uma conexão CUPS com uma impressora de rede ou um compartilhamento Samba em outra máquina MONTADA no servidor OpenVPN.)

TAP - se você precisar acessar vários recursos (máquinas, armazenamento, impressoras, dispositivos) conectados via rede na rede. outro final. A TAP também pode ser necessária para determinados aplicativos do Windows.


Vantagens: o
TUN normalmente restringe o acesso à VPN a uma única máquina (endereço IP) e, portanto, (presumivelmente) melhor segurança através de conectividade limitada à rede do lado oposto. A conexão TUN criará menos carga no túnel da VPN e, por sua vez, na rede do lado remoto, porque apenas o tráfego de / para o único endereço IP cruzará a VPN para o outro lado. As rotas IP para outras estações na sub-rede não estão incluídas, portanto, o tráfego não é enviado através do túnel da VPN e pouca ou nenhuma comunicação é possível além do servidor OpenVPN.

TAP - geralmente permite que os pacotes fluam livremente entre os pontos finais. Isso oferece a flexibilidade de comunicação com outras estações na rede remota, incluindo alguns métodos usados ​​pelo software Microsoft mais antigo. A TAP tem as exposições de segurança inerentes envolvidas na concessão de acesso externo "atrás do firewall". Isso permitirá que mais pacotes de tráfego fluam pelo túnel da VPN. Isso também abre a possibilidade de resolver conflitos entre os pontos de extremidade.

Não sãodiferenças na latência devido à camada de pilha, mas na maioria dos cenários do usuário final, a velocidade de conexão dos pontos de extremidade é provavelmente um contribuidor mais significativo para a latência do que a camada de pilha específica da transmissão. Se houver latência, pode ser uma boa ideia considerar outras alternativas. Os multiprocessadores atuais em nível de GHz normalmente superam o gargalo da transmissão via internet.

"Melhor" e "Pior" não são definíveis sem um contexto.
(Esta é a resposta favorita do consultor: "Bem, isso depende ...")
Uma Ferrari é "melhor" que um caminhão de lixo? Se você está tentando ir rápido, pode ser; mas se você estiver tentando transportar cargas pesadas, provavelmente não.

Restrições como "necessidade de acesso" e "requisitos de segurança" devem ser definidas, bem como definir restrições como taxa de transferência de rede e limitações de equipamento, antes que se possa decidir se TUN ou TAP é mais adequado às suas necessidades.

oldbaritone
fonte
2

A instalação da TAP não requer quase nenhum trabalho adicional da pessoa que a está configurando.

Obviamente, se você sabe como configurar o TUN, mas não entende o que está fazendo e simplesmente segue um tutorial, você estará lutando para configurar o TAP, mas não porque é mais difícil, mas porque você não sabe o que está fazendo. fazendo. O que facilmente pode levar a conflitos de rede em um ambiente TAP e, em seguida, parece que é mais complicado.

O fato é que, se você não precisa de um tutorial porque sabe o que está fazendo, a configuração da torneira leva tanto tempo quanto a configuração do tun.

Com o toque, há muitas soluções sobre sub-redes. Descobri que a maneira mais fácil é usar uma sub-rede de classe B. site1 (Rede1) usando 172.22.1.0/16 site2 (rede2) usando 172.22.2.0/16 site3 usando 172.22.3.0/16 etc.

você configura o site1 com o servidor oVPN e fornece aos clientes o intervalo de ip 172.22.254.2 - 172.22.254.255/16 para que você possa ter mais de 200 clientes ovpn (sub-redes), cada sub-rede pode ter mais de 200 clientes em si. Faz um total de 40.000 clientes com os quais você pode lidar (duvido que a oVPN possa lidar com isso, mas como você vê, a configuração de sub-rede adequada fornecerá mais do que o suficiente, conforme você provavelmente precisará)

você usa uma torneira e todos os clientes estão juntos como em uma enorme rede corporativa.

SE, no entanto, cada site tem seu próprio DHCP, e deveria ter, você precisa garantir o uso de ebtables ou iptables ou dnsmasq para bloquear a distribuição dhcp e tornar-se selvagem. ebtables, no entanto, diminuirá o desempenho. usando dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44, ignorar, por exemplo, será uma tarefa enorme para configurar em todos os servidores dhcp. no entanto, no hardware moderno, o impacto das ebtables não é tão grande. apenas 1 ou 2%

a sobrecarga da torneira, aproximadamente 32 para o tun, também não é um problema (pode estar em redes não criptografadas), mas em redes criptografadas geralmente é o AES que causará a desaceleração.

No meu wrt3200acm, por exemplo, não criptografado, recebo 360Mbps. Usando criptografia, ele desce para 54-100Mbps, dependendo do tipo de criptografia que eu escolher), mas o openvpn não faz criptografia em 1500 e uma segunda criptografia na sobrecarga de 32. Em vez disso, ele faz uma criptografia única em 1500 + 32overhead.

Portanto, o impacto aqui é mínimo.

No hardware antigo, você pode notar mais o impacto, mas no hardware moderno é realmente o mínimo.

A criptografia entre duas máquinas virtuais com suporte a AES me leva à ovpn com TAP de 120 a 150 Mbps.

Alguns relatam roteadores dedicados COM suporte à criptografia de hardware AES, chegando a 400 Mbps! 3 vezes mais rápido que um i5-3570k pode fazer (o que no meu sistema de teste não podia atingir 150Mbps a 100% da utilização de um núcleo). 25% do núcleo que o openvpn estava usando foi utilizado. Portanto, o E3 provavelmente poderia aumentar a conexão em 3 a 4 vezes.

então você teria algo entre 360Mbps e 600Mbps com uma conexão entre a E3-1231 v3 e a cpu tap AES265, auth SHA256 e ta.key, certificados tls-cipher Eu também usei o mais alto TLS-DHE-RSA-WITH-AES- 256-SHA256

Para salientar isso, com tap: wrt3200acm chega a 70-80mbps com criptografia. O i5-3570k chega a 120-150 com criptografia. O E3-1231 v3 obtém pelo menos 360 Mbps com criptografia (isso é interpolado das minhas descobertas nos casos 1 e 2 porque eu não tinha 2 E3-1231 v3 para testar.)

Estas são as minhas descobertas baseadas em janelas para janelas, copiando entre 2 clientes em 2 sub-redes diferentes conectadas pelo openvpn TAP

Vincent
fonte
-1

Se então, por quê, quanto você tem? Eu utilizaria o TAP, explicitamente, porque as camadas dos pacotes prosseguem com muito menos latência e perda de transmissão, o que é diminuído com esse método. No entanto, apenas na camada 3 isso afeta algum efeito aparente na operação da VPN, principalmente no aspecto de encapsulamento e quais IPs são permitidos através de endereços atribuíveis. O uso do UDP possivelmente introduz outra situação em que você precisaria decidir qual o melhor caminho a seguir. Cada rede é diferente e requer um conjunto exclusivo de parâmetros. Espero que isto ajude.

Regnald Thorington
fonte
1
Bastante confuso. Por favor, considere esclarecê-lo, explicar as diferenças importantes e eliminá-las.
vonbrand