天天看點

一文總結 Linux 虛拟網絡裝置 eth, tap/tun, veth-pair

本文首發于我的公衆号 Linux雲計算網絡(id: cloud_dev),專注于幹貨分享,号内有 10T 書籍和視訊資源,背景回複「1024」即可領取,歡迎大家關注,二維碼文末可以掃。

Linux 虛拟網絡的背後都是由一個個的虛拟裝置構成的。虛拟化技術沒出現之前,計算機網絡系統都隻包含實體的網卡裝置,通過網卡擴充卡,線纜媒體,連接配接外部網絡,構成龐大的 Internet。

一文總結 Linux 虛拟網絡裝置 eth, tap/tun, veth-pair

然而,随着虛拟化技術的出現,網絡也随之被虛拟化,相較于單一的實體網絡,虛拟網絡變得非常複雜,在一個主機系統裡面,需要實作諸如交換、路由、隧道、隔離、聚合等多種網絡功能。

而實作這些功能的基本元素就是虛拟的網絡裝置,比如 tap、tun 和 veth-pair。

tap/tun

tap/tun 提供了一台主機内使用者空間的資料傳輸機制。它虛拟了一套網絡接口,這套接口和實體的接口無任何差別,可以配置 IP,可以路由流量,不同的是,它的流量隻在主機内流通。

tap/tun 有些許的不同,tun 隻操作三層的 IP 包,而 tap 操作二層的以太網幀。

一文總結 Linux 虛拟網絡裝置 eth, tap/tun, veth-pair

veth-pair

veth-pair 是成對出現的一種虛拟網絡裝置,一端連接配接着協定棧,一端連接配接着彼此,資料從一端出,從另一端進。

它的這個特性常常用來連接配接不同的虛拟網絡元件,建構大規模的虛拟網絡拓撲,比如連接配接 Linux Bridge、OVS、LXC 容器等。

一個很常見的案例就是它被用于 OpenStack Neutron,建構非常複雜的網絡形态。

一文總結 Linux 虛拟網絡裝置 eth, tap/tun, veth-pair

總結

最後,總結一下,我們提到幾種網絡裝置,eth0、tap、tun、veth-pair,這些都構成了如今雲網絡必不可少的元素。

一文總結 Linux 虛拟網絡裝置 eth, tap/tun, veth-pair
我的公衆号 「Linux雲計算網絡」(id: cloud_dev) ,号内有 10T 書籍和視訊資源,背景回複 「1024」 即可領取,分享的内容包括但不限于 Linux、網絡、雲計算虛拟化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++程式設計技術等内容,歡迎大家關注。

stay hungry

stay foolish

----jobs

希望多多燒香!

繼續閱讀