Eu tenho um servidor Ubuntu 22.04 dedicado na Hetzner rodando KVM. Atribuí endereços IP de uma sub-rede adicional às VMs convidadas. Posso acessar as VMs convidadas por meio de seus endereços IP públicos conforme pretendido.
Recebi um e-mail da Hetzner dizendo que estou usando endereços Mac "não permitidos" e ameaçando bloquear o servidor. Os endereços MAC "não permitidos" pertencem às VMs convidadas. O suporte da Hetzner diz "Você deve ter certeza de que nenhum endereço MAC de suas VMs ficará visível com o uplink público em seu dispositivo de rede." Alguém sabe como cumprir as regras de rede da Hetzner? Aqui está minha configuração:
- SERVIDOR FÍSICO
$ sudo cat /etc/netplan/01-netcfg.yaml
### Hetzner Online GmbH installimage
network:
version: 2
renderer: networkd
ethernets:
enp98s0f0:
match:
macaddress: xx:xx:xx:xx:xx:fa
dhcp4: no
dhcp6: no
bridges:
br0:
macaddress: xx:xx:xx:xx:xx:fa
interfaces:
- enp98s0f0
dhcp4: no
dhcp6: no
addresses:
- aa.bb.cc.108/32 # Physical NIC (Main IP)
- aa.bb.cc.65/28 # First usable IP of the additional subnet
routes:
- to: 0.0.0.0/0
via: aa.bb.cc.105 # Gateway for Main IP on physical NIC
on-link: true
- to: aa.bb.cc.64/28 # Additional subnet
via: aa.bb.cc.65 # First usable IP of the additional subnet assigned to physical NIC above
on-link: true
nameservers:
addresses:
- 185.12.64.2
- 185.12.64.1
parameters:
stp: false
forward-delay: 0
$ cat /etc/sysctl.d/10-forwarding.conf
net.ipv4.ip_forward=1
#net.ipv4.conf.enp98s0f0.send_redirects=0
net.ipv4.conf.all.proxy_arp=1
net.ipv4.conf.all.forwarding=1
$ cat br0.xml
<network>
<name>br0</name>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
- VM CONVIDADA
$ sudo cat /etc/netplan/01-netcfg.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp1s0:
addresses:
- aa.bb.cc.67/28 # Additional subnet
nameservers:
addresses:
- 185.12.64.2
- 185.12.64.1
search: []
routes:
- to: default
via: aa.bb.cc.65 # First usable IP of the additional subnet assigned to physical NIC
version: 2
Resolvi isso com ebtables (ferramenta de filtragem de camada 2) para garantir que todo o tráfego de saída das VMs convidadas pareça vir do endereço MAC da NIC física do host. Também desativei o Proxy ARP.
A regra ebtables não sobreviverá a uma reinicialização. Eu configurei um serviço systemd para aplicá-los na inicialização.
Espero que isso ajude alguém.