Korrekte Änderungsschritte für das Standardnetzwerksegment von Docker

Korrekte Änderungsschritte für das Standardnetzwerksegment von Docker

Hintergrund

Ein Kollege arbeitet an seinem Sicherheitsprojekt und muss seine Geheimwaffe auf einem AWS-Server bereitstellen. Die Geheimwaffe wird über Docker bereitgestellt. Vor der Bereitstellung kann der Server über das Intranet und Extranet SSH des Jump-Servers angemeldet werden. Nach der Bereitstellung kann der Server nur über das Extranet SSH angemeldet werden.......; die Symptome sind genau so, wie das Medikament verschrieben wird, hängt von den medizinischen Fähigkeiten ab.....

Überprüfen Sie Ihre Herzreise

1. Vor dem Einsatz der Geheimwaffe kann sie im internen und externen Netzwerk verwendet werden; nach dem Einsatz kann sie nur im externen Netzwerk verwendet werden. Wenn man sich dieses Symptom ansieht, handelt es sich um ein Problem mit der Netzwerk-Firewall, also ~~~

1) iptables -F

2) setenforce 0

3) Stellen Sie bei AWS die Sicherheitsgruppe dieses Servers auf Inbound 0.0.0.0 ein (dies dient nur zu Testzwecken, tun Sie es nicht in einer formellen Umgebung~~~)

2. Liegt der SSH-Fehler daran, dass die SSH-Konfigurationsdatei geändert wurde? Da der Port geändert wurde, gibt es in der SSH-Konfigurationsdatei eine Konfiguration, die steuert, ob sich interne und externe Netzwerke anmelden können? Also~~~

vim /etc/ssh/sshd_config und nehme ein paar zufällige Änderungen vor (das zeigt, dass ich nicht genug über SSH weiß und mit den Konfigurationsdateien nicht vertraut bin, also muss ich das lernen)

3. Was zur Hölle ist das? Das Netzwerk ist in Ordnung und die Sicherheitsgruppe ist in Ordnung. Aus irgendeinem Grund dachte ich ans Routing. Ich habe route -n verwendet, um nachzusehen. Wow, so viele Routen. Als ich diese Routen sah, war eine davon 172.29.0.0 (das Netzwerksegment unseres Jump-Servers ist diesem sehr ähnlich). Ich hatte das vage Gefühl, dass hier ein Problem vorliegt (die Intuition einer Frau wird nicht nur verwendet, um zu beurteilen, ob ihr Freund draußen einen Hund hat, sondern auch, ob er sie liebt; ihre Intuition ist hier immer noch ziemlich genau, haha); also ~~~

 Route -n
 route del -net 172.22.32.0 Netzmaske 255.255.255.0
 route del -net 172.23.32.0 Netzmaske 255.255.255.0
 ......

Solange alle mit dem Container verbundenen Routen beendet werden und dann vom Jump-Server aus eine SSH-Verbindung zum Intranet hergestellt wird, wow~~~wow~~~es funktioniert, so aufregend~~~~

4. Es wurde bestätigt, dass es sich um das Problem dieser Route handelte. Das von diesem Container zugewiesene Netzwerksegment stand in Konflikt mit dem Netzwerksegment des Jump-Servers, also ~~~~

 route add -net 172.22.32.0 Netzmaske 255.255.255.0
 ......

Fügen Sie alle Routen hinzu, die Sie gerade gelöscht haben, außer der, die Konflikte verursacht. Jetzt ist es an der Zeit, dieses Problem zu lösen.

Die damalige Lösung

Nachdem ich darüber nachgedacht habe, muss ich, da ein Konflikt besteht, das Netzwerksegment dieses Containers ändern. Wie ändere ich das? Ich habe eine äußerst dumme Methode verwendet. Ich habe diesen Container angehalten und gelöscht und ihn mit Docker-Compose neu gestartet. Es wurde ein neues Netzwerksegment neu zugewiesen und es gab keinen Konflikt.

Grundlegende Lösung

Ändern Sie vor dem Starten des Containers das gesamte Docker-Netzwerk in ein Netzwerk, das nicht mit Ihrem eigenen Netzwerksegment in Konflikt steht, sodass Docker immer nur das von uns festgelegte Netzwerksegment zuweist.

