Ein Tunnel in einem Rechnernetz ist ein virtueller Übertragungsweg, der durch Kapselung eines Netzwerkprotokolls in ein anderes erfolgt. Bei einem Tunnel folgt die Kapselung allerdings nicht der Schichtenarchitektur des Protokollstapel, sondern es werden zwei Protokolle derselben Schicht miteinander verkapselt[1][2], oder ein Protokoll einer niedrigeren Schicht in einem Datenpaket einer höheren Schicht transportiert.
Vor und hinter dem Tunnel erfolgt die Kommunikation über das ursprüngliche Netzwerkprotokoll, während für die Übertragung zwischen den beiden Tunnelendpunkten ein anderes Protokoll verwendet wird, das als Tunnelprotokoll bezeichnet wird. Die Übersetzung und Übertragung eines Datenpakets in einem Tunnel wird als Tunneln oder aus dem Englischen entlehnt als Tunneling[3] bezeichnet. Für den Aufbau des Tunnels, die Einbettung und das Weiterreichen der Datenpakete wird eine Software auf beiden Seiten des Tunnels benötigt.
Tunneling wird zum Aufbau eines Virtual Private Network über öffentliche Datennetze wie das Internet verwendet.[4] Auf diese Weise lassen sich unsichere Netzwerkprotokolle eingebettet in einem abhör- und manipulationssicheren Verschlüsselungsprotokoll transportieren. Ein anderer Zweck ist der Aufbau eines Overlay-Netzes, um mithilfe eines Tunnels Netzwerkprotokolle zu transportieren, die von der Netzinfrastruktur nicht unterstützt werden. Ferner eignen sich Tunnel dafür, das Regelwerk einer Firewall zu umgehen.