tarabukinivan Posted December 29, 2021 (edited) · Report post Всем привет! Имею 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-м хосте: -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 И так на 2-м: -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, то они соединяются миную хост и на внешних интерфейсах появляется мак-адреса виртуалок. Подскажите пожалуйста как правильно настроить? Заранее благодарен! Edited December 29, 2021 by tarabukinivan Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MMM Posted December 29, 2021 · Report post Решали подобную задачу через wireguard, гигабит прокачивает спокойно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tarabukinivan Posted December 29, 2021 · Report post спасибо почитаю. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted January 4, 2022 · Report post Обычно, если есть виртуализация, поднимаются на обоих хостах виртуальные роутеры, хоть Mikrotik CHR. Физический порт отдается в отдельный виртуальный свитч только для виртуального роутера (хоста в нём не будет), и делается еще один виртуальный свитч без физических портов, в котором торчат и хост, и второй адаптер роутера, и виртуалки. Между роутерами промежуточная сеть, все работает через L3, NAT не нужен. Однако, если реально надо прокачивать в скорость физического порта, то решение не подойдет, выжимать удается процентов 80 в лучшем случае - издержки виртуализации. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...