Marcio Cunha

TUN vs TAP: Como VPNs e Máquinas Virtuais Criam Interfaces de Rede

Descubra a diferença prática entre as interfaces de rede virtual TUN e TAP. Entenda como ferramentas como OpenVPN e QEMU usam camadas de rede para conectar computadores e máquinas virtuais.

Marcio Cunha12 min
Também disponível em:EnglishEspañol
Resumo
  • A interface TUN opera na camada de rede IP, processando pacotes completos sem se importar com endereços MAC físicos.
  • A interface TAP opera na camada de enlace Ethernet, manipulando quadros completos de rede e permitindo o tráfego de protocolos legados.
  • Sistemas operacionais tratam placas virtuais TUN e TAP exatamente como hardware real, direcionando pacotes para o espaço do usuário.
  • Conexões VPN seguras dependem primariamente do driver TUN para encapsular pacotes IP dentro de túneis criptografados.
  • Criação de redes locais virtuais para máquinas virtuais exige o uso do driver TAP para emular uma comutação de rede em nível de enlace.

O que são interfaces de rede virtuais no sistema operacional

Quando pensamos em redes de computadores, nossa mente costuma ir direto para cabos de rede plugados atrás da CPU, antenas Wi-Fi brilhantes ou roteadores piscando na sala. No entanto, grande parte do tráfego de dados atual passa por cabos e placas que não existem fisicamente. O sistema operacional moderno possui recursos em seu núcleo para simular hardware de rede por software. Essas placas de rede virtuais recebem pacotes de dados exatamente como um componente físico faria, mas entregam tudo diretamente para um programa rodando no computador, em vez de jogarem os sinais na fiação elétrica.

Essas portas de entrada e saída criadas por software são fundamentais para tecnologias que usamos todos os dias, como as redes virtuais privadas (as populares VPNs que garantem segurança ao acessar redes corporativas) e as máquinas virtuais (sistemas operacionais inteiros rodando dentro de janelas no seu computador). Para que essas ferramentas consigam interceptar, modificar e redirecionar o tráfego de internet sem precisar de adaptadores USB extras, o kernel do sistema operacional (o coração que gerencia o hardware) oferece dois tipos principais de drivers de tunelamento: o TUN e o TAP. Entender a diferença entre eles é o segredo para compreender como a internet moderna funciona por baixo do capô.

Entendendo a interface TUN: pacotes de rede na camada IP

Para entender o TUN, precisamos lembrar que os dados na internet viajam em camadas, como se fossem cartas dentro de vários envelopes. O TUN (que vem de "tunnel" ou túnel) opera na chamada Camada 3 do modelo de rede, conhecida como camada de rede ou camada IP. Na prática, isso significa que a interface TUN lida apenas com pacotes que já possuem um endereço IP de origem e de destino definidos. Ela não sabe o que é um endereço MAC (o identificador físico de uma placa de rede) e não entende de cabos Ethernet. Para o TUN, o mundo é composto exclusivamente de pacotes IP puros e organizados.

Quando um programa cria uma interface TUN, o sistema operacional passa a enxergá-la como se fosse uma placa de rede comum, com seu próprio endereço IP virtual. Todo pacote de dados que o sistema decide enviar para essa placa não vai para a placa física real; em vez disso, ele é capturado pelo programa que criou o TUN. Esse programa geralmente criptografa o pacote e o envia pela internet real para outro computador. Quando o pacote chega ao destino, outro programa o desempacota e o injeta em uma interface TUN local. É exatamente assim que funcionam VPNs baseadas em roteamento, como o WireGuard e o OpenVPN em seu modo padrão.

Entendendo a interface TAP: emulação completa de Ethernet

Se o TUN é minimalista e foca apenas em pacotes IP, o TAP faz o caminho oposto e busca o máximo de fidelidade física. O nome TAP vem de "network tap", um ponto de escuta em cabos de rede. No contexto de sistemas operacionais, o driver TAP opera na Camada 2 do modelo de rede, também chamada de camada de enlace ou camada Ethernet. Na prática, isso significa que o TAP lida com quadros Ethernet completos, o que inclui cabeçalhos MAC, endereços de broadcast (mensagens enviadas para toda a rede local) e suporte a protocolos antigos que nem sequer usam IP.

Ao criar uma interface TAP, o software cria essencialmente uma placa de rede virtual capaz de se conectar a um switch virtual. Isso permite que múltiplos computadores ou máquinas virtuais acreditem estar plugados no mesmo cabo de rede físico, mesmo estando em continentes diferentes. É essa capacidade de simular uma rede local inteira (LAN) que torna o TAP indispensável para a virtualização de servidores e estações de trabalho, onde sistemas convivem em bridge de rede e trocam pacotes em nível de hardware simulado.

