Arbeiten und Reisen – oder wieso Programmieren im Zug eine Herausforderung sein kann

Heute möchte ich mal eine etwas andere Geschichte teilen. Wenn ich in Deutschland reise, dann nehme ich fast immer den Zug. Falls manche von euch schon einmal Berlin Richtung Westen verlassen haben, dann werdet ihr vermutlich auch wissen, dass die Internetverbindung extrem schlecht wird, sobald man Berlin verlassen hat, egal ob über das WLAN im ICE oder euren mobilen Hostpot. Aber wenn ihr Linux verwendet und auf dem Laptop auch entwickelt, dann seid ihr vielleicht gar nicht in der Lage, das Internet über WLAN zu verwenden.

WIFIonICE

Wenn ihr im ICE unterwegs seid, dann gibt es selbst in der 2. Klasse kostenloses WLAN. Es ist ausreichend stark, um die meisten Dinge zu erledigen. Selbst Streaming und Videotelefonate sind möglich, wenn ihr diese wirklich machen müsst. Aber bitte nicht im Ruhebereich! Für das Streaming würde ich euch aber das iceportal.de empfehlen, wo ihr einige Filme und Serien ansehen könnt, ähnlich wie im Flugzeug.

Das klingt alles nicht schlecht, oder? Normalerweise müsst ihr euch dazu nur zu WIFIonICE oder WIFI@DB verbinden und dann öffner sich euer Browser und fordert euch dazu auf, die AGB zu akzeptieren. Passiert das nicht, könnt ihr einen Browser und auf LogIn.WIFIonICE.de navigieren, wo ihr das dann tun könnt. Ihr habt das getan, uns nichts passiert? Dann können euch vielleicht die FAQ auf der DB Seite weiterhelfen. Aber ihr würdet diesen Beitrag vermutlich nicht lesen, wenn das funktioniert hätte, richtig?

OK, lasst mich raten: Ihr verwendet sehr wahrscheinlich einen Linux-Laptop, aber auf jeden Fall setzt ihr bei der lokalen Entwicklung Docker ein. Richtig? Dann willkommen zu meinem etwas anderen Thema für einen Blogbeitrag 😉

Docker-Netzwerke und WIFIonICE

Das Problem ist eines, zu dem ihr leider auf der DB Seite keine Hilfe finden werdet. Es ist auch eines, was ich jetzt schon mehr als einmal hatte und was dazu führte, dass ich die Seite mit den AGB niciht sehen konnte. Es war überhaupt nicht möglich irgendeine Serite zu öffnen. Nichts passierte im Browser. Der Grund dafür ist der folgende: im ICE wird der IP-Adressbereich 172.17.0.0/16 für das WLAN verwendet. Und jetzt rate mal, welchen IP-Adressbereich Docker standardmäßig für seine Netzwerke verwendet? Du bist ja richtig clever 😉

Lösung des Problems

Um euch wieder mit dem WLAN verbinden zu können, müsst ihr das Netzwerk, das die IP-Adresse 172.17.0.1 verwendet entfernen. Das könnt ihr mit den Betriebssytem-Werkzeugen machen (etwa mit ip link delete) oder aber ihr verwendet der docker network rm Befehl. Aber würde das Problem lösen, aber es würden eventuell einige Dinge nicht mehr funktionieren, da Docker dieses Netzwerk ja vermutlich braucht. Es ist auch meisten das primäre Bridge-Netzwerk. Und wenn ihr euch in ein paar Monaten erneut in einen ICE setzt, dann ist die IP-Adresse vielleicht schon wieder von einem neuen Docker-Netzwerk belegt. Daher brauchte ich eine bessere Lösung.

Ändern des IP-Adressbereichs

Nach einiger Recherche konnte ich eine Dokumentation zu einer optionalen Konfigurationsdatei finden, mit der ihr einige Variablen für den Docker-Daemon auf eurem System setzen könnt. Auf dieser Seite gibt es auch ein komplettes Beispiel für eine Linux-Konfiguration. Hiervon braucht ihr nur einen kleinen Teil. Zuerst öffent (oder erstellt) ihr eine Konfigurationsdatei:

sudo vim /etc/docker/daemon.json

Nun fügt ihr (mindestens) die folgenden Zeilen ein und speichert die Datei:

{
  "default-address-pools": [
    {
      "base": "172.30.0.0/16",
      "size": 24
    },
    {
      "base": "172.31.0.0/16",
      "size": 24
    }
  ]
}

Ich habe hier zwei alternative IP-Adressbereiche definiert. Vermutlich würde sogar einer ausreichen. Nach Änderungen an dieser Datei müsst ihr den Docker-Daemon noch neu startet. Für mich war das mit diesem Befehl möglich (unter Manjaro Linux):

systemctl restart docker

Jetzt solltet ihr in der Lage sein, die Seite mit den AGB zu öffnen und endlich mit einer produktiven Coding-Session im Zug anzufangen … oder aber einen Film oder eine Serie aus der Mediathek des ICE genießen 😁

Fazit

Netzwerkprobleme und Probleme mit (öffentlichen) Hotspots kennen wir wohl alle und wir können viele Geschichten darüber erzählen. Aber ich hätte nie gedacht, dass der Einsatz von Docker zu so einem Fehler führen könnte, der anscheinend der DB nicht bekannt ist. Zumindest findet man hierzu nicht in den FAQ zu diesem Problem und ich bin sicher nicht der einzige, der es schon hatte. Wenn euch dieser Blogbeitrag also helfen konnte und ihr nun endlich online seid, dann könnt ihr doch sicher auch kurz einen Kommentar schreiben, oder nicht?☺️

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugin, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.