У меня есть сервер с двумя сетевыми адаптерами, и оба напрямую подключены к Интернету. У меня есть пять разных общедоступных 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 (внешний исходящий интерфейс), чтобы убедиться, что ваши пакеты отправляются с вашего хост-узла.