Что имеем:
- Сервер с установленным Proxmox (далее
P);
- На сервере
P создано 3 виртуальные машины (далее
VM1,
VM2,
VM3);
- Провайдер выделил подсеть с внешними IP(11 шт);
Шлюз по умолчанию: X.X.X.193
Маска подсети: 255.255.255.240
Широковещательный адрес: X.X.X.207
Адрес подсети: X.X.X.192/28
- Начальная схема IP по серверам:
P -> X.X.X.194
VM1 -> X.X.X.200
VM2 -> X.X.X.199
VM3 -> X.X.X.198
Задача:
1. Выделить каждому серверу IP по схеме выше;
2. Каждая из VM должна иметь доступ в интернет под своим IP, а так же видна в интернете под своим же IP.
При этом должна быть "опция" для каждой VM для запрета доступа всем "извне".
3. Связать
VM1 и
VM3 в локальную сеть.
Т.е. нужна "опция", чтобы любые VM можно было объединять в одну сеть.
Суть проблемы:
Не получается правильно реализовать 3 пункт задачи...
Ниже приведу примеры конфигов на серверах для решения первых двух пунктов...но понимаю, что пошёл немного не правильным путём из-за наличия 3 пункта задачи...
P - сервер:
/etc/netwotk/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address X.X.X.194/28
gateway X.X.X.193
bridge-ports eth0
bridge-stp off
bridge-fd 0
На кажой из
VM(1, 2, 3) такие сетевые настройки:
address <ТУТ_IP_ДЛЯ_КАЖДОЙ_VM_ПО_СХЕМЕ_ИЗ_ЗАДАЧИ>/28
gateway X.X.X.193
netmask 255.255.255.240
Направьте в какую сторону смотреть?
UPD:
Вот конфиг при котором вроде как локальная сеть есть...но когда пингую машины между собой, то пинг 0.2...будто по инету пакеты идут...
P - сервер:
/etc/netwotk/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address X.X.X.194/28
gateway X.X.X.193
bridge-ports eth0
bridge-stp off
bridge-fd 0
dns-nameservers X.X.X.X X.X.X.X
bridge_maxwait 0
pre-up brctl addbr vmbr0
up ip route add X.X.X.198/32 dev vmbr0
up ip route add X.X.X.200/32 dev vmbr0
pointopoint X.X.X.193
auto vmbr1
iface vmbr1 inet static
address 10.20.30.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
post-up iptables -I FORWARD -s '10.20.30.0/24' -j ACCEPT
post-up iptables -t nat -I POSTROUTING -s '10.20.30.0/24' -o vmbr1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.20.30.0/24' -o vmbr1 -j MASQUERADE
Настройки сети на каждой из VM, например в ОС Debian:
allow-hotplug ens18
iface ens18 inet static
address <ТУТ_IP_ДЛЯ_КАЖДОЙ_VM_ПО_СХЕМЕ_ИЗ_ЗАДАЧИ>
gateway X.X.X.193
netmask 255.255.255.240
dns-nameservers X.X.X.X X.X.X.X
post-up ip route add X.X.X.194 dev ens18
post-up ip route add default via X.X.X.194 dev ens18
pre-down ip route del default via X.X.X.194 dev ens18
pre-down ip route del X.X.X.194 dev ens18
auto ens19
iface ens19 inet static
address 10.20.30.2
netmask 255.255.255.0
UPD2:
При такой настройке, как я понимаю, хост сервер (P) должен быть связан локально со всеми VM...и в обе стороны должна быть локальная связь...так же?
Вот какие данные на сервере
P:
root:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default X.X.X.193 0.0.0.0 UG 0 0 0 vmbr0
10.20.30.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr1
X.X.X.192 0.0.0.0 255.255.255.240 U 0 0 0 vmbr0
root:~# traceroute 10.20.30.2
traceroute to 10.20.30.2 (10.20.30.2), 30 hops max, 60 byte packets
1 10.20.30.2 (10.20.30.2) 0.222 ms 0.200 ms 0.191 ms
Вот на одной из VM:
root:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default X.X.X.193 0.0.0.0 UG 0 0 0 ens18
10.20.30.0 0.0.0.0 255.255.255.0 U 0 0 0 ens19
localnet 0.0.0.0 255.255.255.240 U 0 0 0 ens18
X.X.X.194 0.0.0.0 255.255.255.255 UH 0 0 0 ens18
root@pg:~# traceroute 10.20.30.1
traceroute to 10.20.30.1 (10.20.30.1), 30 hops max, 60 byte packets
1 10.20.30.1 (10.20.30.1) 0.275 ms 0.251 ms 0.246 ms