Решение IPTABLE и IP-маршрутизации для сети HOST и подсети ВМ
У меня есть управляемый KVM-узел ProxmoxVE2.1 на Debian и куча гостевой машины VM. Вот так выглядит моя сеть:
# 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
Мой неопытный ум готов удвоить сетевые адаптеры виртуальной машины: один для первого решения, а другой - для второго (с немного отличающимися адресами), но я уверен, что это тупой способ решения проблемы, и все можно решить с помощью iptables/ правила IP-маршрута, которые я не могу создать.
ОБНОВИТЬ:
1 ответ
Проверьте мою конфигурацию в моем вопросе здесь;
Debian: Должен ли я добавить интерфейс VLAN в мост для KVM?
Я закончил тем, что использовал мостовые интерфейсы, которые соединены с гостями. Мой узел может связаться с Интернетом и его гостями, а гости могут связаться друг с другом и с Интернетом, обеспечивая полную связь. Противопожарное ограждение делается на каждого гостя им.