仮想ネットワークインタフェース(かそうネットワークインタフェース、: VIF)は、ネットワークインタフェースの抽象的な仮想化表現である。実際のネットワークインターフェイスコントローラー (NIC) に直接対応する場合と、そうでない場合がある。
OSレベルの仮想化 オペレーティングシステム (OS) のカーネルでは、メモリ上に仮想ネットワークインタフェースのテーブルを保持するのが一般的である。これにより、関連する物理インタフェースとは独立して、または直接的な物理インタフェースであるか、または例えばトンネルまたはブリッジインタフェースであるかに関係なく、システムがネットワークインタフェースの情報を格納し、動作させることが可能となる。また、単一の無定形の(容量やパフォーマンスが不明な)「インターネット」を想定するよりも、細かい方法でネットワーク接続に関するシステムのプロセスが相互作用することも可能となる。
W・リチャード・スティーヴンスは、著書「」の第2巻で、マルチキャストルーティングに関する話題の中でカーネルの仮想インタフェーステーブルについて触れている。例えば、マルチキャストルーターは、物理インタフェース上とトンネルによるインタフェース上とで異なる動作をすることができる(例えば、物理インタフェースのメンバーシップ情報を収集するだけでよい)。従って、仮想インタフェースは、物理インタフェースを直接表すかどうかなど、いくつかの情報をユーザーに明らかにする必要がある 。
いくつかのシステムでは、ユーザー空間アプリケーションが抽象的なネットワークインタフェース接続を参照することを可能にすることに加えて、指定された帯域幅制限とキューイングモデルによって抽象的なインタフェースに階層的に細分することにより、プロセスが所定の物理インタフェースの共有を(本来のOSの振る舞いを超えて)より良く調整することを可能にすることができる。これは、例えばそれが逸脱しないような階層の限定された枝を継承することによって、プロセスの制限を意味することができる。
ネットワーク抽象化のこの余分な層は、しばしば不必要であり、わずかな性能上の不利益をもたらす可能性がある。しかし、パフォーマンスのボトルネックを回避するために、実際には最適化のためにカーネルをバイパスするためにも、抽象化レイヤーを使用することも可能である。
アプリケーションレベルの仮想化 VIFという用語は、アプリケーションがネットワークインタフェースを仮想化または抽象化するときにも使用される。ほとんどのソフトウェアは、ネットワークインタフェースの詳細に関わる必要はなく、また、OSを通じて抽象化がすでに利用可能な場合もあるので、この使用法はまれである。
関連項目 ループバック ネットワーク仮想化
仮想LANカード
脚注
外部リンク Linux Network Interfaces