$qemu_path \-nographic \
-drive file=./rootfs.ext4,format=raw \
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no \
-s -gdb tcp::7852
在這個qemu的配置中,-net nic,vlan=0 是客戶機中的前端,-net tap,vlan=0,ifname=tap0,script=no,downscript=no是位於host機中的後端。
這是我qemu的配置,試著理解下這個配置中網路部分的原理,qemu是qemu中使用的一種虛擬的網路裝置,當虛機中發生了網路行為的時候,網路資料會傳送到使用者態,然後使用者態寫入到tap裝置中去,然後tap裝置作為乙個二層裝置。這麼說吧,普通的二層裝置一層連實際的網路,一層連網路層;現在的tap裝置,一層連使用者態,一層連網路層;都是負責發包的。
同理推測下 tun 裝置是幹嘛的?剛才說tap是乙個二層的裝置,然後會把資料傳遞給網路層,關鍵點就是這個網路層了,
【網路層會幹嗎?傳送資料的時候很簡單,填充好自己的ip位址,然後根據路由的資訊,填上目的位址,發出去;接收資料呢?接收資料會根據自己的,ip資料報可能分段,在ip層可能會發生乙個合併,合併好之後,傳遞給tcp層?tap裝置會直接給】
介紹 tap/tun,使用tap裝置的應用程式相當於另外一台計算機【這不就是qemu的網路虛擬化麼......】
tun裝置:
所以這樣就基本就串起來了,啟動了qumu之後,其實我們在客戶機中看到的裝置是乙個三層裝置,tun裝置,當在客戶機中往這個三層裝置寫資料時,qemu使用者態可以直接感知到這些資料了,qemu得到這些資料之後,就把資料寫入到tap0,tap0作為乙個虛擬的二層裝置,然後將資料併入到核心中真正的網路協議棧中去。qemu的這部分真是絕了!那麼qemu相關配置中的vlan又是啥咧。
Linux 虛擬機器使用tap裝置
但是bochs使用tap模式,卻一直提示tap0 is not running,比較發現正常介面會有running狀態,但是tap介面只有up狀態,沒有running,那就沒辦法了,我只知道如何讓乙個介面up,不知道怎麼讓他running。所以就放棄了,然後使用tuntap模式,ethdev指定為 ...
Linux虛擬網路基礎 tap(虛擬以太裝置)
虛擬網絡卡tun tap驅動是乙個開源專案,支援很多的類unix平台,openvpn和vtun都是基於它實現隧道包封裝。本文將介紹tun tap驅動的使用並分析虛擬網絡卡tun tap驅動程式在linux環境下的設計思路。tun tap驅動程式實現了虛擬網絡卡的功能,tun表示虛擬的是點對點裝置,t...
homebrew的tap功能詳解
homebrew是使用ruby開發的mac的軟體包管理器.這裡就說明一下有關taps third party repositories 的知識 brew tap可以為brew的軟體的 跟蹤,更新,安裝新增更多的的tap formulae 如果你在核心倉庫沒有找到你需要的軟體,那麼你就需要安裝第三方的...