Этот вопрос касается Proxmox VE 5.4.
Чтобы создать сеть NAT, я следовал этому руководству: https://cyberpersons.com/2016/07/27/setup-nat-proxmox/
К сожалению, для сети требуется dhcp, поэтому я не смог назначить статический IP-адрес хост-машине, на которой запущен Proxmox.
Файл / etc / network / interfaces на хост-машине выглядит так:
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr1
iface vmbr1 inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
dns-nameservers 8.8.8.8 8.8.4.4
auto vmbr2
iface vmbr2 inet static
address 10.10.10.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.10.0/24' -o vmbr1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr1 -j MASQUERADE
post-up iptables -t nat -A PREROUTING -i vmbr1 -p tcp --dport 2022 -j DNAT --to 10.10.10.2:22
post-down iptables -t nat -D PREROUTING -i vmbr1 -p tcp --dport 2022 -j DNAT --to 10.10.10.2:22
Конфигурация сети на виртуальной машине под управлением Ubuntu 18.04 выглядит следующим образом:
network:
ethernets:
ens18:
dhcp4: no
dhcp6: no
addresses: [10.10.10.2/24]
gateway4: 10.10.10.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
version: 2
Вопрос 1: После перезагрузки хост-машины, а затем виртуальной машины, я могу пинговать внешний мир (например, google.com) и 10.10.10.1 с виртуальной машины. Однако, если я выполняю ifdown vmbr2 && ifup vmbr2 на хост-машине во время работы виртуальной машины, на виртуальной машине нет Интернета, и ситуация сохраняется, даже если я перезагружаю виртуальную машину (также я не могу пинговать 10.10.10.1 с виртуальной машины и 10.10.10.2 от хоста). С другой стороны, если я выполняю ifdown vmbr2 && ifup vmbr2 на хосте, когда виртуальная машина не запущена, а затем запускаю виртуальную машину, на виртуальной машине есть Интернет. Есть ли способ сбросить сетевой интерфейс (vmbr2) на хосте во время работы виртуальной машины?
Вопрос 2: Вы бы порекомендовали альтернативную конфигурацию сети?