Skip to content

OpenWrt - Docker & DNS & Zugriff auf WAN

Linux
  • Ich wollte heute mal auf meinem NanoPi R5S schnell einen Debian Container aufsetzen um was zu testen. Ok, kein Ding, lief nach ein paar Sekunden 😉

    Nur ich hatte nicht so wirklich Internetzugriff. Lange im OpenWrt gesucht und nix gefunden, müsste eigentlich funktionieren.....

    Dann über das Thema auf DNS Einstellungen gestolpert und mal nachgesehen, ob man das im Container vernünftig einstellen kann.

    Nachdenken......

    Mit

    cat /etc/resolv.conf
    

    im gestarteten Container nachgeschaut.

    root@b9ffae24913a:/# cat /etc/resolv.conf
    search lan
    
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    Ok, sieht nicht wirklich funktional aus.

    Dann habe ich mir das Setup des Containers via Portainer nochmal angeschaut.

    973708e0-604b-47ff-97f6-fd6bcc8c70cf-grafik.png

    Da war unter Primary DNS Server erst nichts eingetragen, nachdem ich da 192.168.3.1 eingetragen hatte, kam das.

    root@b9ffae24913a:/# cat /etc/resolv.conf
    search lan
    nameserver 192.168.3.1
    

    Jetzt ging schon mal

    apt update
    

    und man konnte auch mal ein Tool installieren, z.B.

    apt install iperf3
    

    Test

     root@b9ffae24913a:/# iperf3 -c 192.168.3.213
     ^C- - - - - - - - - - - - - - - - - - - - - - - - -
     [ ID] Interval           Transfer     Bitrate         Retr
     iperf3: interrupt - the client has terminated
     root@b9ffae24913a:/# iperf3 -c 192.168.3.213
     Connecting to host 192.168.3.213, port 5201
     [  5] local 172.17.0.4 port 58906 connected to 192.168.3.213 port 5201
     [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
     [  5]   0.00-1.00   sec   148 MBytes  1.24 Gbits/sec    0    202 KBytes       
     [  5]   1.00-2.01   sec   169 MBytes  1.41 Gbits/sec    0    202 KBytes       
     [  5]   2.01-3.01   sec   169 MBytes  1.42 Gbits/sec    0    202 KBytes       
     [  5]   3.01-4.00   sec   168 MBytes  1.41 Gbits/sec    0    202 KBytes       
     [  5]   4.00-5.00   sec   169 MBytes  1.42 Gbits/sec    0    202 KBytes       
     [  5]   5.00-6.00   sec   166 MBytes  1.40 Gbits/sec    0    202 KBytes       
     [  5]   6.00-7.00   sec   169 MBytes  1.41 Gbits/sec    0    212 KBytes       
     [  5]   7.00-8.00   sec   166 MBytes  1.40 Gbits/sec    0    212 KBytes       
     [  5]   8.00-9.01   sec   169 MBytes  1.41 Gbits/sec    0    212 KBytes       
     [  5]   9.01-10.00  sec   166 MBytes  1.40 Gbits/sec   20    510 KBytes       
     - - - - - - - - - - - - - - - - - - - - - - - - -
     [ ID] Interval           Transfer     Bitrate         Retr
     [  5]   0.00-10.00  sec  1.62 GBytes  1.39 Gbits/sec   20             sender
     [  5]   0.00-10.01  sec  1.62 GBytes  1.39 Gbits/sec                  receiver
     
     iperf Done.
    
    root@b9ffae24913a:/# iperf3 -R -c 192.168.3.213
    Connecting to host 192.168.3.213, port 5201
    Reverse mode, remote host 192.168.3.213 is sending
    [  5] local 172.17.0.4 port 58910 connected to 192.168.3.213 port 5201
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-1.00   sec   247 MBytes  2.07 Gbits/sec                  
    [  5]   1.00-2.00   sec   259 MBytes  2.17 Gbits/sec                  
    [  5]   2.00-3.00   sec   257 MBytes  2.16 Gbits/sec                  
    [  5]   3.00-4.00   sec   259 MBytes  2.17 Gbits/sec                  
    [  5]   4.00-5.00   sec   257 MBytes  2.15 Gbits/sec                  
    [  5]   5.00-6.00   sec   260 MBytes  2.18 Gbits/sec                  
    [  5]   6.00-7.00   sec   258 MBytes  2.16 Gbits/sec                  
    [  5]   7.00-8.00   sec   271 MBytes  2.27 Gbits/sec                  
    [  5]   8.00-9.00   sec   262 MBytes  2.20 Gbits/sec                  
    [  5]   9.00-10.00  sec   259 MBytes  2.17 Gbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.01  sec  2.54 GBytes  2.18 Gbits/sec    0             sender
    [  5]   0.00-10.00  sec  2.53 GBytes  2.17 Gbits/sec                  receiver
    
    iperf Done.
    

    Aber, irgendwie war der Internetzugang immer noch nicht komplett.

    Der Ping z.B nach

    root@b9ffae24913a:/# ping 192.168.3.213
    PING 192.168.3.213 (192.168.3.213): 56 data bytes
    64 bytes from 192.168.3.213: icmp_seq=0 ttl=63 time=1.368 ms
    64 bytes from 192.168.3.213: icmp_seq=1 ttl=63 time=1.105 ms
    64 bytes from 192.168.3.213: icmp_seq=2 ttl=63 time=1.126 ms
    

    ging. Der Ping nach

    ping 8.8.8.8
    

    ging nicht. Also konnte ich immer noch nicht das Internet komplett erreichen. Hmm ?

    root@b9ffae24913a:/# ip route
    default via 172.17.0.1 dev eth0 
    172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.4 
    

    Ich habe hier in meinem OpenWrt-Setup leider nichts gefunden, was den Zugriff auf das Internet unterbindet. DNS geht, weil das über 192.168.3.1 aufgelöst wird. Die Brücke vom Docker geht dort hin, das ist dann so weit in Ordnung.

    Ich habe da aktuell keine Idee mehr dazu 😞

    Aber, beim Testen habe ich gefunden, wie ich mir etwas helfen kann.

    1b779e10-696e-4828-8cc0-605168fab2a1-grafik.png

    Wenn ich den Container auf Host stelle, benutzt er die Einstellungen des Host. Er bekommt keine eigene IP Adresse und ich kann pingen usw. Aber da tauchen dann andere Probleme auf.....

    Das Hauptproblem was ich aktuell hier sehe ist, das die Docker Container aus irgendeinem Grund, keinen Zugriff aufs Internet haben. Irgendwas blockt den Forward oder was auch immer? Muss ich noch weiter suchen.

    Irgendjemand der hier mit liest, mit viel OpenWrt Erfahrung? 😊

  • Ich habe da etwas viele Denkblockaden heute, vermutlich zu warm 🙂

    Wenn ich irgendeinen Dienst im Internet erreichen möchte, klappt das einwandfrei. Hier ein Test mit iperf3 auf einem meiner Hetzner Server.

    root@b9ffae24913a:/# iperf3 -c <IP>
    Connecting to host <IP>, port 5201
    [  5] local 172.17.0.4 port 37226 connected to <IP> port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  6.24 MBytes  52.3 Mbits/sec    2    182 KBytes       
    [  5]   1.00-2.00   sec  6.05 MBytes  50.8 Mbits/sec    0    209 KBytes       
    [  5]   2.00-3.00   sec  5.50 MBytes  46.1 Mbits/sec    3    111 KBytes       
    [  5]   3.00-4.00   sec  5.56 MBytes  46.6 Mbits/sec    0    144 KBytes       
    [  5]   4.00-5.00   sec  5.93 MBytes  49.7 Mbits/sec    0    170 KBytes       
    [  5]   5.00-6.00   sec  5.93 MBytes  49.7 Mbits/sec    0    195 KBytes       
    [  5]   6.00-7.00   sec  5.99 MBytes  50.3 Mbits/sec    1    157 KBytes       
    [  5]   7.00-8.00   sec  5.44 MBytes  45.6 Mbits/sec    0    184 KBytes       
    [  5]   8.00-9.00   sec  5.93 MBytes  49.7 Mbits/sec    1    204 KBytes       
    [  5]   9.00-10.00  sec  5.93 MBytes  49.7 Mbits/sec    0    224 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  58.5 MBytes  49.1 Mbits/sec    7             sender
    [  5]   0.00-10.01  sec  57.3 MBytes  48.0 Mbits/sec                  receiver
    
    iperf Done.
    
    root@b9ffae24913a:/# iperf3 -R -c <IP>
    Connecting to host <IP>, port 5201
    Reverse mode, remote host <IP> is sending
    [  5] local 172.17.0.4 port 37230 connected to <IP> port 5201
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-1.00   sec  54.1 MBytes   454 Mbits/sec                  
    [  5]   1.00-2.00   sec  52.3 MBytes   439 Mbits/sec                  
    [  5]   2.00-3.00   sec  45.4 MBytes   381 Mbits/sec                  
    [  5]   3.00-4.00   sec  44.8 MBytes   376 Mbits/sec                  
    [  5]   4.00-5.00   sec  49.2 MBytes   413 Mbits/sec                  
    [  5]   5.00-6.00   sec  48.1 MBytes   403 Mbits/sec                  
    [  5]   6.00-7.00   sec  50.0 MBytes   420 Mbits/sec                  
    [  5]   7.00-8.00   sec  52.0 MBytes   436 Mbits/sec                  
    [  5]   8.00-9.00   sec  48.6 MBytes   408 Mbits/sec                  
    [  5]   9.00-10.00  sec  51.9 MBytes   436 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.02  sec   500 MBytes   418 Mbits/sec   43             sender
    [  5]   0.00-10.00  sec   496 MBytes   416 Mbits/sec                  receiver
    
    iperf Done.
    

    Wichtig war also erstmal, den korrekten DNS-Server einzutragen. Das was nicht geht ist

    ping
    

    🤔 Und das verstehe ich aktuell immer noch nicht.

  • Das Problem ist gelöst und es hat nichts mit Portainer zu schaffen, ich werde den Titel anpassen 🤗

    So einfach aufgeben, das mache ich erst wenn ich merke, das meine Fähigkeiten überhaupt nicht ausreichen um ein Problem zu lösen. Hier war mir aber schnell klar, das es eine Einstellung geben musste, ich habe sie nur nicht gefunden.

    Beim stöbern im OpenWrt-Forum bin ich doch tatsächlich über ein ähnliches Problem gestolpert. Dort hatte man auch kein Lösung gefunden, aber ich habe einen entscheidenden Hinweis gefunden, der mich weiter brachte.

    /etc/config/dockerd

    config globals 'globals'
            option log_level 'warn'
            option iptables '1'
            option remote_endpoint '0'
            option data_root '/mnt/nvme_part2/docker'
    
    config firewall 'firewall'
            option device 'docker0'
            #list blocked_interfaces 'wan'
    

    Die auskommentierte Zeile war das Problem, einmal neustarten danach lief alles einwandfrei.

    Ich werde mal morgen ein neues OpenWrt aufsetzen und nachschauen, ob dieser Eintrag von Anfang an da steht oder ob ich den irgendwie da reingefummelt habe. Ich kann mich zwar nicht erinnern, aber wer weiß schon, ich bin da jetzt schon fast einen Tag dran 😉

  • Es geht weiter, der erste ☕ und ich bin mit der Lösung nicht so richtig zufrieden, also suchen.

    Als erstes habe ich heute Morgen ein frisches SD-Karten Image mit Docker von FreindlyWrt genommen und auf meinem Test NanoPi R5S installiert. Dort mal die Config angeschaut um zu sehen, ob der Eintrag standardmäßig gesetzt ist. Doch dort taucht dann einmal eine ganz ander Config auf 🙄

    # The following settings require a restart of docker to take full effect, A reload will only have partial or no effect:
    # bip
    # blocked_interfaces
    # extra_iptables_args
    # device
    
    config globals 'globals'
    #       option alt_config_file '/etc/docker/daemon.json'
            option enable '1'
            option data_root '/mnt/nvme_part2/docker'
            option log_level 'warn'
            option iptables '1'
            #list hosts 'unix:///var/run/docker.sock'
    #       option bip '172.18.0.1/24'
    #       option fixed_cidr '172.17.0.0/16'
    #       option fixed_cidr_v6 'fc00:1::/80'
    #       option ipv6 '1'
    #       option ip '::ffff:0.0.0.0'
    #       list dns '172.17.0.1'
    #       list registry_mirrors 'https://<my-docker-mirror-host>'
            list registry_mirrors 'https://hub.docker.com'
            option remote_endpoint '0'
    #       option bridge 'br-container'
    
    
    
    # Docker ignores fw3 rules and by default all external source IPs are allowed to connect to the Docker host.
    # See https://docs.docker.com/network/iptables/ for more details.
    # firewall config changes are only additive i.e firewall will need to be restarted first to clear old changes,
    # then docker restarted to load in new changes.
    config firewall 'firewall'
            option device 'docker0'
            list blocked_interfaces 'wan'
            option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections
    

    Das interessiert uns jetzt

            list blocked_interfaces 'wan'
            option extra_iptables_args '--match conntrack ! --ctstate RELATED,ESTABLISHED' # allow outbound connections
    

    Wenn ich das jetzt alles richtig verstehe, muss WAN geblockt sein, weil sonst der Docker Host offen im Netz steht (Hierbei bin ich mir nicht 100% sicher)
    Die zweite Zeile ist eine iptables Regel, die es den Containern dann ermöglicht das Internet zu erreichen.

    Das habe ich jetzt so eingestellt und getestet.

    root@b9ffae24913a:/# ping 1.1.1.1
    PING 1.1.1.1 (1.1.1.1): 56 data bytes
    64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=17.151 ms
    64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=16.553 ms
    64 bytes from 1.1.1.1: icmp_seq=2 ttl=57 time=20.630 ms
    64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=13.948 ms
    ^C--- 1.1.1.1 ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 13.948/17.071/20.630/2.382 ms
    
    root@b9ffae24913a:/# ping google.de
    PING google.de (142.250.185.195): 56 data bytes
    64 bytes from 142.250.185.195: icmp_seq=0 ttl=58 time=23.797 ms
    64 bytes from 142.250.185.195: icmp_seq=1 ttl=58 time=16.953 ms
    64 bytes from 142.250.185.195: icmp_seq=2 ttl=58 time=19.441 ms
    ^C--- google.de ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 16.953/20.064/23.797/2.829 ms
    

    Ich hoffe mal das ich diese Thema jetzt zu den Akten legen kann.

    Wenn was falsch ist, bitte hier kommentieren, damit ich das ändern kann.

  • Portainer - Update 2.15

    Linux
    1
    0 Stimmen
    1 Beiträge
    112 Aufrufe
    Niemand hat geantwortet
  • NanoPi R4S - OpenWrt Image Download

    NanoPi R4S
    2
    0 Stimmen
    2 Beiträge
    344 Aufrufe
    FrankMF

    Das Image gibt es jetzt offiziell 😉

    Index of /snapshots/targets/rockchip/armv8/

    favicon

    (downloads.openwrt.org)

    Geht aber wohl nur auf der 4GB Version. Auf meiner 1GB Version bekomme ich

    Missing DTB
  • Portainer - NodeBB Container erstellen

    Linux
    1
    0 Stimmen
    1 Beiträge
    324 Aufrufe
    Niemand hat geantwortet
  • Docker - Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    711 Aufrufe
    FrankMF

    Dann grabe ich das mal wieder aus 😉

    Bedingt durch den Wegfall meines Proxmox, musste ich mir Gedanken darüber machen, wie ein paar Dienste auch weiterhin laufen sollen. Um mal die zwei wichtigsten zu nennen.

    checkmk DokuWiki

    Diese sollen später, wenn der zweite NanoPi R5S aus China da ist, dort laufen. Da der aber mit der Schneckenpost kommt, kann man ja in der Zwischenzeit mal wieder mit Docker spielen.

    Ich erinnerte mich daran, das checkmk eine sehr gute Anleitung hat, so das ich das mal wieder ausprobierte. Klappte einwandfrei. Dann erinnerte mich an Portainer und dachte mir, das probiere ich mal wieder aus 🙂

    1d2dc9b3-ad71-45c5-b552-72c88a1bf773-grafik.png

    Ich hatte übrigens die Endpoints gesucht und nicht gefunden, die heißen jetzt Environments. Auf dem Bild ist noch keiner eingerichtet.

    4bdbf196-1b36-4e65-94d0-0e56daa473bf-grafik.png

    Irgendwie ist das wirklich richtig gute Software. Ich mag den Portainer und auch als selbst ausgebildeter ITler 😉 kommt man damit sehr schnell ganz gut zurecht.

    Ja, man kann die ganzen Docker Befehle auch über die Konsole eingeben, was ich normalerweise auch mit ganz vielen Dingen mache, aber das macht hier einfach Spaß. Man hat auch schnell einen guten Überblick was wo läuft usw.

    Wer so was sucht, einfach mal ausprobieren. Klare Empfehlung von mir.

  • NanoPi R4S - OpenWrt kompilieren

    Angeheftet NanoPi R4S
    2
    0 Stimmen
    2 Beiträge
    411 Aufrufe
    FrankMF

    Ja, ich kann bestätigen, es funktioniert und startet einwandfrei!

  • OpenWRT - Firmware Selektor

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    236 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - DMZ

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    251 Aufrufe
    Niemand hat geantwortet
  • NanoPI R2S - Snapshot aktualisieren

    NanoPi R2S
    3
    0 Stimmen
    3 Beiträge
    354 Aufrufe
    FrankMF

    @thrakath1980 Das kann ich Dir leider nicht beantworten. Denke aber, das es sinnvoll ist neu anzufangen. Welche Settings meinst Du?

    Ich würde mal /etc/config sichern. Da sollte das Meiste ja drin sein.

    Notifications? Hmm, ich hoffe das das funktioniert. Ich schau zur Sicherheit mal nach.