使用網橋模式(bridge networking mode)配置KVM-QUME虛擬機網絡

(1)linux要工作在網橋模式,所以必須安裝兩個RPM包。即:bridge-utils和tunctl。它們提供所需的brctl、tunctl命令行工具。能夠使用yum在線安裝:

[root@server3 ~]# yum install bridge-utils

(2)查看tun模塊是否載入,例如以下:

[root@server3 ~]# lsmod | grep tun
tun  16577 2 vhost_net

假設tun模塊沒有載入,則執行“modprobe tun”命令來載入就可以;假設已經將tun編譯到內核(可查看內核config文件里是否有“CONFIG_TUN=y” 選項),則不須要載入了;而假設內核全然沒有配置TUN模塊,則須要又一次編譯內核才行了。?

(3)檢查/dev/net/tun的權限,須要讓當前用戶擁有可讀可寫的權限。

[root@server3 ~]# ll /dev/net/tun
crw-rw-rw- . 1 root root 10, 200 4月 23 10:35 /dev/net/tun

(4)建立一個bridge。并將其綁定到一個能夠正常工作的網絡接口上,并讓bridge成為連接本機與外部網絡的接口。

創建一個bridge能夠直接在命令行中操作,也能夠通過寫配置文件來實現,這里是通過寫配置文件來實現的。在/etc/sysconfig/network-scripts文件夾下,創建一個ifcfg-br0 文件,其類型設為Bridge:

