我此刻遇到了问题,实在不知道错误在哪里。我从ISP获得了Root-Server。这个根服务器已经包含一个IP,今天我又预订了两个IP地址。所以我现在要做的是将这两个新的IP地址映射到两个虚拟机,但也保留了Root服务器的附加IP。那我怎么意识到这一点?
我想的是:
br0
- 保留根服务器的原始IP
br0:0
- 拥有第一个虚拟机的第一个IP
br0:1
- 拥有第二个虚拟机的第二个IP
但这不起作用。有任何想法吗。我真的很沮丧。在这一天工作了一天,没有解决方案。
答案 0 :(得分:4)
我也在努力应对类似的情况,我已经得到了服务器,并且指出设置网桥确实让我失望并且不得不重新开始以便能够到达它,无论如何我设法处理它通过iptables ..
#create alias for your second ip address (lets say its 111.222.333.2 , local address 192.168.1.2) ifconfig eth0:1 111.222.333.2 #you should add netmask to be proper if you've got subnet #now you should be able to ping this second address from outside world - try it, #that is if you have not set up firewall to block pings ... flush iptables rules if you are not sure... #set up NAT rule (network-address-translate : outside ip-> local ip and back local ip->outside ip) #assumes your virtual machines lives as 192.168.1.2 iptables -t nat -A PREROUTING -d 111.222.333.2 -j DNAT --to-destination 192.168.1.2 iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to-source 111.222.333.2
这确实帮助了我拥有多个IP地址和KVM虚拟机的服务器, 最初在默认网络中运行(转发模式= nat),因此他们首先通过NAT和内部IP进行互联网,这也为他们提供了外部世界公共IP地址。 你也可以逐个端口地做这些重定向,方法是调整iptables规则来设置地址,如-d 111.222.333.2:80 -p tcp,并将端口添加到本地地址......
您可能还需要打开设备IP转发,您可以通过例如
sysctl -a | grep forward(您应该在eth0设备上看到它)检查它,可选择通过适当的sysctl命令进行调整比如
sysctl -w net.ipv4.ip_forward=1
答案 1 :(得分:0)
将br0映射到VM1和VM2作为TAP DEVICE,在VM1和VM2中,您可以将其视为eth设备; 分别为VM1和VM2分配IP1和IP2;使用此配置,您可以从VM1到VM2以及从主机到任何来宾计算机(VM1或VM2)执行ping操作;
以下link将帮助您通过网桥为VM设置TAP设备;请参阅那里指定的qemu-ifup脚本并理解它。