Arbeitsschritte: Ändern Sie docker.json, um das Netzwerksegment des gesamten Dockers zu ändern. Das ursprüngliche Netzwerksegment war 172, und jetzt möchte ich es auf 192 ändern

1) vim /etc/docker/daemon.json (wenn diese Datei nicht existiert, erstellen Sie sie selbst)

{
 "bip":"192.168.0.1/24"
}

2) Docker neu starten

systemctl Neustart Docker

3) Überprüfen Sie das Netzwerksegment erneut

Hinweis: Sie sollten dies bedenken, wenn Sie zum ersten Mal planen, den Docker-Container zu verwenden, und planen, welches Netzwerksegment verwendet werden soll. Die obige Methode erfordert einen Neustart von Docker und des Containers.

zweifeln

Gibt es eine bessere Möglichkeit, das Netzwerksegment zu ändern, ohne den Container anzuhalten oder zu löschen? (Ich werde mehr hinzufügen, nachdem ich meine Recherche abgeschlossen habe)

Zusammenfassen

1: Ich kenne mich mit der SSH-Konfigurationsdatei nicht aus (ich muss sie irgendwann einmal systematisch durchgehen)

2: Machen Sie sich mit dem Netzwerk vertraut, insbesondere mit dem Routing. Ehrlich gesagt kann ich die spezifische Rolle des Routings immer noch nicht erklären. Ich kann es nur intuitiv verstehen. Ich weiß nur, dass ich nicht darauf verzichten kann (nachdem ich in dieser Zeit die PMP-Prüfung abgeschlossen habe, werde ich anfangen, diese Bücher über Cisco zu lesen. Ich werde nicht über die Zertifizierung sprechen, aber ich werde diese Bücher zuerst sorgfältig lesen, um mein Netzwerk zu stärken).

3: Nicht vertraut mit dem Docker-Netzwerkmodus (lesen Sie in der nächsten Zeit sorgfältig die offizielle Dokumentation des Docker-Netzwerks)

Das ist alles für diesen Artikel. Ich hoffe, dass der Inhalt dieses Artikels für Ihr Studium oder Ihre Arbeit von gewissem Referenzwert ist. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So ändern Sie das Standardnetzwerksegment der Docker0-Brücke in Docker
  • Detaillierte Erläuterung der Docker-Container-Cross-Host-Multi-Netzwerksegment-Kommunikationslösung
  • Docker realisiert die Verbindung mit demselben IP-Netzwerksegment
  • Docker gibt eine IP-Adresse an, die sich im selben Netzwerksegment wie der Host befindet.
  • Wie weist Docker die IP des Host-Netzwerksegments zu?
  • Docker-Container gibt eine feste IP/statische IP-Adresse in einem benutzerdefinierten Netzwerksegment an
  • Analyse der Implementierungsmethode zum Ändern des Standardnetzwerksegments von Docker

<<:  Detaillierter Installationsprozess und Konfiguration von mysql5.7.19 zip

>>:  Implementierungsbeispiel zum Hochladen mehrerer Anhänge in Vue

Artikel empfehlen

Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux

Das Projekt interagiert mit dem Server, greift üb...

Zusammenfassung der Verwendung von setTimeout() in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Der Unterschi...

SQL-Fuzzy-Abfragebericht: ORA-00909: Lösung: Ungültige Anzahl von Parametern

Bei Verwendung einer Oracle-Datenbank für Fuzzy-A...

So richten Sie die Verwendung der chinesischen Eingabemethode in Ubuntu 18.04 ein

In der neuesten Version von Ubuntu müssen Benutze...

Detaillierte Erklärung des JS-Speicherplatzes

Inhaltsverzeichnis Überblick 1. Stapeln und Aufhä...

Native JS realisiert einheitliche Bewegungen verschiedener Sportarten

In diesem Artikel wird eine einheitliche Bewegung...

Bedingte Kommentare zur Bestimmung des Browsers (IE-Reihe)

<!--[if IE 6]> Nur IE6 kann erkennen <![e...