За промовчанням Proxmox створює Linux bridge vmbr0, який дивиться через зовнішній інтерфейс і всі інші інтерфейси віртуальних машин, підключені до цього мосту, так само дивитимуться у світ. Тому необхідно підняти NAT з-під якого і виходитимуть всі інші віртуальні машини.
Для цього в розділі ноди Network, створимо новий Linux bridge vmbr1 вже з локальними налаштуваннями мережі приватної мережі, нехай це буде 192.168.10.0/24
У нашому випадку ми надали бриджовому інтерфейсу IP адресу 192.168.10.101. Шлюз для цього мосту не налаштовуємо, оскільки це буде сполучений інтерфейс.
Перезавантажуємо виділений сервер, після чого через ssh в консолі редагуємо файл налаштувань мережі /etc/network/interfaces знаходимо наш розділ приватної сітки і наводимо її до наступного виду:
auto vmbr1
iface vmbr1 inet static
address 192.168.10.101
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 ‘192.168.10.0/24’ -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s ‘192.168.10.0/24’ -o vmbr0 -j MASQUERADE
тобто ми дозволяємо форвард пакетів між інтерфейсами та включаємо NAT для мережі 192.168.10.0 на інтерфейсі vmbr0.
Прокидання пакетів також можна задати класичним способом в /etc/sysctl.conf прописавши туди рядок:
net.ipv4.ip_forward=1
Після цього перезавантажуємо сервер і приступаємо до настроювання гостьової віртуальної машини, у нашому випадку для Windows.
Перед цим створюємо мережевий інтерфейс для нашої машини моделі VirtIO та приналежності до мосту vmbr1 та включаємо машину.
Для ОС Windows спершу необхідно завантажити Stable virtio-win.iso https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso після чого вантажити його через веб-інтерфейс, що дещо моторошно оскільки iso образ важить 300+ MB, так що можна скачати відразу в сховище системи Proxmox безпосередньо з сервера:
wget -P /var/lib/vz/template/iso/ https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
та підключаємо ISO диск вже через веб-інтерфейс у налаштуваннях машини. У гостьовій машині встановлюємо драйвера для карти мережі.Після встановлення драйверів, руками прописуємо налаштування мережі 192.168.10.0, де IP задаємо довільний, а адреса шлюзу = адреса бриджа, тобто в нашому випадку 192.168.10.101
На цьому налаштування NAT завершено.
У разі потреби можна налаштувати прокидання портів (Port forwarding).
Якщо потрібно прокинути певні порти на потрібні віртуальні машини. Це можна зробити за допомогою iptables:
iptables -t nat -A PREROUTING -p tcp -d %ext_ip% –dport %ext_port% -i vmbr0 -j DNAT –to-destination %int_ip%:%int_port%
де,
%ext_ip% – зовнішній IP адрес
%ext_port% – зовнішній порт, яким звертатимуться до серверу з інтернету.
%int_ip% – внутрішній IP віртуальної машини
%int_port% – внутрішній порт, у якому працюватиме сервіс у віртуальній машині.
У результаті має вийти запис виду, наприклад:
iptables -t nat -A PREROUTING -p tcp -d 8.8.8.8 –dport 4001 -i vmbr0 -j DNAT –to-destination 192.168.1.101:3389
Тобто, запит, який прихолити на IP 8.8.8.8 по порту 4001 буде прокидатися на IP віртуальної машини 192.168.1.101 на порт 3389
Переглянути правила, що створили, можна командою:
iptables -L -t nat
Зберігаємо правила в iptables:
iptables-save
Налаштування завершено.

