it-swarm.com.de

LXD Container Set statische IP

Es gab viele Fragen und Fäden zu diesem Thema, aber keine davon löst mein Problem.

Ich möchte einem bestimmten Container eine bestimmte IP zuweisen, OHNE sie im Container zu konfigurieren. Ziel ist es, den Container an eine bestimmte IP-Adresse zu binden.

  • Die Container KÖNNEN aufgrund von IP-/Paket-Spoofing nicht dieselbe Bridge wie die Schnittstelle verwenden.

  • Es gibt 2 öffentliche IPs, die auf meinen Host-Server zeigen. Der erste sollte beim Host bleiben, der zweite bei einem bestimmten Container.

1. Versuchen Sie: Verwenden der LXD-Brücke

Wenn ich die LXD-Brücke verwende, kann ich jedem Container eine feste IP-Adresse aus dem LXD-Brückennetz zuweisen (das heißt: Die LXD-Brücke erstellt ein privates Netzwerk mit einem IP-Bereich, der NICHT öffentlich ist, auf den aber vom Host-Server zugegriffen werden kann).

Mein Host-System hat Zugriff auf das private lxd-Netzwerk und das öffentliche Netzwerk. Jetzt konnte ich (auf dem Host-System) eine öffentliche IP-Adresse an eine private IP-Adresse und damit an einen bestimmten Container weiterleiten, aber ich habe keinen Weg gefunden, dies zu tun, da der eingehende Datenverkehr von der öffentlichen IP-Adresse an die private IP-Adresse und weitergeleitet werden muss der ausgehende Verkehr von der privaten zur öffentlichen IP.

2. Versuch: Erstellen einer Netzwerkschnittstelle für jede IP und Zuweisen der spezifischen Schnittstelle zum Container

Da dies viel komplizierter ist (und ich bin ein Neuling in Linux), habe ich versucht, den Anweisungen von https://lists.linuxcontainers.org/pipermail/lxc-users/2016-March/011271) zu folgen. html

Aber es hat nicht geklappt.

Ich würde mit dem ersten Versuch gehen, weil es arbeiten sollte, wenn ich die IP zu einander verlegen kann, aber ich weiß nicht wie.

EDIT

Ich habe gerade diese Antwort gesehen Wie kann ich einen LXD-Gast auf die Verwendung einer einzelnen öffentlichen IP-Adresse beschränken?

Scheint, als könnte das funktionieren. Kann es im Moment nicht testen, da mein Heimrouter den Geräten keine freien IP-Adressen zuweisen kann.

3
SEUH

Die Lösung besteht darin, mehrere überbrückte Schnittstellen auf Ihrem Host-Computer zu erstellen und dann eine Brücke einem Container zuzuweisen.

Dies ist ein perfektes Tutorial: https://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_aus_Subnetz/en

1
SEUH
  1. konfigurieren Sie die Standard-LXD-Bridge

  2. erstelle eine Datei / etc/default/lxd-static-ip.conf mit 1 Zeile pro Host als:

    dhcp-Host=<containername>,<static-ipaddress>
    
  3. edit / etc/default/lxd-bridge, setze LXD_CONFILE Variable auf:

    LXD_CONFILE="/etc/default/lxd-static-ip.conf"
    
  4. starten Sie lxd-bridge neu (z. B. systemctl restart lxd-bridge), starten Sie Ihre Container neu

1