объединить 2 виртуалки двух хостов в Хетзнер
-
Всем привет!
Имею 2 VDS на Хетзнере. На обеих стоят виртуальные машины (на promox). Виртуалки убунту 20.04. Два хоста соединены между собой через vswith. Между ними соединение имеется. Нужно через них соединить виртуалки. Если тупо на виртуалках создать vlan, то связь между машинами есть, но хетзнер ругается на левые Мак-адреса виртуалок, т.е. в сети должны быть только мак-адреса хостов. Соединение должно идти через хосты.
Настройки хостов:
1.source /etc/network/interfaces.d/* auto lo iface lo inet loopback iface lo inet6 loopback auto enp0s31f6 iface enp0s31f6 inet static - внешка address 42.4.96.45 netmask 255.255.255.224 pointopoint 42.4.96.33 gateway 42.4.96.33 # route 42.4.96.32/27 via 42.4.96.33 # up route add -net 42.4.96.32 netmask 255.255.255.224 gw 42.4.96.33 dev enp0s31f6 iface enp0s31f6.4000 inet manual - wswitch auto vmbr4000 iface vmbr4000 inet manual bridge-ports enp0s31f6.4000 bridge-stp off bridge-fd 0 mtu 1400 up ip addr add 192.168.100.3/24 dev vmbr4000 echo "1 vswitch" >> /etc/iproute2/rt_tables # post-up echo 1 > /proc/sys/net/ipv4/ip_forward # post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o enp0s31f6.4000 -j MASQUERADE # post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o enp0s31f6.4000 -j MASQUERADE iface enp0s31f6 inet6 static address 2a01:4f8:172:10de::2/64 gateway fe80::1 auto vmbr1 - сеть виртуальной машины iface vmbr1 inet static address 192.168.1.3/24 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.1.0/24' -o enp0s31f6 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o enp0s31f6 -j MASQUERADE
2 хост:auto lo iface lo inet loopback iface lo inet6 loopback auto enp0s31f6 iface enp0s31f6 inet static address 136.201.55.223 netmask 255.255.255.192 pointopoint 136.201.55.193 gateway 136.201.55.193 # route 136.201.55.192/26 via 136.201.55.193 # up route add -net 136.201.55.192 netmask 255.255.255.192 gw 136.201.55.193 dev enp0s31f6 iface enp0s31f6.4000 inet manual auto vmbr4000 iface vmbr4000 inet manual bridge-ports enp0s31f6.4000 bridge-stp off bridge-fd 0 mtu 1400 up ip addr add 192.168.100.2/24 dev vmbr4000 # post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o enp0s31f6 -j MASQUERADE # post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o enp0s31f6 -j MASQUERADE iface enp0s31f6 inet6 static address 2a01:4f8:172:10de::2/64 gateway fe80::1 auto vmbr1 iface vmbr1 inet static address 192.168.1.2/24 bridge-ports none bridge-stp off bridge-fd 0 #echo "1 vswitch" >> /etc/iproute2/rt_tables post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o enp0s31f6 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o enp0s31f6 -j MASQUERADE
Виртуалки имеют интернет через хост используя MASQUERADE - на сетевом интерфейсе не должно быть маков от виртуалок.
Адреса виртуалок примерно такие:
иnetwork: ethernets: ens18: addresses: - 192.168.1.47/24 gateway4: 192.168.1.3 nameservers: addresses: - 8.8.8.8 search: [] ens19: addresses: - 192.168.100.47/24 - если добавить такой интерфейс на обеих виртуалках, то все работает, но tcpdump обнаруживается мак виртуалок gateway4: 192.168.100.2 routes: - to: 192.168.100.0/24 via: 192.168.100.2 version: 2
# This is the network config written by 'subiquity' network: ethernets: ens18: addresses: - 192.168.1.139/24 gateway4: 192.168.1.2 nameservers: addresses: - 8.8.8.8 search: []
Пробовал примерно так на 1-м хосте:
И так на 2-м:-A POSTROUTING -s 192.168.1.47/24 -d 192.168.1.139/24 -o enp0s31f6.4000 -j MASQUERADE -A PREROUTING -i enp0s31f6.4000 -j DNAT --to 192.168.1.47
-A POSTROUTING -s 192.168.1.139/24 -d 192.168.1.47/24 -o enp0s31f6.4000 -j MASQUERADE -A PREROUTING -i enp0s31f6.4000 -j DNAT --to 192.168.1.139
Но естественно не сработало. Если на виртуалках добавить сеть 192.168.100.0, то они соединяются миную хост и на внешних интерфейсах появляется мак-адреса виртуалок. Подскажите пожалуйста как правильно настроить? Заранее благодарен! -
Нужно не сменить мак-адреса виртуалок, а маршрутизировать с виртуалок через хост. Так, как на интерфейсе разрешается только мак-сервера. А виртуалка и хост соединены по бриджу. Не будет же сети между двумя устройствами с одинаковым мак.
-
VadimAndy:ну что тут скажешь, это не панацея, но
nmap -v -A + контролить демонов
загуглить о смене mac-адресов в осях, где робишь (в данном случае)
Разрешен только 1 мак хоста. Если на виртуалку поставлю мак хоста между ними не будет сети