Aller au contenu principal

TUN/TAP


TUN/TAP


In computer networking, TUN and TAP are kernel virtual network devices. Being network devices supported entirely in software, they differ from ordinary network devices which are backed by physical network adapters.

The Universal TUN/TAP Driver originated in 2000 as a merger of the corresponding drivers in Solaris, Linux and BSD. The driver continues to be maintained as part of the Linux and FreeBSD kernels.

Design

Though both are for tunneling purposes, TUN and TAP can't be used together because they transmit and receive packets at different layers of the network stack. TUN, namely network TUNnel, simulates a network layer device and operates in layer 3 carrying IP packets. TAP, namely network TAP, simulates a link layer device and operates in layer 2 carrying Ethernet frames. TUN is used with routing. TAP can be used to create a user space network bridge.

Packets sent by an operating system via a TUN/TAP device are delivered to a user space program which attaches itself to the device. A user space program may also pass packets into a TUN/TAP device. In this case the TUN/TAP device delivers (or "injects") these packets to the operating-system network stack thus emulating their reception from an external source.

Applications

Virtual private networks
  • OpenVPN, Ethernet/IP over TCP/UDP; encrypted, compressed
  • ZeroTier, Ethernet/IP over TCP/UDP; encrypted, compressed, cryptographic addressing scheme
  • FreeLAN, open-source, free, multi-platform IPv4, IPv6 and peer-to-peer VPN software over UDP/IP.
  • n2n, an open source Layer 2 over Layer 3 VPN application which uses a peer-to-peer architecture for network membership and routing
  • Tinc, Ethernet/IPv4/IPv6 over TCP/UDP; encrypted, compressed
  • VTun, Ethernet/IP/serial/Unix pipe over TCP; encrypted, compressed, traffic-shaping
  • OpenSSH
  • coLinux, Ethernet/IP over TCP/UDP
  • Hamachi
  • OpenConnect
  • WireGuard
  • Tailscale
Virtual-machine networking
  • Bochs
  • coLinux
  • Hercules (S/390 emulator)
  • Open vSwitch
  • QEMU/KVM
  • User-mode Linux
  • VirtualBox
Connecting real machines with network simulation
  • ns-3
  • GNU Radio
NAT
  • TAYGA, a stateless NAT64 implementation for Linux

Platforms

Platforms with TUN/TAP drivers include:

  • FreeBSD
  • Linux, starting around version 2.1.60 of the Linux kernel mainline
  • iOS (tun driver only)
  • macOS (native support only for TUN (utun))
  • NetBSD
  • OpenBSD
  • Android
  • Solaris
  • Windows 2000/XP/Vista/7/8/8.1/10
  • QNX

See also

  • Point-to-point (telecommunications)
  • MacVTap

References

Giuseppe Zanotti Luxury Sneakers

External links

  • Tun/Tap interface tutorial
  • Linux Networking: MAC VLANs and Virtual Ethernets



Text submitted to CC-BY-SA license. Source: TUN/TAP by Wikipedia (Historical)