Назад | Перейти на главную страницу

Proxmox: виртуальные машины и различные публичные IP-адреса

У меня есть сервер с двумя сетевыми адаптерами, и оба напрямую подключены к Интернету. У меня есть пять разных общедоступных IP-адресов для виртуальных машин. Хост-компьютер (Proxmox) не должен его использовать (он будет использовать частный IP-адрес и все), но будет иметь подключение к Интернету.

Я просмотрел документацию Proxmox и не могу понять общую картину, чтобы настроить правильную конфигурацию сети для моих нужд. Вкратце, что у меня есть:

Что у меня теперь для ведущего, так это следующее:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
        address  192.168.1.101
        netmask  255.255.255.0
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet manual

Доступен из внутренней сети, так что ничего страшного. Есть подключение к Интернету, что тоже нормально. vmbr1 будет использоваться виртуальными машинами. Каждая виртуальная машина будет иметь свой собственный IP-адрес в файле конфигурации сетевых интерфейсов.

По какой-то причине у виртуальных машин не будет Интернета и они не смогут иметь общедоступный IP-адрес. Если я использую NAT, он будет работать правильно, но они не будут использовать для них публичные выделенные IP-адреса. Я что-то упускаю?

Вам не нужно назначать ему общедоступный IP-адрес, но вам нужно назначить eth1 для порта моста и указать другие параметры моста.

Если вы новичок в proxmox, веб-интерфейс поддерживает управление интерфейсами Ethernet и мостами за вас. Это также предотвращает неправильное именование мостов (proxmox применяет vmbrNNNN, где N - это число от 0 до 4095).

Файл интерфейсов требует, чтобы вы предоставили IP-адрес для любого определенного интерфейса, поэтому, чтобы убедить его, в противном случае вы можете добавить локальный IP-адрес и просто оставить его или, как в этом примере, удалить его сразу после завершения работы интерфейса:

auto lo
iface lo inet loopback

iface eth0 inet manual
iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
        address  192.168.1.101
        netmask  255.255.255.0
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet static
       address  127.1.0.1
       netmask  255.255.255.255
       bridge_ports eth1
       bridge_stp off
       bridge_fd 0
       up ip addr del 127.1.0.1/32 dev vmbr1

редактировать: Отредактируйте свой вопрос, если вы используете какие-либо странные правила брандмауэра, которые могут блокировать мостовой трафик, и значение sysctl net.ipv4.ip_forward.

Вы можете захотеть tcpdump -n -i ethN (внешний исходящий интерфейс), чтобы убедиться, что ваши пакеты отправляются с вашего хост-узла.