Q: 请问KVM如何使用VDE?搞不定啊.

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
头像
Patrick_DJ
帖子: 110
注册时间: 2010-08-15 8:46

Q: 请问KVM如何使用VDE?搞不定啊.

#1

帖子 Patrick_DJ » 2012-01-08 14:48

在网上搜了半天,wiki.archlinux.org里的qemu章节也试了一圈,还是没解决。论坛里没找到关于使用vde方法的,所以只好发贴问了。 :em06

代码: 全选

本机环境:
                CPU :    Intel Dual Core E6550 (支持VT-x虚拟化什么的)
                内存:  3.2GB
                网卡:  Realtek板载有线网卡 (系统自动识别驱动的)

                系统:  ArchLinux i686 (前几天刚升级系统)
               KVM:  pacman -S qemu-kvm
                VDE :    pacman -S vde2

虚拟系统: 
               名称:    Windows7 32bit 中文版 (30天试用版)
        虚拟磁盘:    .raw文件(通过qemu-img create -f raw win7.raw 26G 生成的)
        安装方式:    通过.iso文件。

假定:
         系统使用了1个多月,也没怎么做过特别的设置(怕不心搞出问题了又得重装),算是比较干净的。
使用如下命令来启动并安装系统:

代码: 全选

exec qemu-kvm -drive file=~/win7.raw,cache=writeback -cdrom win7_cn_x86.iso -boot d -m 1536
当虚拟系统安装完后,是可以正常上谷歌的。用ipconfig,得到输出如下:

代码: 全选

ipv4地址:   10.0.2.15
子网掩码:   255.255.255.0
默认网关:   10.0.2.2
顺带说一下,在本机系统(也就是Archlinux)中用命令ifconfig输出的结果为:

