cheng029 发表于 2012-7-20 16:22:19

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

   以前因为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
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 的额外空间。
您希望继续执行吗?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

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 MULTICASTMTU: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 MULTICASTMTU: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 RUNNINGMTU: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 MULTICASTMTU: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。
650



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


在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/se ... ation.html#bridging

julley 发表于 2013-3-14 01:54:45

支持一下:lol

chinaab 发表于 2013-5-16 00:54:43

解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!!

linuxx 发表于 2013-5-16 16:36:38

我妈常说,我们家要是没有电话就不会这么穷。

爱在莫斯科 发表于 2013-5-17 12:40:05

好好 学习了 确实不错

njsuntop 发表于 2013-5-18 09:21:10

花前月下,不如花钱“日”下!*^_^*

随风飞世 发表于 2013-5-19 00:40:41

花前月下,不如花钱“日”下!*^_^*
页: [1]
查看完整版本: Ubuntu12.04 配置KVM,使用网卡桥接模式