Ankündigung

Einklappen
Keine Ankündigung bisher.

Verbindungsabbrüche Falcon SDK 6 unter Linux/Docker

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

    Verbindungsabbrüche Falcon SDK 6 unter Linux/Docker

    Hallo zusammen,

    ich hab einen selbst gebauten Homeserver, der seit 2014 auf einem virtualisierten Windows-System schnurrt wie ein Kätzchen. Dennoch war es mal wieder Zeit für ein Technologie Update und ich hab den gesamten Code aktualisiert, so dass er nun mit dem neuesten Falcon SDK 6 arbeitet (+ Umstellung auf .NET 8.0, ASP NET Web API, Code Cleanup etc.).

    Lokal entwickelt wird es unter Windows, betreiben wollte ich es als Docker Container oder Linux VM. Beides funktioniert auch für ca. 1h problemlos, Bus Connection ist in Takt, auch die Status-Telegramme kommen an - alles funktioniert. Aber eben nur für ca. 1h, danach bricht die Verbindung zum Bus ab und kann auch nicht wiederhergestellt werden.

    Ich hab es versucht mit Reconnect, wenn
    Code:
    (connection.ConnectionState != BusConnectionState.Connected)
    und auch den neuen Parameter
    Code:
    connectorParams.AutoReconnect = true;
    gesetzt. Hilft beides nicht, weder unter Docker, noch unter Linux direkt. Das OS bleibt natürlich an, hat keinen Energiesparmodus aktiviert oder so und auch die Services sind als Singleton Instances implementiert.


    Hat irgendjemand schon mal dieses Phänomen gehabt oder eine Idee, woran es liegen könnte?

    #2
    IP Tunneling nehme ich an, oder? Secure oder plain? Udp oder TCP? Welche IP Schnittstelle?
    Könnte auch an der Netzwerk-Infrastruktur (Switch...) oder einer Firewall liegen.

    Kommentar


      #3
      Hallo Klaus,

      vielen Dank für deine Rückfragen.

      Zitat von Klaus Gütter Beitrag anzeigen
      IP Tunneling nehme ich an, oder? Secure oder plain? Udp oder TCP? Welche IP Schnittstelle?
      Könnte auch an der Netzwerk-Infrastruktur (Switch...) oder einer Firewall liegen.

      Ich nutze IP Tunneling via UDP, plain via MDT SCN-IP100.01.

      Mittlerweile hab ich es auch mal über längere Zeit (> 4h) auf Windows getestet und auch dort habe ich die Abbrüche.
      Meine vorherige Implementierung lief fehlerfrei ohne Abbrüche unter Windows, nutzte allerdings ein älteres Falcon SDK.

      Ich teile einfach mal die beiden Connection Strings zum Vergleich:

      Bisher:
      HTML-Code:
      busConnection = new Knx.Falcon.Sdk.Bus(new KnxIpTunnelingConnectorParameters("192.168.1.x", 0x0e57, false));
      ​
      Neue Falcon SDK Version mit .NET core:
      HTML-Code:
      busConnection = new Knx.Falcon.Sdk.KnxBus(new IpTunnelingConnectorParameters("192.168.1.x", 3671, Knx.Falcon.KnxnetIp.IpProtocol.Udp, true));
      ​


      ​Dabei hab ich jetzt erst gesehen, dass useNAT vorher false war. Ich probiere es jetzt nochmal mit zwei weiteren Varianten:
      • useNat = false
      • tcp anstatt udp

      Kommentar


        #4
        Vielleicht kannst du auch gleich mal mit Wireshark mitschneiden

        Kommentar


          #5
          Also es könnte am NAT Modus gelegen haben. Ich hab es jetzt auf Linux und Windows für ca. 6h getestet, auf Linux mit TCP + Nat = False auf Windows mit UDP + Nat = False und in beiden Fällen bisher ohne Abbrüche.

          Kommentar


            #6
            Welchen Effekt hat denn NAT Mode bei TCP in Falcon?

            Kommentar


              #7
              Gar keinen.
              "NAT Mode" heißt bloß, dass der Client in den gesendeten Frames die IP-Adresse in allen HPAIs ausnullt.
              Bei TCP muss er das sowieso machen.

              Kommentar


                #8
                Okay kurzes Update: Es gab letztlich doch wieder Abbrüche nach ca. 7h. Also sowohl mit TCP als auch UDP + NAT true/false hab ich mit dem aktuellen Falcon SDK unter Linux und Windows Abbrüche, was mich dazu verleitet nochmal meine Infrastruktur und meinen Code zu checken.

                Kommentar


                  #9
                  Konntest du das Problem bereits beheben? Auch ich merke unter .NET Core mit Linux Docker Container immer wieder Verbindungsabrisse.

                  Kommentar


                    #10
                    Zitat von p3root Beitrag anzeigen
                    Konntest du das Problem bereits beheben? Auch ich merke unter .NET Core mit Linux Docker Container immer wieder Verbindungsabrisse.
                    Leider nicht. Habe es mit allen möglichen Kombinationen aus TCP / UDP probiert und auch eine Windows Umgebung ohne Virtualisierung getestet. Es bricht immer irgendwann ab.

                    An Firewall oder Netzwerk kann es nicht liegen, da das ältere Falcon SDK auf .NET 4.7.2 problemlos seit Jahren im exakt gleichen setup läuft.

                    Es muss also irgendwas mit dem neuen Falcon SDK oder im .NET Core Framework anders sein

                    Kommentar


                      #11
                      Hast du es mal mit AutoReconnect = false probiert und den Reconnect selbst gemacht?

                      Kommentar


                        #12
                        Zitat von p3root Beitrag anzeigen
                        Hast du es mal mit AutoReconnect = false probiert und den Reconnect selbst gemacht?
                        Ja, ich habe sogar den Status der Connection getracked. Sobald der Status „broke“ ist wird der reconnect gemacht. Aber oft war die Verbindung noch nicht „broke“, ging aber trotzdem nicht mehr.

                        Kommentar


                          #13
                          Zitat von mymazl Beitrag anzeigen
                          Ja, ich habe sogar den Status der Connection getracked. Sobald der Status „broke“ ist wird der reconnect gemacht. Aber oft war die Verbindung noch nicht „broke“, ging aber trotzdem nicht mehr.
                          ok, das selbe verhalten hab ich auch. Strange. Ich muss es mir selbst mal im Detail ansehen, hab nur mal die Suchmaschine angeworfen und bin dann hier gelandet. Ich werde mir das die nächsten Tage im Detail ansehen. Ich halte dich am laufenden!

                          Kommentar


                            #14
                            Hat irgendjemand irgendwas gefunden? Also ich bin kurz davor zurück auf Falcon 5 zu gehen und mir einen Wrapper zu bauen, der mit .NET Framework 4.7 einfach nur die Bus Connection macht und Write, Read + Webhook bereitstellt.

                            Ich nutze im übrigen einen älteren MDT Router:
                            SCN-IP100.01
                            Zuletzt geändert von mymazl; 16.04.2024, 18:38.

                            Kommentar


                              #15
                              Klaus Gütter Ich hab es heute nochmal mit Wireshark gemonitored. Die Verbindung bricht in der Application ab, bei Wireshark sehe ich aber weiterhin alle Messages ganz normal eintreffen weiterhin. Also in Wireshark sehe ich keine Abbrüche und auch keine Auffälligkeiten.

                              Kommentar

                              Lädt...
                              X