代码: 全选

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
        inet 192.168.1.51  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::219:dbff:fef5:9394  prefixlen 64  scopeid 0x20<link>
        ether 00:19:db:f5:93:94  txqueuelen 1000  (Ethernet)
        RX packets 47069  bytes 53650868 (51.1 MiB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 37647  bytes 4757110 (4.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 44  base 0xe000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436  metric 1
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 2395  bytes 250670 (244.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2395  bytes 250670 (244.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1492  metric 1
        inet 110.184.203.161  netmask 255.255.255.255  destination 118.114.236.10
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 46416  bytes 52589873 (50.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37190  bytes 3924597 (3.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
由于一些原因,需要虚拟的系统能方便的连通本地系统所在的局域网的所有电脑,或者说就是让虚拟系统的IP也在192.168.1.x的IP段中吧。比如想要在用虚拟机做源码管理器或者是做其它服务器来让局域网中的其它电脑来访问等等。(不想用virtio或bridge-util什么的,貌似只剩vde可选了)

在虚拟系统中用ping本地系统的IP(ping 192.168.1.51),结果是"请求超时"。

尝试启动kvm,使用vde:

代码: 全选

vde_switch -sock /home/box/my_vde_switch
// 发现执行了上面的这行命令后,终端挂起了,然后我又开了个终端(gnome-terminal)
// 另外用ps -e | grep vde,输出"3888 pts/4    00:00:00 vde_switc"
// 在新的终端中输入:
exec qemu-kvm -drive file=~/win7.raw,cache=writeback -cdrom win7_cn_x86.iso -boot d -m 1536 -net nic -net vde,sock=/home/box/my_vde_switch
进入虚拟系统win7后,上不了外网了(如之前可以上的谷歌),再用ipconfig,输出如下:

代码: 全选

ipv4地址:  169.254.224.28
子网掩码:  255.255.0.0
默认网关:  (空)
另外还试过wiki.archlinux.org中qemu里描述的使用vde的方法,步骤如下:

代码: 全选

sudo vde_switch -daemon -mod 660 -group kvm
slirpvde --dhcp --daemon
exec qemu-kvm -drive file=win7.raw,cache=writeback -cdrom win7_cn_x86.iso -boot d -m 1536 -net nic,macaddr=52:54:01:01:EE:03 -net vde
不过还是失败了,依然没法ping 192.168.1.1和192.168.1.51(本机局域网ip),然后重启了下系统,才试了第一个方法。

要提一下的是,我的网卡直接连的adsl modern,该modern支持4个接口,有dhcp功能。如果换成virtualbox的虚拟系统并采用bridge网格模式,可以自动分配到ip (192.168.1.x段)的。

请问大家有什么建议么? :em06
hsjwww
帖子: 72
注册时间: 2011-11-22 15:57

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#2

帖子 hsjwww » 2012-01-08 17:25

能教教怎么用KVM吗 :em01
附件
h.png
头像
Patrick_DJ
帖子: 110
注册时间: 2010-08-15 8:46

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#3

帖子 Patrick_DJ » 2012-01-08 21:24

hsjwww 写了:能教教怎么用KVM吗 :em01
同志啊,我自己都没搞定呢,这不是导人子弟么。 0_0

之前出门支了,刚回来,请看几位前辈的帖子~~ :D

viewtopic.php?f=65&t=154792
viewtopic.php?f=65&t=120857
viewtopic.php?f=65&t=184724
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#4

帖子 自由建客 » 2012-01-08 22:26

viewtopic.php?f=65&t=360205
十二楼!
你可以打开我的脚本研究研究。
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#5

帖子 achen.han » 2012-01-09 8:10

你的问题是:用vde创建虚拟hub后,只有你的虚拟机连接到这个hub上,当然上不了网。要上网,宿主机也要建立虚拟网卡,这个网卡也要连接到这个hub上。宿主机配置成NAT路由器。不过这样配置后,虚拟hub上的网络和物理网卡就不再一个网段了。满足不了你的要求。

要满足你的要求,最简单直观,创建桥,将物理网卡和虚拟机网卡放在同一个桥中。

用vde的话,估计只有用arp proxy解决了。
头像
Patrick_DJ
帖子: 110
注册时间: 2010-08-15 8:46

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#6

帖子 Patrick_DJ » 2012-01-09 16:16

自由建客 写了:viewtopic.php?f=65&t=360205
十二楼!
你可以打开我的脚本研究研究。
谢谢. 折腾中... :D
头像
Patrick_DJ
帖子: 110
注册时间: 2010-08-15 8:46

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#7

帖子 Patrick_DJ » 2012-01-09 16:20

achen.han 写了:你的问题是:用vde创建虚拟hub后,只有你的虚拟机连接到这个hub上,当然上不了网。要上网,宿主机也要建立虚拟网卡,这个网卡也要连接到这个hub上。宿主机配置成NAT路由器。不过这样配置后,虚拟hub上的网络和物理网卡就不再一个网段了。满足不了你的要求。

要满足你的要求,最简单直观,创建桥,将物理网卡和虚拟机网卡放在同一个桥中。

用vde的话,估计只有用arp proxy解决了。
啊?!

哎呀喂,KVM我对你真是又爱又恨啊,为什么你就是这么的麻烦... :em20

算了,先研究下VDE,哪怕是这一次用不上。 =_=
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#8

帖子 自由建客 » 2012-01-09 23:40

抱歉,你写得太长,开始没注意看
由于一些原因,需要虚拟的系统能方便的连通本地系统所在的局域网的所有电脑
在我那 vde_switch 脚本的基础上

代码: 全选

# 禁用 slirp
vi /etc/default/vde_switch #{
SLIRP_ENABLE=false
#}
/etc/init.d/vde_switch restart

# 建桥
brctl addbr br0
ifconfig eth0 0.0.0.0
ifconfig tap0 0.0.0.0
brctl addif br0 eth0 tap0
brctl stp br0 off
dhclient br0
如此则可将连接到虚拟交换机一干虚拟机连接到物理网络中来。有了虚拟交换机,桥接将不再是只能桥接一台虚拟机。
我暂时不知道如何处理 network-manager 的问题,所以暂时不会更新 vde_switch 脚本。

vde 其实很简单,关键是你想要什么样的网络。拓扑结构什么样的应当要心里清楚。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#9

帖子 自由建客 » 2012-01-12 20:20

搞定了,看这里 虚拟机网络终极方案
achen.han
帖子: 442
注册时间: 2010-09-08 23:33

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#10

帖子 achen.han » 2012-01-13 8:27

个人感觉vde用在虚拟机环境有点杀鸡用牛刀,用桥还是简单一点。
头像
anonymity
帖子: 645
注册时间: 2009-03-14 16:31
来自: 不在故乡的地方

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#11

帖子 anonymity » 2012-02-19 15:31

achen.han 写了:个人感觉vde用在虚拟机环境有点杀鸡用牛刀,用桥还是简单一点。
对于无线网卡,netmanager的苦逼桥,遥远的桥
Only the dead have seen the end of war!
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: Q: 请问KVM如何使用VDE?搞不定啊.

#12

帖子 自由建客 » 2012-02-19 15:36

achen.han 写了:个人感觉vde用在虚拟机环境有点杀鸡用牛刀,用桥还是简单一点。
看你要桥接几台了,直接桥接的,桥接一台好说。
vde 除可桥接多台机器外,还有个明显的优势是不需要 root!
回复