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.

  • NanoPi5 - eMMC

    Verschoben NanoPi R5S
    1
    0 Stimmen
    1 Beiträge
    189 Aufrufe
    Niemand hat geantwortet
  • OpenWrt - LXC Container

    Linux
    4
    0 Stimmen
    4 Beiträge
    587 Aufrufe
    FrankMF

    @Dude Danke für die Tipps. Die Tools waren mir bekannt, auch wenn ich sie noch nicht selber getestet habe. Man kann ja nicht alles ausprobieren 🙂

    Unbound bot sich hier einfach als Test für die LXC Container an.

  • Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    114 Aufrufe
    FrankMF

    Ich wollte ja eigentlich auf dem NanoPi R5S auch checkmk als Docker Container laufen lassen, so hätte ich das alles an einem Ort, aber.....

    checkmk wird leider nur für eine Architektur released 😞

    3ea5ce2a-b04b-444c-b3a4-f56496ba83fb-grafik.png

    Dann läuft der halt auf meinem Haupt-PC so nebenbei mit...

  • NanoPi R4S - OpenWrt kompilieren Teil 2

    Angeheftet NanoPi R4S
    5
    0 Stimmen
    5 Beiträge
    399 Aufrufe
    FrankMF

    Kurzes Update. Der R4S im Alugehäuse, der hier als Router / Firewall rumliegt, läuft jetzt seit 44 Tagen einwandfrei. 😊

    98ef6d29-e822-4847-a038-f02a027fb6fe-grafik.png

  • Ubiquiti ER-X - iperf

    Verschoben OpenWRT & Ubiquiti ER-X
    2
    0 Stimmen
    2 Beiträge
    271 Aufrufe
    FrankMF

    Hier noch ein Test von DMZ / LAN und andersrum.

    frank@frank-MS-7C37:~$ iperf3 -c 192.168.5.15 Connecting to host 192.168.5.15, port 5201 [ 5] local 192.168.3.213 port 44052 connected to 192.168.5.15 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 114 MBytes 952 Mbits/sec 314 153 KBytes [ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec 259 205 KBytes [ 5] 2.00-3.00 sec 111 MBytes 929 Mbits/sec 210 212 KBytes [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec 235 202 KBytes [ 5] 4.00-5.00 sec 112 MBytes 936 Mbits/sec 263 153 KBytes [ 5] 5.00-6.00 sec 111 MBytes 935 Mbits/sec 255 209 KBytes [ 5] 6.00-7.00 sec 112 MBytes 937 Mbits/sec 313 129 KBytes [ 5] 7.00-8.00 sec 111 MBytes 932 Mbits/sec 296 209 KBytes [ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec 258 208 KBytes [ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec 292 201 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec 2695 sender [ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec receiver iperf Done. frank@frank-MS-7C37:~$ iperf3 -R -c 192.168.5.15 Connecting to host 192.168.5.15, port 5201 Reverse mode, remote host 192.168.5.15 is sending [ 5] local 192.168.3.213 port 44058 connected to 192.168.5.15 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 109 MBytes 911 Mbits/sec [ 5] 1.00-2.00 sec 109 MBytes 912 Mbits/sec [ 5] 2.00-3.00 sec 109 MBytes 912 Mbits/sec [ 5] 3.00-4.00 sec 109 MBytes 912 Mbits/sec [ 5] 4.00-5.00 sec 109 MBytes 912 Mbits/sec [ 5] 5.00-6.00 sec 108 MBytes 903 Mbits/sec [ 5] 6.00-7.00 sec 109 MBytes 912 Mbits/sec [ 5] 7.00-8.00 sec 109 MBytes 912 Mbits/sec [ 5] 8.00-9.00 sec 109 MBytes 912 Mbits/sec [ 5] 9.00-10.00 sec 109 MBytes 912 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.06 GBytes 913 Mbits/sec 114 sender [ 5] 0.00-10.00 sec 1.06 GBytes 911 Mbits/sec receiver iperf Done.
  • Ubiquiti ER-X - DMZ

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

    Verschoben OpenWRT & Ubiquiti ER-X
    1
    0 Stimmen
    1 Beiträge
    256 Aufrufe
    Niemand hat geantwortet
  • NanoPi R2S - OpenWRT VLAN

    Verschoben NanoPi R2S
    11
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    FrankMF

    @thrakath1980 Ok, du meinst die FriendlyArm Variante von OpenWRT. Ich denke, da sollte man besser alles neu machen. Leider ist das bei OpenWRT nicht so einfach zu updaten/upgraden wie z.B. bei einem Linux Kernel. Ich habe es mal runtergeladen, wenn ich mal Zeit habe, schau ich mal rein.