我一直致力於讓 KVM 在 CentOS 6.4 上運行,但遇到了障礙。在瀏覽了幾個關於為 vps 連接設置橋接器並手動嘗試進行必要的更改的線上文件後,我終於遇到了本文它演示了一種自動的方法:
virsh iface-bridge eth1 br0
現在,當我這樣做時,brctl show
我得到以下資訊:
bridge name bridge id STP enabled interfaces
br0 8000.001b78bb915a yes eth1
到目前為止一切看起來都很好。在我的網域配置中,我有以下網路構造:
<interface type='network'>
<mac address='52:54:00:a3:dd:2c'/>
<source network='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
然而,當我嘗試啟動網域時,我不斷收到以下錯誤:
error: Failed to start domain service-a-2
error: Network not found: no network with matching name 'br0'
經過更多搜尋後,我發現我可以透過發出以下命令列出虛擬機器管理程式可用的網路:
$ -> virsh net-list --all
但就我而言,它是空的。所以我發現本文它演示瞭如何設定以使用現有的網橋,因此我的配置如下所示:
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0" />
</network>
我透過virsh net-define /tmp/br0.xml
.然後我啟動了網路和網域,但現在當我發出ifconfig
命令時,我看到了 vnet0 條目:
vnet0 Link encap:Ethernet HWaddr FE:54:00:A3:DD:2C
inet6 addr: fe80::fc54:ff:fea3:dd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
這沒有意義,域不應該使用現有的 br0 橋接器嗎?是否為管理程式啟動的每個 vps 建立一個新的 vnetX 隧道(?)?
答案1
這是絕對有道理的。當您設定橋接時會發生什麼,是一個沒有插入任何東西的虛擬橋接設備(brctl show
下面不會列出任何網卡)。
當您將網橋連接到實體介面時,它將顯示為插入網橋的介面之一,實際上真正的流量將通過該接口,但這只是網橋的一個介面。當您啟動虛擬機時,它會附帶一個分路設備,該設備也應該插入交換機,因此交換機可以有兩個介面並在兩個介面之間移動流量。只需將橋接器視為一個網路交換機,其中插入了虛擬機(tap 是 vnet0 設備),並且也插入了真正的 NIC。更多虛擬機器可以插入此網橋,它們的所有流量都將透過您連接到網橋的實體網路卡進入網路。