Настройка 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
В моем случае я присвоил бриджовому интерфейсу 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
После этого ребутим машину и идем настраивать гостевую виртуальную машину.
Перед этим создаем сетевой интерфейс для нашей машины модели 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 сервер на ноде, но у меня буквально несколько машинок, т.ч мне проще прописать руками.
Настройка NAT для виртуальных машин в Proxmox VE,Теги: kvm, виртуализация