danielnewman
@danielnewman
Front-end

Hetzner 〉 Proxmox 〉 VM00. Как пробросить порты?

Реализуя переведенный HowTo по разносу серверного LAMP-стека на виртуалки,
поднял Proxmox на Hetzner.

Желаемая топология в картинках
image
Желаемая топология в текстовом виде
//////////////////////////
/ Интернет/маршрутизатор /
/ gateway: 175.19.59.193 /
//////////////////////////
           \
            \
             ----------| vm00
             175.19.59.209:80 - eth0
             10.10.11.1       - vmbr1
         +-----------------------------+
         | Реверс-прокси               |
         | Межсетевой экран (Firewall) |      eth0:10.10.11.10/vm01
         +-----------------------------+     +----------------------+
         |                                   | Lighttpd             |
         +-----------------------------------+ статический контент  |
         |                                   | /var/www/static      |
         |                                   +----------------------+
         |
         |                                    eth0:10.10.11.11/vm02
         +-----------------------------------+-----------------------+
         |                                   | Apache+php+perl+python|
         |                                   | /var/www/html         |
         |                                   +-----------------------+
         |
         |                                    eth0:10.10.11.12/vm03
         +-----------------------------------+-----------------------+
         |                                   |Кэш SQL БД             |
         |                                   |Redis/Memcached и т.д. |
         |                                   +-----------------------+
         |
         |                                   eth0:10.10.11.13/vm04
         |                       (или выделенный сервер БД на шасси RAID-10)
         +-----------------------------------+------------------------+
         |                                   | Mysql/pgsql сервер БД  |
         |                                   | @10.10.11.13:3306/5432|
         |                                   +------------------------+
         |
         |                                   eth0:10.10.11.14/vm05
         |    (или сервер-хранилище с доступом по NFSv4 на шасси RAID-10)
         +-----------------------------------+------------------------+
                                             | NFSv4 на Linux         |
                                             | /export/{static,html   |
                                             +------------------------+

Для этого на EX4 от Hetzner был установлен Proxmox,
настроенный в соответствии с выделенным IP

Proxmox.HOST (Debian)
# network interface settings
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
address 175.19.59.209
netmask 255.255.255.224
gateway 175.19.59.193
bridge_ports eth0
bridge_stp off
bridge_fd 0

auto vmbr1
iface vmbr1 inet static
address 10.10.11.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.11.0/24' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.11.0/24' -o eth0 -j MASQUERADE

vm00 (реверс-прокси), в моем случае — это HOST, без всяких там nginx. Только Proxmox.
nginx я хочу запихать в пул вируталок, т.е. виртуальная машина vm01 — мой KVM-nginx (CentOS).

vm01 (CentOS guest)
#/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
HWADDR="XX:XX:XX:XX:XX"
NETMASK=255.255.255.0
IPADDR=10.10.11.2
TYPE="Ethernet"

#/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=nginx.localdomain

Настраивалось с помощью семи нянек, мануалов от Hetzner, Proxmox и еще многих других, но у меня не выходит пробиться с гостевой vm01 машины наружу, хотя HOST замечательно пингует 10.10.11.0/24 подсеть. Мне нужно заставить прокинуть HOST:1080 -〉 vm01:100500. А так же дать возможность этому vm01 апдейтить софт из Интернет, т.е. HOST:80 〈-〉 vm01:80.

Все остальные вирутальные машины подсети 10.10.11.0/24 могут общаться между собой.

Убейте, не вижу, что настроил не так.
  • Вопрос задан
  • 7871 просмотр
Решения вопроса 1
danielnewman
@danielnewman Автор вопроса
Front-end
Найдена причина:
post-up iptables -t nat -A POSTROUTING -s '10.10.11.0/24' -o net0 -j MASQUERADE

вместо
post-up iptables -t nat -A POSTROUTING -s '10.10.11.0/24' -o eth0 -j MASQUERADE


В примерах настройки eth0 следовало заменить на TAP виртуальной машины. Всего-то.
Спасибо за минус за вопрос.

serverfault.com/questions/421357/debian-kvm-host-and-guests-interfaces-configuration
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы