DPDK(二):准備知識7---linux虛擬網絡設備


一、tunl/tap
tun/tap設備的用處是將協議棧中的部分數據包轉發給用戶空間的應用程序,給用戶空間的程序一個處理數據包的機會。於是比較常用的數據壓縮,加密等功能就可以在應用程序B里面做進去,tun/tap設備最常用的場景是VPN,包括tunnel以及應用層的IPSec等
tun和tap的區別:
用戶層程序通過tun設備只能讀寫IP數據包,而通過tap設備能讀寫鏈路層數據包。

二、veth
eth設備的特點
veth和其它的網絡設備都一樣,一端連接的是內核協議棧。
veth設備是成對出現的,另一端兩個設備彼此相連
一個設備收到協議棧的數據發送請求后,會將數據發送到另一個設備上去。
下面這張關系圖很清楚的說明了veth設備的特點:

三、bridge
原文:https://segmentfault.com/a/1190000009491002?utm_source=tag-newest
bridge是一個虛擬網絡設備,所以具有網絡設備的特征,可以配置IP、MAC地址等;其次,bridge是一個虛擬交換機,和物理交換機有類似的功能。
創建一個bridge
dev@debian:~$ sudo ip link add name br0 type bridge
dev@debian:~$ sudo ip link set br0 up
1、作用:
同步bridge,我們可以做到:
(1)連接同宿主機內所有容器的虛擬網絡
(2)打通容器內網與外網,通過bridge將數據轉發到真實的往里網卡eth0中。
虛擬機場景:

 

docker應用場景:容器中配置網關為.9.1,發出去的數據包先到達br0,然后交給host機器的協議棧,由於目的IP是外網IP,且host機器開啟了IP forward功能,於是數據包會通過eth0發送出去,由於.9.1是內網IP,所以一般發出去之前會先做NAT轉換(NAT轉換和IP forward功能都需要自己配置)。由於要經過host機器的協議棧,並且還要做NAT轉換,所以性能沒有上面虛擬機那種方案好,優點是容器處於內網中,安全性相對要高點。(由於數據包統一由IP層從eth0轉發出去,所以不存在mac地址的問題,在無線網絡環境下也工作良好)

總結:幾種linux虛擬網絡設備的對比圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM