本文講述如何在Fedora 19下配置橋接網絡,使得局域網中的其它機器能夠訪問KVM中的虛擬機。注:Fedora 19是宿主機器的操作系統。
下面開始!
簡而言之是以下幾個步驟。
禁用SELinux(參考來源裡面建議的,這裡我不太推薦禁用SELinux)
虛擬服務端KVM的安裝和配置我之前講過了的,這裡就不講了(標簽Fedora下去找吧)。
禁用NetworkManager對網絡的管理,改用較為「原始」的network腳本來管理網絡。
在KVM中應用橋接網絡。
下面詳細講一下第三步這個橋接網絡的配置怎麼操作的。
先終端下運行ifconfig看看你要橋接起來的網絡端口名稱(一般是eth0、em0什麼的),我這裡是p33p1!
終端下依次運行,
su -c 'systemctl disable NetworkManager.service'
su -c 'systemctl enable network.service'
su -c 'systemctl stop NetworkManager.service'
看看/etc/resolv.conf中DNS服務器是否正確,如果缺失nameserver那麼運行system-config-network配置好。然後編輯/etc/sysconfig/network-scripts/ifcfg-p33p1(ifcfg-後面跟的是你的網絡端口名)這個文件,貼上我的范例供各位參考吧。
view sourceprint?#cat /etc/sysconfig/network-scripts/ifcfg-p33p1
NM_CONTROLLED="no"
BOOTPROTO=none
DEVICE="p33p1"
ONBOOT="yes"
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=Ethernet
HWADDR=20:cf:30:ac:c8:2b
PREFIX0=24
BRIDGE=br0
USERCTL=no
然後新建並編輯/etc/sysconfig/network-scripts/ifcfg-br0文件,內容如下,
view sourceprint?[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
上面有些具體的值請按照你的實際情況修改。根據我個人的體會的話,把/etc/sysconfig/network-scripts/下ifcfg-開頭的文件中不必要的(主要就是無線網絡連接過的那幾個)刪掉,可以避免通過systemctl重啟network服務出錯。
配置完畢後重啟Fedora,再在終端運行ifconfig看看輸出是否正確,我的輸出如下。
[root@localhost ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::22cf:30ff:feac:c82b prefixlen 64 scopeid 0x20<link>
ether 20:cf:30:ac:c8:2b txqueuelen 0 (Ethernet)
RX packets 75070 bytes 108005211 (103.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 50912 bytes 4021320 (3.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 38492 bytes 8994529 (8.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38492 bytes 8994529 (8.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p33p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 20:cf:30:ac:c8:2b txqueuelen 1000 (Ethernet)
RX packets 185871 bytes 264517286 (252.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 132653 bytes 10686277 (10.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 1 collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:af:e1:da txqueuelen 0 (Ethernet)
RX packets 45 bytes 5220 (5.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13 bytes 2649 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果這樣就表示橋接網絡配置完成了。然後修改KVM虛擬機的網絡界面配置,把Source deviec改成主機橋接的網絡,如下圖所示。
更多Fedora相關信息見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5