TUN i TAP to sterowniki wirtualnych kart sieciowych.

Pakiety przekazane przez system operacyjny do sterownika TUN/TAP nie są wysyłane do fizycznego urządzenia (takiego jak karta sieciowa PCI), lecz przetwarzane przez oprogramowanie. Oprogramowanie może również za pośrednictwem TUN/TAP przekazywać pakiety, które system operacyjny odbierze i potraktuje tak, jakby pochodziły one z sieci zewnętrznej. Jest to wykorzystywane do komunikacji z maszynami wirtualnymi.

TAP operuje na pakietach drugiej warstwy ISO OSI RM (warstwa łącza danych), np. na ramkach Ethernetowych.

TUN operuje na pakietach trzeciej warstwy ISO OSI RM (warstwa sieciowa), np. na pakietach IP.

Przykładowe dodanie interfejsu tap w Linuksie:

root@host:~# tunctl -t tap1
Set 'tap1' persistent and owned by uid 0
root@host:~# ifconfig tap1
tap1      Link encap:Ethernet  HWaddr 00:ff:00:ff:00:ff
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)