QEMU網絡卡配置

2021-08-14 12:59:11 字數 3124 閱讀 4730

一、qemu網絡卡模式介紹

user mode network(slirp) :user網路

使用使用者模式的客戶機可以連通宿主機及外部網路。使用者模式網路完全由qemu模擬實現整個tcp/ip協議棧,並且使用這個協議棧提供乙個虛擬的nat網路。它不依賴於宿主機上的網路工具元件,如bridge-utils、tunctl、dnsmasq、iptables等,因此也不需要root使用者許可權。這種方式實現虛擬機器上網很簡單,類似vmware裡的nat,qemu啟動時加入-user-net引數,虛擬機器裡使用dhcp方式,即可與網際網路通訊,當然,使用者模式網路的缺陷也是明顯的:因其在qemu內部實現所有網路協議棧,相對效能較差。

tap/tun network : tap網路

tap支援各種虛擬網路拓撲,具有很好的效能。但是對於不同的作業系統可能需要不同的拓撲配置,同時需要root許可權,一般形式如下

-netdev tap,id=mynet0

tap引數,表明使用tap裝置。tap是虛擬網路裝置,它**了乙個資料鏈路層裝置(iso七層網路結構的第二層),它像乙太網的資料幀一樣處理第二層資料報。而tun與tap類似,也是一種虛擬網路裝置,它是對網路層裝置的**。tap被用於建立乙個網路橋,而tun與路由相關。橋接就是把一台機器上的若干個網路介面「連線」起來。其結果是,其中乙個網口收到的報文會被複製給其他網口並傳送出去。以使得網口之間的報文能夠互相**。區域網內可以通過ssh登陸虛擬機器

這種方式要比user mode複雜一些,但是設定好後 虛擬機器<-->網際網路虛擬機器<-->主機 通訊都很容易,這種方式設定上類似vmware的host-only,qemu使用tun/tap裝置在主機上增加一塊虛擬網路裝置(tun0),然後就可以象真實網絡卡一樣配置它。

二.網絡卡配置方式

1.老版net引數網路配置

-net nic[,vlan=n][,macaddr=addr]
建立乙個新的網絡卡並將網絡卡放人到編號為n的vlan中(在預設的情況下n=0)。作為可選項的專案,mac位址可以進行改變。如果沒有指定-net選項,則會建立乙個單一的nic。model是網絡卡的型別,可以model=?檢視有哪些型別。vlan=n,表示,預設為0。

-net user[,vlan=n]
使用者模式,qemu使用slirp實現了一整套tcp/ip協議棧,這樣就不需要管理員許可權來執行。如果沒有指定-net選項,這將是預設的情況。

-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
橋接模式,需要指定啟動script和關閉downscript,將tap網路介面name與vlan n進行連線,並使用網路配置指令碼file進行配置預設的網路配置指令碼為/etc/qemu-ifup。如果沒有指定name,os 將會自動指定乙個.fd=h可以用來指定乙個已經開啟的tap主機介面的控制代碼(tap裝置),name是在monitor模式使用info network看到的名字,ifname是tap裝置在主機中的名字。例如: 

qemu linux.img -netnic,vlan=0 -net tap,vlan=0,ifname=tap0  -netnic,vlan=1 -net tap,vlan=1,ifname=tap1 -netsocket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]

-netsocket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]

使用tcp socket將vlan n與遠端的另乙個qemu虛擬機器的vlan進行連線。如果指定了listen,qemu將在port埠監聽連入請求(host是可選的), connect可以用來使用listen選項與另乙個qemu例項進行連線.fd=h指定了乙個已經開啟的tcp socket.例如:

-net socket[,vlan=n][,fd=h][,mcast=maddr:port]
建立乙個vlan n,並使用udp多址通訊套介面與其他的qemu虛擬機器進行共享,尤其是對於每乙個使用多址通訊位址和埠的qemu使用同乙個匯流排。在這裡我們要注意以下幾點:

幾個qemu可以執行在不同的主機上但卻使用同乙個匯流排(在這裡假設為這些主機設定了正確的多址通訊)

mcast支援是與使用者模式linux相相容的.

使用fd=h指定乙個已經開啟的udp 多址通訊套介面. 

-net none
如果您沒有指定任何網路配置選項,那麼qemu將為客戶機建立乙個slirp使用者網路後端和適當的虛擬網路裝置(例如,大多數x86 pc客戶端使用e1000 pci網絡卡)。但是使用了這條命令表明沒有網路裝置需要進行配置(這條命令是抑制網路設定的)

-tftp prefix

-redir[tcp|udp]:host-port:[guest-host]:guest-port
當使用使用者模式網格棧,將連線到主機埠host-port的tcp或是udp連線重定向到客戶機埠guest-port上。如果沒有指定客戶機埠,它的值為10.0.2.15(由內建的dhcp伺服器指定預設位址)。

2.新版本使用-netdev與-device來配置網路與網路裝置

老版本中qemu使用的是-net來配置網路,-net nic來配置網絡卡裝置,但是從0.12版本提出了使用netdev引數來配置網路,當然老版本的語法仍然可以使用。比如

你可以使用-net nic,model=?來得到乙個有效的網絡卡裝置列表。

夏目簡單對比一下二者之間的語法區別,

新版本的方法:

-netdev tap,id=net0-device e1000,netdev=net0,mac=52:54:00:12:34:56
舊的方法:

-net tap,vlan=0 -net nic,vlan=0,model=e1000,macaddr=52:54:00:12:34:56

經過比較發現,mac位址的書寫發生了改變,同時不再出現同乙個vlan中的虛擬機器接收該區域網中所有流量的困惑情況,因為所有裝置都是通過-netdevid=id和-device netdev= parameters來指定1對1的

qemu 橋接配置方法

參考在 openstack 或在 ubuntu 中配置物理網路 網路用於 kvm 橋接 使用 bond vlan 作為物理網絡卡配置手段 物理機具有 eth0,eth1 兩個網絡卡 eth0,eth1 組成 bond0 使用了 bonding mode4 功能,支援了高可用 bond0.20 是物理...

單網絡卡ovs網絡卡配置

openstack 和kolla部署過程中經常需要配置ovs,單網絡卡的時候就需要增加乙個網橋配置 centos 單網絡卡 em1 em1原配置 cat etc sysconfig network scripts ifcfg em1 type ethernet bootproto static de...

linux 網絡卡配置

1.配置檔案 etc hosts 本地主機ip位址對映,可以有多個別名 etc services 埠號與標準服務之間的對應關係 etc sysconfig network 設定主機名,閘道器,網域名稱 hostanme zjw.com 主機名 需要重啟計算機才有效 gateway 192.168.1...