Cloud Init - Keine Option für SLAAC?

Vengance

Well-Known Member
May 21, 2016
270
11
58
33
Hallo,

Mir ist eben aufgefallen, dass ich in den Netzwerkeinstellungen via Cloud Init keine Option mehr für SLAAC habe.
Lediglich static sowie DHCP.

Für meinen Anwendungszweck benötige ich jedoch SLAAC, wenn ich alternativ DHCP auswähle, bleibt meine Debian 10 VM für 5min im Bootscreen stecken und wartet vermutlich auf eine DHCP Antwort.


Übersehe Ich hier etwas?


Grüße und danke
Ian
 
SLAAC wird nirgends in der cloud-init Doku erwähnt. Gerade nachgeschaut, es wird erst seit 19.4 unterstützt. Wobei sich die einzigen Referenzen im Changelog und im Code selbst finden, nichts in der Doku.
 
Richtig, ich konnte dazu auch nahezu keine Dokumentation finden.
Ist abzusehen, wann/ wie das implementiert wird?

Ich nutze SLAAC zur Autokonfioguration und bin dementsprechend darauf angewiesen.
 
Hmm, das ist ungünstig.
Wie machen das denn die anderen Nutzer? Ich kann mir nicht vorstellen, dass ich der erste bin, der cloud init sowie SLAAC nutzt.
 
Die meisten verwenden denke ich entweder static IP oder Ubuntu mit netplan. Netplan aktiviert SLAAC zusätzlich zu DHCP wenn man DHCP auswählt.
 
Ich nutze aktuell einen ziemlich unschönen Workoround.

Ich habe dennoch DHCP ausgewählt, denn nach Ablauf der 5min und fehlgeschlagenen DHCP Konfiguration/ NIC Konfiguration scheint Debian auf SLAAC umzuspringen, warum auch immer.
Ich habe diesen Timeout nun vorerst verringert.

Das ist meiner Ansicht nach recht unschön und es wäre prima, wenn bei nächster Gelegenheit der Support für SLAAC implementiert werden könnte.
Dann würde ich mir cloud-init unter Debian wieder manuell kompilieren.
 
Mit einer selbst kompilierten, neueren cloud-init Version gibt es, wie oben erwähnt, die Möglichkeit eine eigene Netzwerkconfig zu verwenden.
Als Basis kann man sich die generierte Config holen (qm cloudinit dump <vmid> network) und diese dementsprechend anpassen und dann als custom Config verwende. (Siehe Punkt 10.8.3 der Doku)
 
Das stimmt, ich wäre nur froh, wenn das nativ im UI verfügbar wäre, so müsste man weniger manuell rumbasteln :)

In eurer Doku wirdübrigens folgendes erwähnt:
For IPv6 the special string auto can be used to use stateless autoconfiguration.
 
Danke fürs finden. Ist ein Fehler in der Doku und wird ausgebessert.
 
@mira

Ich habe nun dutzende Stunden mit dem durchforsten der Cloud-Init sowie Proxmox Cloud-Init Sources verbracht.

Testweise habe ich die /usr/share/perl5/PVE/QemuServer/Cloudinit.pm etwas angepasst.
Um zu überprüfen ob das generell funktioniert, habe ich angepasst, dass beim Auswählen der DHCP Option im Webinterface nicht "dhcp6" in die Config geschrieben wird, sondern "ipv6_slaac".

Die in Debian vorhandene Cloud-Init Version kennt in der Tat die Option "ipv6_slaac" noch nicht, daher habe ich CloudInit anhand der Sources selber Kompiliert, was einfach und schnell geht.

Damit funktioniert es Problemlos,

Ich wäre daher sehr froh, wenn die Option SLAAC wieder im Webinterface aufgenommen werden würde.
Es muss dann lediglich - type: ipv6_slaac in die Cloud-Init config geschrieben werden.

So könnte der Nutzer dann selber entscheiden, ob der DHCP oder SLAAC nutzt.
Denn unter Debian ist DHCP keine Alternative für SLAAC, hier wartet Debian dann auf die Antwort eines DHCPv6 Servers, welche nie ankommt und dadurch die Netzwerkconfig fehlschlägt.

Sollten weitere Infos benötigt werden, kann ich diese gerne liefern, habe nun etliche Stunden mit dem Debugging verbracht :)



Durch Proxmox generierte Cloud-Init Konfiguration:
Code:
version: 1
config:
    - type: physical
      name: eth0
      mac_address: '6e:83:62:df:4b:c3'
      subnets:
      - type: dhcp4
      - type: ipv6_slaac
    - type: nameserver
      address:
      - '1.1.1.1'
      - '2606:4700:4700::1111'

Durch Cloud-Init Konfigurierte Netzwerkconfig:
Code:
auto lo
iface lo inet loopback
    dns-nameservers 1.1.1.1 2606:4700:4700::1111

auto eth0
iface eth0 inet dhcp

# control-alias eth0
iface eth0 inet6 auto
 
Danke fürs Testen. Derzeit ist das Feature ja leider noch undokumentiert und nur in wenigen Distributionen vorhanden. Ein Hinzufügen dieser Option im GUI würde nur zu Verwirrung führen da dieses in vielen Distributionen eben noch nicht funktioniert (z.B. Debian Buster, CentOS).
Es gibt, wie oben erwähnt [0] einen Workaround womit 'ipv6_slaac' genutzt werden kann. Dazu die Netzwerkkonfig dumpen und darauf basierend eine eigene erzeugen und diese als Snippet hinzufügen.

[0] https://forum.proxmox.com/threads/cloud-init-keine-option-für-slaac.68230/post-306218
 
Danke dir für deine Antwort.
Die Snipets sind für mich leider keine Option, da so die Einstellungen nichtmehr so bequem und einfach anpassbar wären, da ich bei den VMs regelmäßig gewisse Netzwerkeinstellungen durch Cloud-Init vornehme.

Ich habe bei Cloud-Init im Bugtracker bereits einen Issue aufgemacht, dass die Option derzeit nicht Dokumentiert ist.

Wäre es dennoch irgendwie möglich, das in halbwegs absehbarer Zeit nativ in das Interface zu implementieren?
Cloud-Init wird ja idr. eh nur von Nutzern mit entsprechenden Kenntnissen genutzt, man könnte ja dann in die Proxmox Doku aufnehmen, dass eine gewisse Cloud-Init Version erfordert wird.
Ubuntu bringt diese beispielsweise schon lange mit, in den Debian Backports ist diese auch schon vorhanden.
Und gerade bei Debian ist es ja empfehlenswert Cloud-Init sowieso manuell zu kompilieren, da die Version hier ziemlich alt ist.

Andernfalls müsste ich wohl manuell im Proxmox Source Coder umspielen, was mir eher unlieb wäre :D
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!