TUN/TAP

TUN/TAPは仮想ネットワークデバイス及びそのデバイスドライバの実装およびデバイス名で、主にUnix系のシステムで利用できる。実ハードウェアであるネットワークカードと対応しているデバイスドライバと同様にネットワーク通信ができるが、データはハードウェアではなく、ネットワーク通信を仮想化したソフトウェアのプロセスに送られ、そこで処理される（例えば、VPNの相手方への通信として、改めて実ハードから送信される）。
概要.
TAP(Terminal Access Point) は、イーサネットデバイスをシミュレートし、データリンク層を操作できる。TUN(TUNnel) はネットワーク層をシミュレートし、IPパケットなどを操作できる。用途としては、たとえばTAPはブリッジに使われ、TUNはルーティングに使われる。
OSがTUN/TAPデバイスに送ったパケットは、そのデバイスに接続しているユーザープログラムに送信される。また、ユーザープログラムからTUN/TAPデバイスに送られたパケットは、TUN/TAPデバイスはそれらのパケットをOSのプロトコルスタックに渡すので、OS側からはあたかも外部からパケットを受け取ったように見える。
利用の具体例.
TUN/TAPを使っている例を以下に列挙する。
実装しているOS.
TUN/TAPドライバは以下のオペレーティングシステムで利用できる。