作者:白羊浅蓝色 | 来源:互联网 | 2014-05-27 21:08
本文讲述如何在Fedora18下配置桥接网络,使得局域网中的其它机器能够访问KVM中的虚拟机。注:Fedora18是宿主机器的操作系统下面开始!简而言之是以下几个步骤。禁用SELinux(参考来源里面建议的,这里我不太推荐禁用SELinux)虚拟服务端KVM的安装和配置
本文讲述如何在Fedora 18下配置桥接网络,使得局域网中的其它机器能够访问KVM中的虚拟机。注:Fedora
18是宿主机器的操作系统
下面开始!
简而言之是以下几个步骤。
禁用SELinux(参考来源里面建议的,这里我不太推荐禁用SELinux)
虚拟服务端KVM的安装和配置我之前讲过了的,这里就不讲了(标签Fedora下去找吧)。
禁用NetworkManager对网络的管理,改用较为「原始」的network脚本来管理网络。(非必须,我后来启用了NetworkManager,桥接网络仍然可以工作,不过NetworkManager不能再管理桥接的有线网卡(或翻译为「以太网卡」)。)
在KVM中应用桥接网络。
下面详细讲一下第三步这个桥接网络的配置怎么操作的。
先终端下运行ifconfig看看你要桥接起来的网络端口名称(一般是eth0、em0什么的),我这里是p6p1!
终端下依次运行,
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-p6p1(ifcfg-后面跟的是你的网络端口名)这个文件,将DNS1、DNS2、GATEWAY、IPADDR、NETMASK和SEARCH这几行都注释掉,同时把NM_CONTROLLED的值改为no,并添加一行BRIDGE=br0,贴上我的范例供各位参考吧。
UUID="9c0c0328-4126-4a5c-8848-e1fd63f4e60e"
NM_COnTROLLED="no"
#BOOTPROTO=none
DEVICE="p6p1"
OnBOOT="yes"
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=Ethernet
HWADDR=88:AE:1D:31:12:EA
#IPADDR0=192.168.0.20
PREFIX0=24
#GATEWAY0=192.168.0.1
#DNS1=192.168.0.1
#DNS2=8.8.8.8
BRIDGE=br0
USERCTL=no
然后新建并编辑/etc/sysconfig/network-scripts/ifcfg-br0文件,内容如下,
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DNS1=192.168.0.1
DNS2=8.8.8.8
GATEWAY=192.168.0.1
IPADDR=192.168.0.20
NETMASK=255.255.255.0
OnBOOT=yes
上面有些具体的值请按照你的实际情况修改。根据我个人的体会的话,把/etc/sysconfig/network-scripts/下ifcfg-开头的文件中不必要的(主要就是无线网络连接过的那几个)删掉,可以避免通过systemctl重启network服务出错。
配置完毕后重启Fedora,再在终端运行ifconfig看看输出是否正确,我的输出如下。
[will@localhost ~]$ ifconfig
br0: flags=4163
mtu 1500
inet 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8aae:1dff:fe31:12ea prefixlen 64 scopeid 0x20
ether 88:ae:1d:31:12:ea txqueuelen 0 (Ethernet)
RX packets 5283 bytes 2273032 (2.1 MiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 5972 bytes 1221202 (1.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 662317 bytes 38148744 (36.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 662317 bytes 38148744 (36.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p6p1: flags=4163 mtu 1500
ether 88:ae:1d:31:12:ea txqueuelen 1000 (Ethernet)
RX packets 6216 bytes 2441789 (2.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6096 bytes 1227923 (1.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 1 collisions 0
virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether aa:55:60:1a:b2:d3 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果这样就表示桥接网络配置完成了。然后修改KVM虚拟机的网络界面配置,把Source
deviec改成主机桥接的网络,如下图所示。