[root@Server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=bridge
BOOTRPOTO=none
IPADDR=192.168.1.66
NETMASK=255.255.255.0
ONBOOT=yes

然后將物理接口橋接到橋接器

改動ifcfg-eth0。僅僅需在最后加上“BRIDGE=br0”,將其橋接到br0

[root@Server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.30
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
HWADDR=00:15:17:9D:09:FE
BRIDGE=br0

重新啟動物理機網絡服務

[root@Server3 ~]# service network restart

查看當前橋接情況

[root@Server3 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0015179d0e90       no              eth0
virbr0          8000.525400ee6f70       yes             virbr0-nic

(5)開始配置虛擬機網絡參數

在qemu-kvm的命令行中,關于bridge模式的網絡參數例如以下:

-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]

該配置表示連接宿主機的TAP網絡接口到n號VLAN中。并使用file和dfile兩個腳本在啟動客戶機時配置網絡和在關閉客戶機時取消網絡配置。
tap參數。表明使用TAP設備。

TAP是虛擬網絡設備,它仿真了一個數據鏈路層設備(ISO七層網絡結構的第二層),它像以太網的數據幀一樣處理第二層數據報。

而TUN ? 與TAP類似,也是一種虛擬網絡設備,它是對網絡層設備的仿真。TAP被用于創建一個網絡橋,而TUN與路由相關。


vlan=n ?設置該設備VLAN編號,默認值為0。
name=name ?設置名稱。在QEMU monior中可能用到。一般由系統自己主動分配就可以。
fd=h ?連接到如今已經打開著的TAP接口的文件描寫敘述符,一般來說不要設置該選項。而是讓QEMU會自己主動創建一個TAP接口。

當使用了fd=h的選項后。ifname、script、downscript、helper、vnet_hdr等選項都不可使用了(不能與fd選項同一時候出如今命令行中)。


ifname=name ?設置在宿主機中加入的TAP虛擬設備的名稱(如tap1、tap5等等),不設置這個參數時。QEMU會依據系統中眼下的情況。產生一個TAP接口的名稱。

script=file ?設置宿主機在啟動客戶機時自己主動運行的網絡配置腳本。假設不指定,其默認值為“/etc/qemu-ifup”這個腳本,可指定自己的腳本路徑以代替默認值;假設不須要運行腳本,則設置為“script=no”。downscript=dfile ?設置宿主機在客戶機關閉時自己主動運行的網絡配置腳本。假設不設置,其默認值為“/etc/qemu-ifdown”;若客戶機關閉時宿主機不須要運行腳本,則設置為“downscript=no”。

helper=helper ?設置啟動客戶機時在宿主機中執行的輔助程序,包含去建立一個TAP虛擬設備,它的默認值為/usr/local/libexec/qemu-bridge-helper,一般不用自己定義,採用默認值就可以。


sndbuf=nbytes ?限制TAP設備的發送緩沖區大小為n字節,當須要流量進行流量控制時能夠設置該選項。其默認值為“sndbuf=0”,即不限制發送緩沖區的大小。


其余幾個選項都是與virtio相關的,這里暫不做過多的介紹。

準備qemu-ifup和qemu-ifdown腳本。
在客戶機啟動網絡前,會運行的腳本是“script”選項是由配置的(默覺得/etc/qemuif-up),一般在該腳本中去創建一個TAP設備并將其與bridge綁定起來。例如以下是qemu-ifup腳本的演示樣例,當中“$1”是qemu-kvm命令工具傳遞給腳本的參數。它是客戶機使用的TAP設備名稱(如tap0、tap1等,也或者是前面提及的ifname選項的值)。另外,當中的“tunctl”命令這一行是不須要的。由于qemu-bridge-helper程序已經會創建好TAP設備,這里列出來僅僅是為了可能在一些版本號較舊的qemu-kvm中沒有自己主動創建TAP設備。


#!/bin/bash
#This is a qemu-ifup script for bridging.
#You can use it when starting a KVM guest with bridge mode network.
#set your bridge name
switch=br0
if [ -n "$1" ]; then
#create a TAP interface; qemu will handle it automatically.
#tunctl -u $(whoami) -t $1
#start up the TAP interface
ip link set $1 up
sleep 1
#add TAP interface to the bridge
brctl addif ${switch} $1
exit 0
else
echo “Error: no interface specified”
exit 1
fi

注意:這個腳本要改為可運行文件,才干使用:

[root@Server3 ~]# chmod  +x /etc/qemu-ifup
因為qemu-kvm工具在客戶機關閉時會去解除TAP設備的bridge綁定,也會自己主動去刪除已不再使用的TAP設備,所以qemu-ifdown這個腳本沒必要的。最好設置為“downscript=no”。例如以下列出一個qemu-ifdown腳本的演示樣例,是為了說明清理bridge模式網絡的環境的步驟。在qemu-kvm沒有自己主動處理時能夠使用。

#!/bin/bash
#This is a qemu-ifdown script for bridging.
#You can use it when starting a KVM guest with bridge mode network.
#Don’t use this script in most cases; QEMU will handle it automatically.
#set your bridge name
switch=br0
if [ -n "$1" ]; then
# Delete the specified interfacename
tunctl -d $1
#release TAP interface from bridge
brctl delif ${switch} $1
#shutdown the TAP interface
ip link set $1 down
exit 0
else
echo “Error: no interface specified”
exit 1
fi

如今開始執行虛擬機,命令例如以下所看到的:

[root@Server3 ~]# /usr/local/qemu-post-june-04-2012/bin/qemu-system-x86_64 -smp 2 -m 1024 /images/test.img -net nic -net tap,ifname=tap1,script=/etc/qemuif-up,downscript=no -vnc :6 -machine accel=kvm
查看網橋情況:

[root@Server3 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0015179d09fe       yes             eth0tap1
virbr0          8000.52540092d0d1       yes             virbr0-nic

能夠看到br0下有兩個網卡,然后僅僅要把虛擬機的IP設置成和網橋在一個網段內,就能夠實現虛擬機與物理機之間的通信。


注意:在進行配置時,要關掉NetworkManager。否則操作會出錯:

[root@Server3 ~]# service NetworkManager stop





本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258960.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python數據處理常用函數_pandas數據分析常用函數總結大全:上篇

基礎知識在數據分析中就像是九陽神功,熟練的掌握,加以運用,就可以練就深厚的內力,成為絕頂高手自然不在話下! 為了更好地學習數據分析,我對于數據分析中pandas這一模塊里面常用的函數進行了總結。整篇總結&…

XML的應用

1.XML的定義: XML 于 1998 年 2 月 10 日成為 W3C 的推薦標準。xml一般指可擴展標記語言,可擴展標記語言是一種很像超文本標記語言的標記語言。它的設計宗旨是傳輸數據,而不是顯示數據。 2.通過XML我們可以自定義自己的標簽,如: &…

虛擬機VMware里 windows server 2003 擴充C盤方法

你會經常用windows server 2003 嗎?應該不會吧,有時一些東西必須裝在windows server 2003 上才能用,所以 用虛擬機把,好,裝在虛擬機上,8G的C盤夠你用嗎,一個稍微大點的軟件就可能就沒空間來存儲…

從運維角度淺談MySQL數據庫優化

一個成熟的數據庫架構并不是一開始設計就具備高可用、高伸縮等特性的,它是隨著用戶量的增加,基礎架構才逐漸完善。這篇博文主要談MySQL數據庫發展周期中所面臨的問題及優化方案,暫且拋開前端應用不說,大致分為以下五個階段&#x…

c語言c99標準_自學C語言之一

上次自學C語言還是在剛開學到國慶期間,聽學姐的建議買了本C語言的書,在軍訓期間的晚上翻翻看看。后來選課、開始正式上課、面試社團、開各種會等等,好像每天都有許多事要忙,但又沒忙出來什么結果,慢慢地好像就把C語言放…

boost解析info文件

先給出info文件: parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 機制對排版的影響

Font Rending 的 Hint 機制對排版的影響【轉】 在設計一種 Font 時,設計者使用的是一個抽象的單位,叫做 EM,來源于大寫 M 的寬度(通常英文字體中大寫 M 的寬度最大)。EM 即不同于在屏幕顯示時用的像素(Pixe…

《SQL初學者指南(第2版)》——2.4 指定列

本節書摘來自異步社區出版社《SQL初學者指南(第2版)》一書中的第2章,第2.4節,作者:【美】Larry Rockoff,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.4 指定列 到目前為止,我們只…

python從文件中提取特定文本_使用Python從HTML文件中提取文本

我發現最好的一段代碼用于提取文本,而不需要javascript或不需要的東西:import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文轉載自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中,mutable是為了突破const的限制而設置的。被mutable修飾的變量,將永遠處于可變的狀態,即使在一個const函數中,甚至結構體變量或者類對象為const…

文本框點擊后文字消失總結

1.文本框顯示默認文字&#xff1a; <textarea>白鴿男孩</textarea> <textarea>白鴿男孩</textarea>    2.鼠標點擊文本框&#xff0c;默認文字消失&#xff1a; <textarea οnfοcus”if(value’白鴿男孩’) {value’ ‘}”>白鴿男孩</text…

[裴禮文數學分析中的典型問題與方法習題參考解答]4.5.8

需要全部的解答, 請 http://www.cnblogs.com/zhangzujin/p/3527416.html 設 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 時, $f(x)$ 單調遞增趨于 $\infty$, 則 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收斂. 證明: 由 $$\be…

《PowerShell V3——SQL Server 2012數據庫自動化運維權威指南》——2.13 創建視圖...

本節書摘來自異步社區出版社《PowerShell V3—SQL Server 2012數據庫自動化運維權威指南》一書中的第2章&#xff0c;第2.13節&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.13 創建視圖 本方案展…

python刷抖音_用Python生成抖音字符視頻!

抖音字符視頻在去年火過一段時間。 反正我是始終忘不了那段極樂凈土的音樂... 這一次自己也來實現一波&#xff0c;做一個字符視頻出來。 主要用到的庫有cv2&#xff0c;pillow庫。 原視頻如下&#xff0c;直接抖音下載的&#xff0c;妥妥的水印。 不過并不影響本次的操作。 / …

變長參數

轉載自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 變長參數 設計一個參數個數可變、參數類型不定的函數是可能的&#xff0c;最常見的例子是printf函數、scanf函數和高級語言的Format函數。在C/C中&#xff0c;為了通知編譯器函數的參數個數和類型可變…

第十七章 我國農業科學技術

農村改革解說&#xff08;專著&#xff09;第十七章 第十七章 我國農業科學技術 1、為什么說科學技術是生產力&#xff1f; 我們說科學技術是生產力&#xff0c;是因為在構成生產力的兩個主要因素中&#xff0c;都包含著科學技術在內。 A、生產力中人的因素是同一定的科學技術緊…

《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一一1.2 選購鏡頭時應注意的事項...

本節書摘來自異步社區出版社《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一書中的第1章&#xff0c;第1.2節&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.2 選購鏡頭時應注意的事項 面對如此之多的鏡頭&#xf…

OpenCV中的神器Image Watch

Image Watch是在VS2012上使用的一款OpenCV工具&#xff0c;能夠實時顯示圖像和矩陣Mat的內容&#xff0c;跟Matlab很像&#xff0c;方便程序調試&#xff0c;相當好用。跟VS2012配合使用&#xff0c;簡直就是一款神器&#xff01;讓我一下就愛上它了&#xff01; 下面介紹一些鏈…

python異步_Python通過Thread實現異步

當long函數耗時較長時&#xff0c;需要程序先向下執行&#xff0c;這就需要異步&#xff0c;改寫代碼如下&#xff1a; import _thread import time def long(cb): print (long execute) def fun(callback): time.sleep(5) result long end callback(result) _thread.start_ne…

SAM4E單片機之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通過它提供的庫&#xff0c;可以很快速地完成新的項目。 這次的最終目標使用ASF在LCD上顯示出文字“Hello World!”&#xff0c;現階段目標是點亮LCD的背光&#xff0c;學習目標…