具有一个主机IP的KVM和机器的不同子网

我已经build立了一个适当的IPconfigurationKVM主机,但我的主机让我创buildDHCP,并使用它分配IP的机器。 我想看看是否有一个更简单的方法来做到这一点(或更好)。 刚开始的时候,我没有发现任何指向正确方向的东西。 我刚刚安装了Debian 6.0 x64,所以我没有安装任何东西。 我已经login,查询以下信息,并从我的主机更改密码设置一个。

我有一个Debian 6.0 x64系统,具有以下初始networkingconfiguration(用我的真实第一个八度代替255):

# tail /etc/network/interfaces auto eth0 iface eth0 inet static address 255.9.24.80 broadcast 255.9.24.95 netmask 255.255.255.224 gateway 255.9.24.65 # default route to access subnet up route add -net 255.9.24.64 netmask 255.255.255.224 gw 255.9.24.65 eth0 

我有一个/ 29子网,我想从我的主机使用虚拟机:

IP:255.46.187.152 / 29
掩码:255.255.255.248
广播:255.46.187.159

可用IP地址:255.46.187.153至255.46.187.158

我喜欢Cloudmin的界面,所以我想尝试一下,如果我能pipe理我的客人。

所以,我的问题是:

如何在主机系统上设置最好的,以便我可以在客人上使用额外的子网IP,并让他们从互联网上访问?

我还需要托pipe一个DNS服务器,这意味着这些虚拟机中的一个必须有两个IP分配给它并且可以从外部访问。 我如何使用Cloudmin来做到这一点? 我在这里有一个问题: 分配给一个KVM虚拟机的多个IP地址但是我只是重新格式化了整个服务器,并试图找出一个更好的方法来做到这一点。

机器信息:

 # ip route show 255.9.24.64/27 via 255.9.24.65 dev eth0 255.9.24.64/27 dev eth0 proto kernel scope link src 255.9.24.80 default via 255.9.24.65 dev eth0 brctl is empty # ip addr list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether c8:60:00:54:b5:d8 brd ff:ff:ff:ff:ff:ff inet 255.9.24.80/27 brd 255.9.24.95 scope global eth0 inet6 fe80::ca60:ff:fe54:b5d8/64 scope link valid_lft forever preferred_lft forever 

感谢您提供给我的任何帮助。

编辑:我已经安装了kvm和cloudmin:

 aptitude install qemu-kvm libvirt-bin wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-debian-install.sh ./cloudmin-kvm-debian-install.sh 

重新启动,现在我的networkingconfiguration如下所示:

 # device: eth0 iface eth0 inet manual # default route to access subnet iface br0 inet static address 255.9.24.80 netmask 255.255.255.224 broadcast 255.9.24.95 network 255.9.24.64 bridge_ports eth0 gateway 255.9.24.65 

我在Cloudmin中设置起始IP为255.46.187.153,结束IP为255.46.187.158。 CIDR是29,网关是255.46.187.152。

我已经安装了ubuntuserver 12.04 x64,它能够在安装过程中获取和检索互联网资源,但现在不能达到任何东西,也无法从任何东西到达。 其networkingconfiguration是:

 iface eth0 inet static address 255.46.187.153 netmask 255.255.255.224 broadcast 255.46.187.159 gateway 255.46.187.152 dns-nameservers <host provided nameservers> 

而且无法通过DNS或直接IP ping通google.com,我无法从外部或主机ping虚拟机。 现在有什么想法?

guest上configuration的网关不是主机的IP,我会在guest上尝试这个configuration:

 auto eth0 iface eth0 inet static address 255.46.187.153 netmask 255.255.255.255 gateway 255.9.24.80 pointopoint 255.9.24.80 dns-nameservers <host provided nameservers> up ip addr add 255.46.187.154 dev eth0 

同样在主机上,请确保将路由添加到guest虚拟机,将其添加到/ etc / network / interfaces

 iface eth0 inet static (...) up route add -host 255.46.187.153 dev br0 up route add -host 255.46.187.154 dev br0 

这样您就可以使用networking和广播地址(255.46.187.152和255.46.187.159)

一些资源,对不起英文:

http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/ (加泰罗尼亚语)

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way (德语)

如果虚拟机与主机不在同一networking中,则可能需要将该主机设置为虚拟机的路由器:

 iptables --table nat --append POSTROUTING --out-interface br0 -j MASQUERADE iptables --append FORWARD --in-interface br0 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward 

编辑:对不起“MASQUERADE”,我只是复制粘贴我躺在一个脚本。 在你的情况下,你不需要它。 但是在不同的情况下,例如当你想给虚拟机私有IP时,它可能是有用的。