2010-12-16 48 views
3

我有一个关于如何Qemu和客户操作系统(Ubuntu)中的网络工作的问题。我读过this manual等。如果我明白,如果你想在客户操作系统中接入互联网,你需要在主机操作系统中制作接口接口。在此之后,以链接eth0的tap0中接口:QEMU客户操作系统中的网络如何工作?

  1. 通过使用NAT路由
  2. 通过使用桥(链接tap0中eth0的主机

现在我在主机中有这些接口(ppp0-3G-modem-Internet,lo):

ppp0  Link encap:Point-to-Point Protocol 
     inet addr:10.245.146.78 P-t-P:10.64.64.64 Mask:255.255.255.255 
     UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 
     RX packets:49635 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:42745 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:3 
     RX bytes:52405401 (52.4 MB) TX bytes:5988643 (5.9 MB) 

在阵风OS(为eth0,LO):

eth0  Link encap:Ethernet HWaddr:52:54:00:12:34:56 
     inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 
     ... 

互联网阵风OS的工作!如果我在真正的ppp0和guest虚拟机接口之间没有链接,在guest虚拟机操作系统中如何以及为什么要工作网络?我甚至没有任何人在主机上为来宾操作系统提供接口。

如果我明白这是因为guest通过默认主机接口转发数据。但为什么?

的Qemu选项:

qemu -hda ~/virt.disk -cdrom /dev/cdrom -boot once=dc -m 1024M -usb -smp 2 -enable-kvm 

主机路由表:

Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
10.64.64.64  *    255.255.255.255 UH 0  0  0 ppp0 
default   10.64.64.64  0.0.0.0   UG 0  0  0 ppp0 

游客的路由表:

Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
10.0.2.0  *    255.255.255.0 U 1  0  0 eth0 
link-local  *    255.255.0.0 U 1000 0  0 eth0 
default   10.0.2.2  0.0.0.0  UG 0  0  0 eth0 

回答

5

看起来你要使用的TAP设备,但与有问题它。 要使用TAP,你应该有这样的事情你QEMU命令行:

-net nic,model=rtl8139 -net tap 

在这些论点,与您的计算机上任何可用的NIC设备代替RTL8139。如果您不知道可用的nic设备,请使用以下命令列出它们:

qemu -net nic,model=? 

您还必须确保已创建TAP设备。下面的脚本创建必要的桥梁和港口:

# For Network Bridging/TAP 
# Set permissions of tun device 
chown root.users /dev/net/tun 
chmod g+rw /dev/net/tun 

#Add a bridge, add eth0 
brctl addbr br0 
ifconfig eth0 0.0.0.0 promisc 
brctl addif br0 eth0 
dhclient br0 

# Create tap0 
tunctl -t tap0 -u username #replace username by your username 

# Enable tap0 
brctl addif br0 tap0 
ifconfig tap0 up 

运行此脚本后,虚拟机开始与-net挖掘变量应为网络准备和使用TAP。

+0

当我运行这个,下面的错误即将到来。 qemu-system-i386:-net tap:设备'tap'无法初始化 – 2014-05-13 00:07:09

相关问题