Wenn Sie mit einer Frage konfrontiert sind und eine große Menge an Dokumentation durchsehen, versuchen Sie, das, was Sie gelernt haben, zu systematisieren und aufzuschreiben, um es besser zu behalten. Erstellen Sie auch eine Anleitung zu dieser Frage, damit Sie nicht den gesamten Weg erneut durchlaufen müssen.
Die ursprüngliche Dokumentation ist in großen Mengen verfügbar auf
Aufgabenstellung
Der Kunde möchte mehrere gemietete Server in einem Netzwerk bündeln, um die Notwendigkeit zu beseitigen, für mehrere zusätzliche Subnetze zu zahlen, und alles hinter dem Router anzuschließen, ihnen interne lokale Adressen zuzuweisen und sich mit einer Firewall zu schützen. Damit der gesamte Dienstverkehr innerhalb des VLANs bleibt. Außerdem sollen die virtuellen Maschinen von einem alten Server auf einen neuen umgezogen werden, und der alte soll abgeschaltet, die verwendete alte Hardware aufgerüstet und gleichzeitig auf Proxmox aktualisiert werden.
Ursprünglich hat der Kunde 5 Server, von denen jeder ein zusätzliches Subnetz hat, wobei die erste Adresse aus dem bereitgestellten Subnetz einem zusätzlichen Bridge auf Proxmox zugewiesen ist.

Die VMs laufen unter Windows und haben die Adresse 85.x.x.177/29 mit dem Gateway 85.x.x.176 konfiguriert.
Und auf ähnliche Weise sind alle 5 Server mit ihren virtuellen Maschinen konfiguriert.
Es ist interessant, dass diese Konfiguration in der Netzwerkeinrichtung grundsätzlich fehlerhaft ist, da die Netzwerkadresse für den ersten Knoten und gleichzeitig für das Gateway verwendet wird. Wenn man versucht, eine solche Konfiguration in einer virtuellen Maschine unter Ubuntu anzulegen, funktioniert das Netzwerk nicht.
Implementierung
- Wir erstellen einen vSwitch im Interface, weisen ihm eine VlanID zu und fügen diesen vSwitch allen benötigten Servern hinzu.

- Wir erstellen einen Testserver, um ohne Probleme konfigurieren und umziehen zu können.
Wir starten die erste virtuelle Maschine chr nach .
Wenn Sie das bereitgestellte Skript verwenden, beachten Sie bitte, dass zu Beginn geprüft wird, ob das Verzeichnis -d /root/temp vorhanden ist, und falls nicht, wird das Verzeichnis /home/root/temp erstellt. Die weitere Arbeit erfolgt jedoch trotzdem mit dem Verzeichnis /root/temp. Das Skript muss angepasst werden, um das entsprechende Verzeichnis zu erstellen.
- Wir konfigurieren das Netzwerk für Proxmox.

Wir fügen ein Subinterface mit der VLAN-Nummer hinzu und geben an, dass die Adresskonfiguration auf den Brücken unter Verwendung von inet manual erfolgt. WICHTIG: IP-Adressen dürfen nicht auf den Interfaces konfiguriert werden, die Sie anschließend in einen Bridge einfügen werden, wie das funktionieren wird und ob es überhaupt funktioniert, ist niemandem bekannt.
Wir erstellen als Nächstes den Bridge vmbr0 und hängen die erste Adresse des Servers, die uns von unserem Anbieter Hetzner zugewiesen wurde, daran. Wir geben den Port des Bridges an – den ersten physischen Interface ohne VLAN. Zusätzlich geben wir mit einem weiteren Befehl die Route zu unserem zusätzlichen Netzwerk an, das wir bei Hetzner für diesen Server über diesen Bridge bestellt haben. Die Routenanpassung erfolgt, wenn das Interface hochgefahren wird.
Der zweite Bridge ist das Interface für den lokalen Traffic. Wir fügen ihm eine Adresse hinzu, um die Konnektivität zwischen verschiedenen Proxmox-Servern im lokalen Netzwerk ohne Internetzugang sicherzustellen und geben den Port als Subinterface eno1.4000 an, das für unsere VLAN-ID reserviert ist.
Bei der anfänglichen Konfiguration stößt man auf Ratschläge, dass man zusätzlich das Paket ifupdown2 für Proxmox installieren kann und bei Änderungen der Netzwerkschnittstellen den Server nicht komplett neu starten muss. Dies ist jedoch nur für die Erstkonfiguration typisch. Bei der Verwendung von Bridges und der Konfiguration virtueller Maschinen trifft man auf Probleme mit dem Netzwerkversagen in den virtuellen Maschinen. Beispielsweise haben Sie das Interface vmbr2 bearbeitet, doch bei der Anwendung der Konfiguration bricht das Netzwerk auf allen internen Interfaces zusammen und lässt sich erst nach einem kompletten Neustart des Servers wiederherstellen. ifdown && ifup helfen nicht. Falls jemand eine Lösung hat, wäre ich dankbar.
Das erste konfigurierte Interface auf dem Server bleibt funktionsfähig und erreichbar.
Zuweisung einer Adresse für CHR, um Adressen aus dem Pool nicht zu verlieren.
Der Adresspool, den Hetzner bereitstellt, sieht für Netzwerkadministratoren recht seltsam aus, ungefähr so:
Die Auffälligkeit besteht darin, dass als Gateway die eigene Adresse des physischen Servers vorgeschlagen wird.
Die klassische Variante, die von Hetzner selbst angeboten wird, ist in der Aufgabenstellung angegeben und wurde vom Kunden selbstständig umgesetzt. In diesem Fall verliert der Kunde die erste Adresse für das Netzwerk, die zweite Adresse für den Bridge Proxmox, die auch das Gateway sein wird, und die letzte Adresse ist für das Broadcast. IPv4-Adressen sind nie überflüssig. Wenn Sie jedoch direkt versuchen, auf CHR die IP-Adresse 136.x.x.177/29 und das Gateway für 0.0.0.0/0 148.x.x.165 einzutragen, können Sie dies tun, jedoch wird das Gateway nicht direkt verbunden und daher nicht erreichbar sein.

Man kann die Situation lösen, wenn man für jede Adresse ein 32 Netzwerk verwendet und als Netzwerkname die benötigte Adresse angibt, die beliebig sein kann. Das entspricht einem Punkt-zu-Punkt-Verbindung.

In diesem Fall wird das Gateway natürlich verfügbar sein, und alles wird so funktionieren, wie wir es brauchen.
Bitte beachten Sie, dass in einer solchen Konfiguration das SRC-NAT-Masquerade-Regel nicht empfohlen wird, da die Ausgangsadresse unbestimmt unterschiedlich sein wird. Es ist besser, action: src-NAT und die spezifische Adresse anzugeben, von der Sie den Client herauslassen werden.
- Nun, und schließlich.
Um den Zugriff auf Proxmox aus dem Internet zu blockieren, verwenden Sie die integrierten Mittel: es gibt eine hervorragende Firewall.

Es ist nicht ratsam, die von Hetzner angebotene Firewall zu verwenden, um sich nicht in der Standortkonfiguration zu verlieren. Auch Hetzner wird auf alle Netzwerke wirken, einschließlich derjenigen, die auf CHR eingerichtet sind, und zum Öffnen und Weiterleiten von Ports müssen Sie auch im Web-Interface des Anbieters weitere Einstellungen vornehmen.
Quelle: habr.com

