在便携式计算机的无线接口上设置kvm


14

我正在尝试在ubuntu 14.04主机中设置KVM

  1. 我使用无线接口访问机器中的互联网。我在/etc/networks/interfaces 下面设置了无线接口。

    auto wlan0
    iface wlan0 inet static
    address 192.168.1.9
    netmask 255.255.255.0
    gateway 192.168.1.1
    wpa-ssid My_SSID
    wpa-psk SSID_Password
    dns-nameservers 8.8.8.8
    dns-search lan
    dns-domain lan
    
  2. 我检查了我的机器是否可用于虚拟化,并且此命令确认我的硬件支持虚拟化。

    egrep '(vmx|svm)' /proc/cpuinfo
    
  3. 我安装了kvm虚拟化所需的软件包,如下所示。

    apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder
    
  4. 我还安装了bridge utils软件包来为kvm配置网桥网络。

    apt-get install bridge-utils
    
  5. 我进行了修改,/etc/network/interfaces以允许桥接网络如下所示。

    auto br0
    iface br0 inet static
    address 192.168.1.40
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    dns-search lan
    dns-domain lan
    bridge_ports wlan0
    bridge_stp 0ff
    bridge_fd 0
    bridge_maxwait 0
    wpa-ssid my_ssid
    wpa-psk ssid_password
    
  6. 完成上述步骤后,我ping 192.168.1.40可以看到命令的输出中列出了 br0virbr0ifconfig -a。我的无线接口也可以正常访问互联网。

  7. 但是,在完成上述步骤后,如果我尝试使用ubuntu-vm-builder命令添加其他操作系统 ,则无法添加新的操作系统。这是我用来添加新操作系统的命令。

    sudo ubuntu-vm-builder kvm trusty \
    --domain rameshpc \
    --dest demo1 \
    --hostname demo1 \
    --arch amd64 \
    --mem 1024 \
    --cpus 4 \
    --user ladmin \
    --pass password \
    --bridge br0 \
    --ip 192.168.1.40 \
    --mask 255.255.255.0 \
    --net 192.168.1.0 \
    --bcast 192.168.1.255 \
    --gw 192.168.1.1 \
    --dns 8.8.8.8 \
    --components main,universe \
    --addpkg acpid \
    --addpkg openssh-server \
    --addpkg linux-image-generic \
    --libvirt qemu;///system;  
    

我已经看到,使用无线接口设置桥接网络非常安静,如问题所述。但是,正如答案所述,可以使用隧道设备。我已经尝试了链接中建议的选项。但是我无法使它工作。

Answers:


17

就像有人正确地说过的那样:在Linux TM中没有什么是不可能的,我可以通过无线接口通过桥接网络在主机中实现kvm

这些是我完成相同步骤所遵循的步骤。

  1. 我安装了virt-manager软件包以更有效地管理安装。我安装如下。

    sudo apt-get install virt-manager
    
  2. 现在,使用Virt Manager的GUI 创建一个新的子网,如下所示。这基本上是我们现有主机网络的子网络。

    在此处输入图片说明

  3. 设置此新子网后,请检查网络是否可用并ping某些站点以检查网络连接。

  4. 此外,使用检查路由信息route的命令,并确保wlan0virbr2不具有相同的目标。

  5. 现在,使其生效的最后一步是发出以下命令。这里192.168.1.9是主机地址。

    arp -i wlan0 -Ds 192.168.1.9 wlan0 pub
    
  6. 上述步骤后,我是能够成功地安装Fedora的客户操作系统使用virt-manager

参考文献

http://specman1.wordpress.com/2014/01/02/wireless-bridging-virtual-machines-kvm/ /superuser/694929/wireless-bridge-on-kvm-virtual-machine


2
我必须在接口上启用ARP代理:sudo sysctl net.ipv4.conf.wlan0.proxy_arp=1
Leon Van Zyl

1
arp我使用了specman1.wordpress.com/2014/01/02/…的 “未来就在这里……”下的说明,而不是这里的步骤5 命令说明。 echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arpecho 1 > /proc/sys/net/ipv4/conf/virbr1/proxy_arp (我不一定说的第5步arp命令指示在这里是行不通的。我只是说我没有使用它们)
DBANK

我无法正常工作...每一篇文章都说了些不同,没有一个清晰的内容可以理解。Linux主机Windows来宾。
TetraDev

0

根据KVM的文档,不可能将网桥与无线NIC一起使用。我什至不知道为什么我曾经在VirtualBox上桥接来宾。

我花了几个小时来弄清楚如何将访客连接到主机的无线网络,并且我发现最简单的方法是使用TAP设备。此方法的唯一缺点是您无法在客户机上使用DHCP,而必须从无线网络子网手动为其提供IP地址(如果部署大量VM,可能会导致IP冲突或不便)。

以下是使用TAP设备在主机的无线网络上连接访客的步骤:

0 /为Linux内核启用IPv4路由

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

1 /创建一个名为tap0的Tap设备,用户guest无需sudo即可访问该设备(用您的用户名替换):

sudo ip tuntap add mode tap tap0 user guest

2 /为tap0设备分配一个IP地址(不必来自无线网络子网):

sudo ip addr add 10.10.10.10/24 dev tap0
sudo ip link set tap0 up

3 /使用parprouted(可能需要安装)来实现代理arp桥接,该桥接允许将来宾以太网桥接到主机的无线NIC之后。

sudo parprouted wlan0 tap0

(用主机的无线接口替换wlan0)

4 /添加一些路由表条目以允许数据包通过分流设备的末端:

sudo iptables -A INPUT -i tap0 -j ACCEPT
sudo iptables -A FORWARD -i tap0 -j ACCEPT
sudo iptables -A FORWARD -o tap0 -j ACCEPT

在来宾上,从主机的无线网络子网中分配一个静态IP地址。例如,如果您的wlan0在192.168.1.0/24上,则可以使用以下命令配置来宾

sudo ip addr add 192.168.1.30/24 dev eth0

(eth0是您的访客的NIC)

或永久存在于/ etc / network / interfaces中,并具有:

auto eth0
iface eth0 inet static
  address 192.168.1.30
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.25

通过以下方式启动您的访客:

kvm -hda guest.img -m 512 -net nic -net tap,ifname=tap0,script=no

现在,可以在无线网络上连接的所有计算机与访客之间执行ping操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.