Onde entram as VPNs e as máquinas virtuais nessa história

A escolha entre usar TUN ou TAP depende diretamente do que você está tentando alcançar. Se o seu único objetivo é criar um túnel criptografado para navegar com segurança em uma rede corporativa ou mascarar sua localização geográfica, o TUN é a escolha perfeita. Como ele trabalha apenas com pacotes IP, o volume de dados extras trafegados é mínimo e o desempenho é superior. Ferramentas modernas de VPN corporativa priorizam o TUN justamente pela eficiência e por dispensar a simulação desnecessária de endereços MAC e protocolos de enlace que não agregam valor a conexões ponto a ponto focadas em IP.

Por outro lado, se você está configurando um ambiente de virtualização — como rodar uma máquina virtual que precisa obter um endereço IP via DHCP do roteador da sua casa e aparecer na lista de dispositivos conectados da sua rede física —, o TAP é obrigatório. Com o TAP, a máquina virtual pode participar de conversas em nível de enlace, respondendo a requisições ARP (o protocolo que traduz IPs em endereços MAC) e comportando-se exatamente como um computador físico autônomo conectado ao seu switch doméstico ou corporativo.

Comparativo prático entre as arquiteturas TUN e TAP

Para visualizar de forma clara as divergências operacionais e estruturais entre essas duas tecnologias fundamentais, podemos organizar suas características centrais em um comparativo direto. Essa análise ajuda a direcionar a escolha correta ao projetar soluções de infraestrutura, túneis de comunicação segura ou ambientes de virtualização avançados.

CritérioInterface TUNInterface TAP
Camada OSICamada 3 (Rede / IP)Camada 2 (Enlace / Ethernet)
Unidade de TráfegoPacotes IP purosQuadros Ethernet com MAC
Uso Típico PrincipalVPNs de roteamento (WireGuard, OpenVPN)Máquinas virtuais (QEMU, KVM) e Bridges
Suporte a BroadcastNão suporta nativamenteSuporta tráfego de broadcast e multicast
Sobrecarga de RedeBaixa, ideal para WANsMais alta, devido aos cabeçalhos MAC

Implementando um túnel de rede simples via código

Para demonstrar como essas interfaces interagem com o sistema operacional, podemos observar um trecho conceitual em linguagem Python que interage com o driver TUN no Linux. O processo envolve abrir o arquivo especial do sistema correspondente ao driver, configurar a interface e ler os pacotes brutos que o sistema operacional envia para a rede virtual.

import os
import fcntl
import struct

# Constante do kernel para criar a interface TUN
TUNSETIFF = 0x400454ca
IFF_TUN = 0x0001
IFF_NO_PI = 0x1000

# Abre o descritor de arquivo do sistema para tunelamento
tun = os.open("/dev/net/tun", os.O_RDWR)

# Configura o nome da interface como tun0
ifr = struct.pack("16sH", b"tun0", IFF_TUN | IFF_NO_PI)
fcntl.ioctl(tun, TUNSETIFF, ifr)

print("Interface TUN 'tun0' criada com sucesso. Aguardando pacotes...")

while True:
    # Lê pacotes IP brutos enviados pelo sistema operacional
    packet = os.read(tun, 2048)
    print(f"Pacote IP interceptado com {len(packet)} bytes")

Esse código ilustra a simplicidade conceitual por trás do tunelamento: o programa abre um arquivo especial (/dev/net/tun) e passa a ler e escrever bytes diretamente nele. Cada byte lido é um pacote de rede real que o sistema operacional tentou enviar para a internet, mas que agora está sob o controle total do desenvolvedor ou da aplicação de VPN.

Considerações finais sobre o uso de redes virtuais

As interfaces TUN e TAP representam pilares invisíveis, porém indispensáveis, da infraestrutura de redes e virtualização moderna. Sem elas, o conceito de nuvem computacional pública, o trabalho remoto seguro através de VPNs corporativas e a execução isolada de múltiplos sistemas operacionais na mesma máquina física seriam inviáveis. Compreender a diferença entre a operação na camada IP do TUN e a emulação Ethernet do TAP capacita engenheiros, administradores de sistemas e entusiastas a arquitetarem soluções de rede mais eficientes, seguras e bem dimensionadas para cada cenário operacional.

Ao escolher a ferramenta correta para o problema certo — TUN para túneis IP leves e rápidos, ou TAP para pontes de rede completas em ambientes virtualizados —, evitamos gargalos de desempenho e simplificamos a manutenção de arquiteturas complexas. O domínio desses conceitos fundamentais garante que a tecnologia de virtualização trabalhe a nosso favor, mantendo a conectividade rápida, flexível e blindada contra falhas estruturais.