Static private IP mit cloud init auf Debian 12 in Hetzner cloud

Hallo zusammen,

Ich versuche aktuell ein Debian 12 in der Hetzner cloud mittels cloud-init vollständig zu initialisieren.
Die virtuelle Maschine hat keine öffentliche IP Adresse sondern befindet sich in einem privaten cloud Netzwerk und nutzt einen vorgeschalteten Reverse Proxy als Gateway.
Bei Hetzner gibt es zwar eine Beschreibung wie man das prinzipiell mit cloud-init machen kann. Leider funktioniert das aber nicht mit Debian 12:

Hat jemand eine Idee wie man das mit Debian 12 realisieren kann?

Gruß Heiko

Ich habe mich damit noch nicht weiter beschäftigt, bin dir also zunächst keine Hilfe. Ich hoffe du meintest einen Reverse Proxy als Gateway dafür das von außen Gäste auf diesen Server zugreifen können.

Ich folge dem Thema mal.

So nach einigem Testen habe ich es zumindest für den internen Server geschafft. Folgende cloud-init Konfiguration kann man nutzen:


#cloud-config
write_files:
  - path: /etc/network/interfaces.d/61-internal-network.cfg
    permisions: '0644'
    content: |
      auto enp7s0
      iface enp7s0 inet dhcp
        pointopoint 10.0.0.1
        post-up ip route add default via 10.0.0.1
        dns-nameservers 185.12.64.1 185.12.64.2
runcmd:
  - reboot

Voraussetzung ist, dass der gateway Routing und NAT aktiviert hat.
Also folgende Einstellungen für das Gateway/Router:


#cloud-config
# Einstellungen:
#   - Router mit NAT
write_files:
  - path: /etc/sysctl.d/61-routing.conf
    permissions: '0644'
    content: |
      # Routing IPv4 packets
      net.ipv4.ip_forward=1
package_update: true
package_upgrade: true
packages:
  - ufw
runcmd:
  - sed -i '10 i  #NAT table rules' /etc/ufw/before.rules
  - sed -i '11 i  *nat' /etc/ufw/before.rules
  - sed -i '12 i  :POSTROUTING ACCEPT [0:0]' /etc/ufw/before.rules
  - sed -i '13 i  # Forward traffic through eth0 - Change to match you out-interface' /etc/ufw/before.rules
  - sed -i '14 i  -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE' /etc/ufw/before.rules
  - sed -i '15 i  # don't delete the 'COMMIT' line or these nat table rules won't' /etc/ufw/before.rules
  - sed -i '16 i  # be processed' /etc/ufw/before.rules
  - sed -i '17 i  COMMIT' /etc/ufw/before.rules
  - sed -i -e 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw

Leider funktioniert das noch nicht ganz. Der Eintrag in die /etc/default/ufw wird vorgenommen. Allerdings nicht der Eintrag in die /etc/ufw/before.rules
Hat jemand eine Idee?