Настройка NAT для виртуальных машин в Proxmox VE

30 Sep 2018 | Автор: dd |

Под тесты с генерацией трафика, понадобился отдельный сервак. Взял в Kimsufi, но возникла проблема с установкой WIndows7, т.к это Xeon и винда, установленная через  KVM, видимо, не хотела стартовать с нестандартными дровами.

А поскольку никакого аналога VNC или IP-KVM (не того который Kernel-based Virtual Machine,  а того который Keyboard Video Mouse over IP ) у Kimsufi нет, то в итоге пришлось поставить Proxmox, тем более что в Kimsufi он ставится из коробки. Можно конечно было грубо накатить Qemu KVM прямо из центосины, но уж больно мне нравится удобство web-based управлялки Proxmox, т.к не приходится для каждого чиха поднимать VNC.

Но возникла проблема с сеткой, т.к по дефолту Proxmox создает Linux bridge vmbr0 который смотрит через внешний интерфейс и все остальные интерфейсы виртуалок, подключенные к этому мосту, так же будут смотреть наружу со своими MAC адресами, чему Kimsufi несказанно удивлен, т.к предполагается только один адрес.

Поэтому необходимо поднять NAT из под которого и будут выходить все остальные виртуалки.

Для этого в разделе ноды Network, создадим новый Linux bridge vmbr1 уже с локальными сетевыми настройками приватной сети. Пускай это будет 192.168.10.0/24

создание виртуального моста в Proxmox

В моем случае я присвоил бриджовому интерфейсу 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

После этого ребутим машину и идем настраивать гостевую виртуальную машину.

создание виртуального интерфейса в системе Proxmox VEПеред этим создаем сетевой интерфейс для нашей машины модели VirtIO и принадлежностью к мосту vmbr1 и включаем машину.

Для Windows сначала надо скачать guest tool agent, который берется на федорином сайте: теоретически, оттуда скачиваем Stable virtio-win iso после чего грузим его через веб-интерфейс, что несколько муторно поскольку исошник весит 300+ мегов, т.ч можно скачать сразу в хранилище системы 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, где айпишник задаем произвольный, а адрес шлюза = адрес бриджа, т.е в моем случае 192.168.10.101

Теоретически, после этого, сетка должна подцепиться и все заработать.

Если машин много, то в принципе можно поставить какой нить DHCP сервер на ноде, но у меня буквально несколько машинок, т.ч мне проще прописать руками.

VN:F [1.9.21_1169]
Rating: 3.6/10 (66 votes cast)
VN:F [1.9.21_1169]
Rating: +9 (from 19 votes)
Настройка NAT для виртуальных машин в Proxmox VE, 3.6 out of 10 based on 66 ratings

Теги: ,

Ваш отзыв