объединить 2 виртуалки двух хостов в Хетзнер

  • tarabukinivan 29.12.2021
    Всем привет!
    Имею 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, то они соединяются миную хост и на внешних интерфейсах появляется мак-адреса виртуалок. Подскажите пожалуйста как правильно настроить? Заранее благодарен!
  • VadimAndyVadimAndy 29.12.2021
    ну что тут скажешь, это не панацея, но
    nmap -v -A + контролить демонов
    загуглить о смене mac-адресов в осях, где робишь (в данном случае)
  • tarabukinivan 30.12.2021
    Нужно не сменить мак-адреса виртуалок, а маршрутизировать с виртуалок через хост. Так, как на интерфейсе разрешается только мак-сервера. А виртуалка и хост соединены по бриджу. Не будет же сети между двумя устройствами с одинаковым мак.
  • VadimAndyVadimAndy 30.12.2021
    вот ссылка (https://www.dmosk.ru/instruktions.php?object=iptables-settings)
  • tarabukinivan 01.01.2022
    VadimAndy:
    ну что тут скажешь, это не панацея, но
    nmap -v -A + контролить демонов
    загуглить о смене mac-адресов в осях, где робишь (в данном случае)

    Разрешен только 1 мак хоста. Если на виртуалку поставлю мак хоста между ними не будет сети
  • VadimAndyVadimAndy 01.01.2022
    Зайти тебе стоит сюда и почитать про твои мак адроеса (https://sysadmins.ru/topic520013.html)

    Как объясняют выше, это - не баг, а фича и у тебя должен быть список валидных мак-адресов от любимого тобою хетцнера. Удачи!
  • VadimAndyVadimAndy 01.01.2022
    и тут глянь еще (https://debianforum.ru/index.php?topic=16866.0)