Monitoringsysteme mit Docker - Leischner

Praktikumsblatt 2 - Docker + IPv6

 

Aufgabe 1 - Installation Docker

  1. Installieren Sie auf Ihrem Server moni21 Docker in einer Version größer gleich 20.10.8. Nehmen Sie den User unter dem Sie arbeiten in die Gruppe docker auf, so dass Sie das Kommando docker ps ohne sudo ausführen können.
  2. Starten Sie einen Container mit dem Namen miniwhoami_6210 aus dem Image jennerwein/miniwhoami am Port 6210 Ihres Servers moni21. Greifen Sie mit einem Browser über IPv6 auf diesen Container zu.
    Fragen:
    • Wo finden Sie das Image jennerwein/miniwhoami ?
    • Kann man dem Image jennerwein/miniwhoami vertrauen?
    • Welchen Befehl verwenden Sie zum Start des Containers miniwhoami_6210 ?
    • Warum wird beim Aufruf von miniwhoami im Browser keine IPv6-Adresse angezeigt?
    • Warum kann über IPv6 auf den Container zugegriffen werden?
    • Gehen Sie mit der Shell /bin/sh in den Container miniwhoami . Mit welchem Kommando haben Sie das gemacht?
    • Sehen Sie sich im Container miniwhoami mit dem Befehl ip a die Interfaces an und interpretieren Sie das Ergebnis.

Meine Lösung:

 

Aufgabe 2 - Installation Docker Compose

  1. Installieren Sie auf Ihrem Server moni21 Docker-Compose in einer Version größer gleich 1.29.2.
  2. Testen Sie die von Ihnen installierte Version mit docker-compose -v. Was ist das konkrete Ergebnis dieses Kommandos? Warum kann das explizite Nachprüfen der installierten Version von Docker-Compose sinnvoll sein?

 

Aufgabe 3 - Docker IPv6-Aktivierung

  1. Aktivieren Sie für Ihre Dockerinstallation IPv6, indem Sie die Datei /etc/docker/daemon.json anlegen und in geeigneter Weise konfigurieren. Übergeben Sie in der Variablen "fixed-cidr-v6" dem Dockerdämon ein /80 Subnetz aus dem Ihnen zugeteilten /78 IPv6-Subnetz. Überprüfen Sie den Status Ihre bridge mit docker network inspect bridge.
  2. Starten Sie einen Container miniwhoami_6231 mit dem Namen miniwhoami_6231 aus dem Image jennerwein/miniwhoami am Port 6231 Ihres Servers moni21 . Greifen Sie mit einem Browser über IPv6 auf diesen Container zu.
    Fragen:
    • Welche IPv6-Adresse wird Ihnen beim Aufruf von miniwhoami_6231 im Browser angezeigt? Welches Interface besitzt diese IPv6-Adresse. Wie ist diese Adresse gebildet?
    • Von wo aus ist der Container miniwhoami_6231 über diese IPv6-Adresse erreichbar? Welche IPv6-Addressen können von miniwhoami_6231 aus erreicht werden?
    • Überprüfen Sie im Container miniwhoami_6231 mit ip -6 r die Routingtabelle. Wird das /80 IPv6-Subnetz richtig geroutet?
    • Welche Voraussetzung müssen gegeben sein, damit der Container miniwhoami_6231 über seine IPv6-Adresse von außen erreichbar ist?

Meine Lösung:

 

Aufgabe 4 - Docker IPv6-NDP

