您的位置:首页 > 其它

Ubuntu12.04 配置KVM,使用网卡桥接模式。

2012-06-13 15:49 423 查看
以前因为Ubuntu Server 做 kvm 没有解决网卡桥接,就改了Centos6。Centos6配置桥接倒是比较容易,对 Virtual Machine Manager支持也很好,但是偏偏只能用root管理虚拟机,这非常不理想。

现在重新尝试配置Ubuntu Server 网卡桥接,发现其实很简单

1. 安装

最小安装Ubuntu Server 12.04,只启用OPEN SSH。装好后:

superv@kvmserver:~$ sudo apt-get update ; sudo apt-get upgrade -y
superv@kvmserver:~$ sudo apt-get install bridge-utils kvm libvirt-bin
[sudo] password for superv:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
cgroup-lite cpu-checker dnsmasq-base ebtables gawk kvm-ipxe libaio1
libapparmor1 libasound2 libasyncns0 libavahi-client3 libavahi-common-data
libavahi-common3 libcaca0 libflac8 libjson0 libnetfilter-conntrack3 libnspr4
libnss3 libnuma1 libogg0 libpulse0 librados2 librbd1 libsdl1.2debian
libsigsegv2 libsndfile1 libvirt0 libvorbis0a libvorbisenc2 libxenstore3.0
libxml2-utils libyajl1 msr-tools qemu-common qemu-kvm qemu-utils seabios
vgabios
建议安装的软件包:
libasound2-plugins libasound2-python pulseaudio policykit-1 radvd
mol-drivers-macosx openbios-sparc ubuntu-vm-builder uml-utilities
下列【新】软件包将被安装:
bridge-utils cgroup-lite cpu-checker dnsmasq-base ebtables gawk kvm kvm-ipxe
libaio1 libapparmor1 libasound2 libasyncns0 libavahi-client3
libavahi-common-data libavahi-common3 libcaca0 libflac8 libjson0
libnetfilter-conntrack3 libnspr4 libnss3 libnuma1 libogg0 libpulse0
librados2 librbd1 libsdl1.2debian libsigsegv2 libsndfile1 libvirt-bin
libvirt0 libvorbis0a libvorbisenc2 libxenstore3.0 libxml2-utils libyajl1
msr-tools qemu-common qemu-kvm qemu-utils seabios vgabios
升级了 0 个软件包,新安装了 42 个软件包,要卸载 0 个软件包,有 3 个软件包未被升级。
需要下载 11.5 MB 的软件包。
解压缩后会消耗掉 39.9 MB 的额外空间。
您希望继续执行吗?[Y/n]n

......

2. 用虚拟系统管理器(Virtual Machine Manager)测试连接,得到错误提示:

Unable to connect to libvirt:

End of file while reading data: : 输入/输出错误
Verify that:
- The 'libvirt-bin' package is installed
- The 'libvirtd' daemon has been started
- You are member of the 'libvirtd' group

检查一下,然后新建一个帐号:

superv@kvmserver:~$ sudo service libvirt-bin status
libvirt-bin start/running, process 2487

superv@kvmserver:~$ sudo adduser vmuser
正在添加用户"vmuser"...
正在添加新组"vmuser" (1001)...
正在添加新用户"vmuser" (1001) 到组"vmuser"...
创建主目录"/home/vmuser"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd: password updated successfully
Changing the user information for vmuser
Enter the new value, or press ENTER for the default
Full Name []: vmuser
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这些信息是否正确? [Y/n] y

superv@kvmserver:~$ sudo usermod -aG libvirtd vmuser

superv@kvmserver:~$ groups vmuser
vmuser : vmuser libvirtd

3. 配置桥接
编辑 /etc/network/interfaces
将默认的eth0改为 br0,再增加几行bridge指令,编辑好的文件如下:

auto lo

iface lo inet loopback

auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
dns-nameservers 202.106.196.115

重启网络,用brctl show 指令查询已建立的网桥,并查看ifconfig信息,我们注意到eth0已经没有IP地址了。
注意,virbr0是安装kvm时系统建立的,为NAT网络专用,跟我们要使用的桥接完全不同。

superv@kvmserver:~$ sudo /etc/init.d/networking restart

superv@stack3650a:~$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001a64c5efb4 no eth0
virbr0 8000.000000000000 yes

superv@kvmserver:~$ ifconfig
br0 Link encap:以太网 硬件地址 00:1a:64:c5:ef:b4
inet 地址:192.168.0.10 广播:10.34.67.255 掩码:255.255.255.0
inet6 地址: fe80::21a:64ff:fec5:efb4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:3316 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:2608 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:528299 (528.2 KB) 发送字节:646207 (646.2 KB)

eth0 Link encap:以太网 硬件地址 00:1a:64:c5:ef:b4
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:27844 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:20396 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:14423283 (14.4 MB) 发送字节:3709218 (3.7 MB)
中断:16 Memory:ce000000-ce012800

lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:3 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:3 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:290 (290.0 B) 发送字节:290 (290.0 B)

virbr0 Link encap:以太网 硬件地址 fa:5b:77:83:32:0f
inet 地址:192.168.122.1 广播:192.168.122.255 掩码:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)

4.我们用虚拟系统管理器打开Ubuntu Server。




双击服务器,打开详细信息,在“网络接口”部分看到这样一个提示。。。




在Centos6里面,这里可是有完整的网络配置功能的呀。

怎么弄呢?搜索了很多,没有找到合适的解决办法。这时候我们发扬了不撞南墙不回头的精神,装一个虚拟机试试!
嘿嘿,安装到第四步的时候,乐了,很简单嘛,桥已经好用了,在等着你呢。






5. 就这样按部就班,装好了一台,再把原来Centos下的磁盘镜像复制过来,直接“Import existing disk image”,齐活儿。而且,更令人欣喜的是,安装Windows虚拟机也非常成功,控制台图形性能没有任何问题,比Centos强。

复制光盘、磁盘镜像指令:

superv@kvmserver:/opt/iso# sudo scp root@192.168.0.9:/isoimg/*.* .
superv@kvmserver:/opt/iso# sudo scp root@192.168.0.9:/kvmimg/*.* .

参考
https://help.ubuntu.com/12.04/serverguide/libvirt.html https://help.ubuntu.com/12.04/serverguide/network-configuration.html#bridging

本文出自 “Panblack” 博客,请务必保留此出处http://panblack.blog.51cto.com/2980687/897424
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: