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.

  • OpenWrt - LXC Container

    Linux
    4
    0 Stimmen
    4 Beiträge
    460 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.

  • OpenWrt - Basics der Firewall

    Linux
    1
    0 Stimmen
    1 Beiträge
    92 Aufrufe
    Niemand hat geantwortet
  • 1 Stimmen
    85 Beiträge
    5k Aufrufe
    N

    Immer wieder gerne. Dieses mal gab es richtig etwas zu tun:
    13 files changed, 137 insertions(+), 96 deletions(-)
    Und das nur, damit es überhaupt wieder baut. Danach folgten noch 5 Bugfixing Runden, wobei zwei davon (lediglich) das Packaging betrafen.

    Ergänzend noch ein Hinweis:
    Port 3012 für die Websocket Verbindungen ist jetzt offiziell deprecated und wird demnächst vollständig aus Vaultwarden entfernt. Genau jetzt wäre der richtige Zeitpunkt die Apache/Nginx Konfiguration dahingehend anzupassen.

    Hierfür habe ich neue Templates online gestellt.
    Apache: https://bitwarden-deb.tech-network.de/Apache-VirtualHost.example.conf
    Nginx: https://bitwarden-deb.tech-network.de/Nginx-VirtualHost.example.conf

    Schönen Sonntag!

  • Docker - Portainer

    Linux
    3
    0 Stimmen
    3 Beiträge
    605 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.

  • 0 Stimmen
    5 Beiträge
    373 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

  • NanoPi R4S - FriendlyWrt

    NanoPi R4S
    1
    0 Stimmen
    1 Beiträge
    426 Aufrufe
    Niemand hat geantwortet
  • OpenWRT - Zonen

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

    Es ist was heller geworden 🙂

    7b86e97c-31a5-44b6-809f-25d9d1c2ee4a-image.png

    Die besagte Forward Regel

    Zonen.png

    Diese Forward Regel zieht erst dann, wenn es mehrere Interfaces in einer Zone gibt. Aus der Doku

    INPUT rules for a zone describe what happens to traffic trying to reach the router itself through an interface in that zone. OUTPUT rules for a zone describe what happens to traffic originating from the router itself going through an interface in that zone. FORWARD rules for a zone describe what happens to traffic passing between different interfaces belonging in the same zone.

    Das heisst nun, das ein Forwarding zwischen zwei Zonen immer eine spezifische Regel unter Traffic Rules benötigt.

    Forwarding between zones always requires a specific rule.

    Somit ist ein Forwarding zwischen zwei Zonen in den Standard Einstellungen nicht erlaubt. Das kann ich hier auch so bestätigen. Das ist ja auch das was ich mit meiner "DMZ"-Zone erreichen möchte. Kein Zugriff auf LAN.

    Unter Zone ⇒ Forwardings kann man jetzt sehen, das das Forwarding von LAN in Richtung WAN und DMZ erlaubt ist. WAN ist logisch, sonst komme ich ja nicht ins Internet. DMZ habe ich eingestellt, damit ich auch Teilnehmer im DMZ Netz erreichen kann, wenn ich da mal ran muss.

    8a548c29-8bc5-4074-8099-66460bcea9a8-image.png

    Stelle ich das jetzt so ein.

    dca8b393-f613-4cab-a377-ffbc2bb8ddf5-image.png

    Dann kann ich von der DMZ Zone aus das LAN erreichen. Aha, so langsam verstehe ich 😉

    Quelle: https://forum.openwrt.org/t/firewall-zones-and-settings/84369

  • Projekt Ryzen7 & X570 Mainboard

    Linux
    25
    0 Stimmen
    25 Beiträge
    2k Aufrufe
    FrankMF

    Nach sehr langer Zeit, habe ich heute mal wieder ein aktuelles BIOS geflashed.

    9f33e13e-92f8-452e-b238-5469bdc6d571-grafik.png

    Link Preview Image MPG X570 GAMING PLUS

    Satisfying gamers with what they really need, MPG X570 GAMING PLUS is equipped with Extended Heatsink Design, Frozr Heatsink Design, Core boost, Lightning Gen4 M.2, M.2 Shield Frozr accessory, Game Boost, Turbo USB and MSI latest Dragon Center. Black and

    favicon

    (de.msi.com)

    20220409_084823.jpg

    20220409_084852.jpg

    Danach Neustart, bootet wie es soll. Damit wäre mein Mainboard kompatibel für den wohl letzten Prozessor auf dem AM4 basierenden Board.

    Ryzen 7 5800X3D

    Gamestar schreibt dazu

    AMD möchte mit einem neuen Prozessor noch einmal ein Spitzenmodell für Spieler bringen, welches auf dem aktuellen Sockel AM4 basiert. Künftige Modelle werden auf einen neuen Sockel namens AM5 setzen. Der wohl letzte Prozessor für mit AM4 und damit auch die Zen-3-Architektur bringt aber noch eine Besonderheit mit sich.
    Quelle: https://www.gamestar.de/artikel/ryzen-7-5800x3d-tests-spieler,3379594.html

    Das PC Magazin schreibt zu Preis und Verfügbarkeit

    Am 15. März hat AMD den Preis und die Verfügbarkeit des Ryzen 7 5800X3D bekannt gegeben. Demnach wird die neue CPU mit 3D V-Cache am 20. April zu einer UVP von 449 US-Dollar ( rund 408 Euro) erscheinen.
    Quelle: https://www.pc-magazin.de/ratgeber/amd-ryzen-7-5800-prozessor-cpu-infos-preis-release-specs-3202912.html

    Ich bin sehe gespannt, ob der USB-Bug endlich behoben wurde. Ihr erinnert Euch? Wenn ich komplett neu starte, dann kann ich keine Eingabe machen. Tastatur und Maus ohne Funktion.

    Ich verrate Euch sicherlich nicht zu viel, wenn ich aktuell eine Neuanschaffung plane, so ein AM5 Brett würde mich schon reizen 🙂 Denke, das war der letzte Beitrag zu diesem Projekt 😉