LINUX.ORG.RU

Избранные сообщения tarabukinivan

Как перенаправить трафик с виртуалки на виртуалку по vswith

Форум — Admin

Добрый день! Есть 2 VDS на Hetzner. На хостах стоит promox 6.4-13. Между хостами vswitch id4000. Настройки такие:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
  address 46.4.96.45
  netmask 255.255.255.224
  pointopoint 46.4.96.33
  gateway 46.4.96.33
  # route 46.4.96.32/27 via 46.4.96.33
#  up route add -net 46.4.96.32 netmask 255.255.255.224 gw 46.4.96.33 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.3/24 dev vmbr4000
  echo "1 vswitch" >> /etc/iproute2/rt_tables
  post-up echo 1 > /proc/sys/net/ipv4/ip_forward


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

и

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
  address 138.201.55.223
  netmask 255.255.255.192
  gateway 138.201.55.193
  # route 138.201.55.192/26 via 138.201.55.193
#  up route add -net 138.201.55.192 netmask 255.255.255.192 gw 138.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

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

У гостевых (ubuntu 20.04):

network:
  ethernets:
    ens18:
	  dhcp4: false
	  addresses:
	  - 192.168.1.46/24(192.168.1.138/24 - второй)
	  gateway4: 192.168.1.3(192.168.1.2)
  version: 2

На виртуалках стоят ноды. Пинги с хоста address 46.4.96.45 до 192.168.1.46(гостевой на том же хосте) и 192.168.100.2(локальный ip второго сервера) есть. Ноды имеют доступ к интернету (отключить нельзя), друг с другом должны соединиться по локалке. гостевые друг с другом должны соединиться через хосты. Пробовал просто добавить на гостевых такое:

  vlans:
    enp0s31f6.4000:
      id: 4000
      link: enp0s31f6
      mtu: 1400
      addresses:
        - 192.168.100.46/24 (192.168.100.138/24)

Но при такой конфигурации на интерфейсе хоста обнаруживается трафик с маком виртуалок, что показывает команда:

tcpdump -Q out -ni enp0s31f6 ether host not 90:1b:0e:8e:45:f8 and ether host not 90:1b:0e:8e:45:f8

Подскажите пожалуйста как конфигурировать сеть, чтобы гостевые видели друг друга и не было трафика с гостевыми мак адресами?

 

tarabukinivan ()