Damit auf Ihre Container über IPv6 zugegriffen werden kann, muss das IPv6-Interface des Servers moni21 als NDP-Proxy fungieren. Nur so ist die Auflösung der IPv6-Adresse eines Containers hinter dem IPv6-Interface möglich. Der Proxy wickelt also das NDP-Protokoll nach außen für die Container hinter dem IPv6-Interface ab.

  1. Manuelle Konfiguration der NDP-Funktion:
    Schalten Sie zunächst mit sysctl net.ipv6.conf.ens??.proxy_ndp=1 für das richtige Interface die NDP-Proxy-Funktion ein. Konfigurieren Sie mit ip -6 neigh add ...  die IPv6-Adresse für die die NDP-Proxy-Funktion gelten soll. Wie lautet in Ihrem Fall das Kommando im Detail? Testen Sie die NDP-Funktionalität, indem Sie ein ping von außen auf die IPv6-Adresse des miniwhoami_6231 Containers machen (siehe 3b).
  2. Installation eines NDP-Proxies:
    Der NDP Proxy Daemon ndppd (siehe GIT) wird auch über das Ubuntu-Repo bereitgestellt. Installation mit apt install ndppd. Ein Vorlage für die benötigte Konfigurationsdatei /etc/ndppd.conf haben Sie in der Datei /usr/share/doc/ndppd/ndppd.conf-dist . Sie müssen nur das Interface und die Regel rule 1111:: für das Subnetz anpassen. Konkret müssen Sie 1111:: durch Ihr Subnetz ersetzen (genauer: durch die Subnetze ersetzen, für das Sie die NDP-Funktion wünschen). Der Autostart von ndppd war bei mir schon aktiviert; sonst aktivieren Sie ihn über systemctl.

 

Aufgabe 5 - Zusätzliches IPv6-Subnetz

Richten Sie in dem Ihnen zugewiesenen Adressraum 2001:638:408:200:FC??::/78 ein öffentliches IPv6-Docker-Subnetz my_IPv6 ein. Dieses Subnetz können Sie für dedizierte öffentliche IPv6-Server mit statischen IPv6-Adressen verwenden. Frage:

  • Welche Größe /? sollte für dieses Netz gewählt werden? Diskutieren Sie verschiedene Alternativen.
  • Welches öffentliche IPv6-Subnetz wählen Sie konkret für my_IPv6? Wie lautet Ihr Kommando zur Netzgenerierung?

 

Aufgabe 6 - IPv6-Service

  1. Starten Sie einen Container miniwhoami_6261 mit dem Namen miniwhoami_6261 im IPv6-Subnetz my_IPv6 aus dem Image jennerwein/miniwhoami am Port 6261 Ihres Servers moni21. Der Server soll eine IPv6-Adresse der Form 2001:638:408:200:FC??:????:????:7777 besitzen. Mit welchem Kommando machen Sie dies?
  2. Wie können Sie über den Browser auf diesen Service zugreifen? Geben Sie die URL an.

Meine Lösung:

 

Aufgabe 7 - IPv6-Webserver mit Docker-Compose

  1. Erstellen Sie ein Compose-File für einen einfachen Webserver mywebsite, der im IPv6-Subnetz my_IPv6 mit der statischen IPv6-Adresse 2001:638:408:200:FC??:????:????:2222 läuft.
  2. Wie sieht Ihr Compose-File aus? Wie sehen weitere notwendige Konfigurationsfiles aus? (In README.md angeben.) Erklären Sie die Zeilen im Detail.
  3. Testen Sie zunächst mit dem hervorragenden Tool nicolaka/netshoot, ob Ihr Webserver mywebsite am Port 80 auf IPv6-Verkehr lauscht. Welches Kommando haben Sie konkret verwendet und wie gehen Sie dabei vor?
  4. Testen Sie mit curl, ob im IPv6-Subnetz my_IPv6 Zugriff auf den Webserver besteht. Verwenden Sie hierzu wiederum das Tool nicolaka/netshoot. Welches Kommando verwenden Sie hierzu konkret?
  5. Überprüfen Sie mit einem ping von außen, ob NDP richtig konfiguriert ist und Ihr Webserver von außen erreichbar ist. Rufen Sie dann Ihren Webserver von außen mit einem Browser auf.
  6. Wenn Sie eine Domäne <mydomain.de> haben, konfigurieren Sie diese so, dass <www.mydomain.de> auf Ihren Webserver zeigt.
  7. Zusatzaufgabe: Richten Sie für Ihren Webserver den https-Zugriff (inklusive http-Weiterleitung) ein.

Meine Lösung:

 

 

Impressum | Datenschutz | leischner.inf.h-brs.de, last modification: 12.09.2022-10.46