针对主机网络和虚拟机子网的 IPTABLE 和 IP 路由网络解决方案

针对主机网络和虚拟机子网的 IPTABLE 和 IP 路由网络解决方案

我在 Debian 和一堆 VM 的客户机上安装了 ProxmoxVE2.1 控制的 KVM 节点。我的网络是这样的:

# network interface settings
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
    address   175.219.59.209
    gateway   175.219.59.193
    netmask   255.255.255.224
    post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

我有两个有效的子网解决方案

auto vmbr0
iface vmbr0 inet static
    address   10.10.0.1
    netmask   255.255.0.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up ip route add 10.10.0.1/24 dev vmbr0

这样,我就可以访问互联网,解析外部主机,更新和下载我需要的所有内容,但无法访问网络内的任何其他虚拟机中的一个客户虚拟机。

第二种解决方案允许我在虚拟机之间进行通信:

auto vmbr1
iface vmbr1 inet static
    address   10.10.0.1
    netmask   255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING  -s '10.10.0.0/24' -o vmbr1 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o vmbr1 -j MASQUERADE

我甚至可以对内部地址进行 NAT:

-t nat -I PREROUTING -p tcp --dport 789 -j DNAT --to-destination 10.10.0.220:345

我缺乏经验,准备将 VM 的网络适配器增加一倍:一个用于第一个解决方案,另一个用于第二个解决方案(地址略有不同),但我很确定这是一种愚蠢的解决问题的方法,并且所有问题都可以通过我无法创建的 iptables/ip 路由规则来解决。

更新:

http://img685.imageshack.us/img685/3153/mytopo.png

答案1

在这里查看我的问题中的配置;

Debian:我应该将 vlan 接口添加到 KVM 桥中吗?

我最终使用了桥接接口,与客户机桥接。我的节点可以访问互联网及其客户机,客户机之间可以互相访问互联网,实现完全连接。每个客户机上都有防火墙。

相关内容