In computer networking, TUN and TAP are virtual network kernel devices. Being network devices supported entirely in software, they differ from ordinary network devices which are backed up by hardware network adapters.
Video TUN/TAP
Design
TUN (namely network TUNnel) simulates a network layer device and it operates with layer 3 packets like IP packets. TAP (namely network tap) simulates a link layer device and it operates with layer 2 packets like Ethernet frames. TUN is used with routing, while TAP is used for creating a 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.
Maps TUN/TAP
Applications
- Virtual private networks
- OpenVPN, Ethernet/IP over TCP/UDP; encrypted, compressed
- 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 utilises a peer-to-peer architecture for network membership and routing
- Tinc, Ethernet/IPv4/IPv6 over TCP/UDP; encrypted, compressed
- VTun [1], Ethernet/IP/serial/Unix pipe over TCP; encrypted, compressed, traffic-shaping
- OpenSSH
- coLinux, Ethernet/IP over TCP/UDP
- Hamachi
- OpenConnect
- NeoRouter
- 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
- 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)
- OS X (native support only for TUN (utun))
- NetBSD
- OpenBSD
- Android (tap support available using "openvpn-2.1.1-static-busyboxinxbin" binary from "OpenVPN Installer" Google Play App)
- Solaris
- Windows 2000/XP/Vista/7/8
- QNX
References
External links
- MacVTap, a device driver aiming at simplifying virtualized bridged networking
- Linux Networking: MAC VLANs and Virtual Ethernets, which MacVTap is based on
Source of the article : Wikipedia