Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Connection Timeout mit MDT SCN-IP000.02

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Connection Timeout mit MDT SCN-IP000.02

    Hallo zusammen,

    ich mache gerade meine ersten Gehversuche mit dem knxd und scheitere jetzt aber bereits seit ein paar Tagen daran eine Verbindung zum IP-Interface (MDT SCN-IP000.02) herzustellen.

    Ich habe nur dieses Interface, heißt also die ETS läuft auch darüber und das ohne Probleme. Ich habe nur eine Linie 1.1. Das IP-Interface hat als physikalische Adressen die 1.1.3 und 1.1.4. Tunnel Adressen sind von 1.1.9, 1.1.10, 1.1.11, 1.1.12. Die ETS verwendet die 1.1.9. Das IP-Interface hat vom DHCP die IP 192.168.188.33.

    Der knxd läuft in einem Docker-Container mit Alpine, zuerst hatte ich es mit dem stable branch versucht, wo es aber ein paar Probleme gab, weshalb ich dann den master versucht habe, mit dem alles soweit (zumindest für meine Augen) gut läuft. Kompiliert ist mit
    Code:
    --disable-systemd --enable-busmonitor --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel
    Ich starte den knxd interaktiv mit:
    Code:
    knxd config.ini
    Der Inhalt der config.ini:
    Code:
    [main]
    addr = 1.1.14
    client-addrs = 1.1.15:3
    connections = server,A.ipt
    debug=debug-main
    filters = log
    #logfile = /var/log/knxd.log
    
    [server]
    server = knxd_unix
    debug = debug-server
    
    [debug-server]
    name = mcast:knxd
    
    [A.ipt]
    driver = ipt
    nat = true
    ip-address = 192.168.188.33
    
    [debug-main]
    error-level=0x9
    trace-mask=0x3ff
    Das Problem aktuell ist, dass er einen "Connect timed out" wirft und ich nicht mehr weiter komme. Das IP-Interface ist soweit aus dem Container erreichbar, ein ping klappt ohne Probleme.

    Code:
    # knxd config.ini
    
    Layer 4 [ 1:main 0.000] initialized
    I00000131: [ 1:main] 0.14.36-2-g5adc144: knxd config.ini
    Layer 4 [ 1:main 0.000] setting up
    Layer 0 [ 4:log/main 0.000] State setup
    Layer 3 [ 5:server/local 0.000] registerLink: 5:server
    Layer 3 [ 9:A.ipt/Conn 0.000] registerLink: 9:A.ipt
    I00000129: [ 1:main] Connected: cfg:A.ipt.
    I00000129: [ 1:main] Connected: cfg:server.
    Layer 4 [ 1:main 0.000] setup OK
    W00000126: [ 1:main] knxd should not run as root
    Layer 4 [ 1:main 0.000] trigger going up
    Layer 0 [ 4:log/main 0.000] State start
    Layer 3 [ 9:A.ipt/Conn 0.000] Start: cfg:A.ipt
    Layer 5 [ 9:A.ipt/Conn 0.000] down => >up
    Layer 5 [ 9:A.ipt/Conn 0.000] Starting
    Layer 2 [10:A.ipt/ipt 0.000] Open
    Layer 0 [10:A.ipt/ipt 0.000] Open
    Layer 0 [10:A.ipt/ipt 0.000] Opened
    Layer 1 [10:A.ipt/ipt 0.000] Send(020): 08 01 AC 11 00 06 B4 CB 08 01 AC 11 00 06 B4 CB 04 04 02 00
    Layer 2 [10:A.ipt/ipt 0.000] Opened
    Layer 4 [ 9:A.ipt/Conn 0.000] link state changed: >up
    Layer 3 [ 5:server/local 0.000] Start: cfg:server
    Layer 5 [ 5:server/local 0.000] down => >up
    Layer 8 [ 5:server/local 0.000] OpenLocalSocket /run/knx
    Layer 8 [ 5:server/local 0.000] LocalSocket opened
    Layer 5 [ 5:server/local 0.000] >up => up
    Layer 4 [ 5:server/local 0.000] link state changed: up
    Layer 5 [ 5:server/local 0.000] Started
    Layer 4 [ 5:server/local 0.000] link state changed: up
    Layer 4 [ 1:main 0.000] going up triggered
    Layer 4 [ 1:main 0.000] check start
    Layer 4 [ 9:A.ipt/Conn 0.000] state is >up
    Layer 4 [ 1:main 0.000] check end: want_up 1 some 1>1 all 0>0, going 1 up 1 down 0
    Layer 0 [10:A.ipt/ipt 0.000] Send(026): 06 10 02 05 00 1A 08 01 AC 11 00 06 B4 CB 08 01 AC 11 00 06 B4 CB 04 04 02 00
    Layer 1 [10:A.ipt/ipt 9.985] Connect timed out
    Layer 0 [10:A.ipt/ipt 9.985] Close D
    Layer 5 [ 9:A.ipt/Conn 9.985] >up => error
    Layer 4 [ 9:A.ipt/Conn 9.985] link state changed: error
    Layer 4 [ 1:main 9.985] check start
    Layer 4 [ 1:main 9.985] check end: want_up 1 some 1>1 all 0>0, going 0 up 1 down 1
    F00000105: [ 9:A.ipt] Link down, terminating
    Layer 4 [ 1:main 9.985] trigger Going down
    Layer 0 [ 4:log/main 9.985] State error
    Layer 4 [ 9:A.ipt/Conn 9.985] R Stopping
    Layer 5 [ 9:A.ipt/Conn 9.985] error => >down
    Layer 4 [ 9:A.ipt/Conn 9.985] link state changed: error
    Layer 4 [ 5:server/local 9.985] R Stopping
    Layer 5 [ 5:server/local 9.985] up => >down
    Layer 8 [ 5:server/local 9.985] StopServer
    Layer 5 [ 5:server/local 9.986] >down => down
    Layer 4 [ 5:server/local 9.986] link state changed: down
    Layer 4 [ 5:server/local 9.986] link state changed: down
    Layer 4 [ 1:main 9.986] check start
    Layer 4 [ 5:server/local 9.986] is down
    Layer 4 [ 1:main 9.986] check end: want_up 0 some 1>0 all 0>0, going 0 up 0 down 2
    Layer 0 [ 4:log/main 9.986] State errored
    Layer 4 [ 1:main 9.986] down
    N00000128: [ 1:main] Shutting down.
    Layer 4 [ 1:main 9.986] deleting
    Layer 2 [10:A.ipt/ipt 9.986] Close A
    Layer 8 [ 5:server/local 9.986] StopServer
    Layer 4 [ 1:main 9.986] deleted.
    Würde mich sehr freuen, wenn mir hier jemand mit dem Stups in die richtige Richtung weiterhelfen kann! Vielen Dank schonmal!

    #2
    Ich hoffe du konntest das Problem inzwischen lösen, aber da ich das gleiche Problem hatte und eine für mich funktionierende Lösung gefunden habe, möchte ich sie hier für die Nachwelt festhalten:

    Ich hatte auch knxd in einer virtuellen Umgebung laufen (allerdings VirtualBox) und konnte auch das IP-Interface anpingen, aber die knxd-connection zum IP-Interface wollte einfach nicht klappen. Ich vermute es gibt ein Problem mit NAT in der VirtualBox, das dort standardmäßig aktiviert ist. Man könnte es ggf. mit Portweiterleitungen probieren, aber bei mir hat geholfen es von "NAT" auf "Netzwerkbrücke" umzustellen.

    Mit den folgenden Aufrufen konnte ich dann knxd (zum Antesten noch nicht als Daemon) starten und ein Licht einschalten:

    ​./knxd -f9 -t 1023 -e 1.1.251 -E 1.1.252:2 -B single --send-delay=70 -b ipt:192.168.0.42 -i 6720
    ./knxtool on ip:127.0.0.1:6720 7/1/0
    Zuletzt geändert von foobar303; 23.09.2022, 21:29.

    Kommentar


      #3
      Bei Knx wird die Sender-IP extra in das UDP-Frame gepackt (`HPAI`). Das Interface antwortet dann an diese IP anstatt der UDP-Source-IP. Wenn NAT (Docker, VM etc.) im Spiel ist gibts aber aus Sicht des Empfängers keine Route zu dieser IP und es kommt nie eine Antwort zurück.
      Umgehen kann man das mit der `NAT-mode` / `route back` Option - da wird IP und Port (HPAI) im KNX-IP-Frame auf 0 gesetzt - was dem Empfänger signalisiert er soll an die UDP-Source antworten. Ob man das in knxd konfigurieren kann weiß ich allerdings nicht.

      Kommentar

      Lädt...
      X