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 öffnet 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, und nichts passiert? Dann können euch vielleicht die FAQ auf der DB Seite weiter helfen. 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 nicht sehen konnte. Es war überhaupt nicht möglich, irgendeine Seite 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 ratet mal, welchen IP-Adressbereich Docker standardmäßig für seine Netzwerke verwendet? Ihr seid 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 Betriebssystem-Werkzeugen machen (etwa mit ip link delete) oder aber ihr verwendet den docker network rm Befehl. Es 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 öffnet (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 nichts 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 Plugins, 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.

1 Kommentar » Schreibe einen Kommentar

  1. Haha, bin erst vor einigen Wochen auf genau das Thema gestoßen 😀 Habe sogar noch mit dem Kollegen dazu geschrieben, der in einem anderen ICE unterwegs war und keine Probleme hatte. Nun, er verwenden auch kein Docker…

    Werde ich bei der nächsten Reise definitiv ausprobieren! Vielen Dank für den Anstoß und den tollen Beitrag!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert