Verzögerung Google Push

EBB

Customer
Mitglied seit
31. Januar 2022
Beiträge
18
Hallo zusammen,

wir haben hier ein kleines Problem mit dem Push-Diensten bei Google (Apple funktioniert). Folgendes Problem tritt auf, das Signalisieren des Klingelns auf den Android Geräten dauert immer mal sehr lange, das Tischgerät hat dann schon 2-4 mal geklingelt. Dabei ist es egal ob das Android im WLAN oder öffentlichen Netz ist. Es gibt aber auch Zeiten zu den klingeln beide zuverlässig gleichzeitig.

Was mir aufgefallen ist: Bei APNS_HOST für Apple steht ein Wert drin, GCM_HOST ist gar nicht vorhanden und GCM_AUTH sowie GCM_SENDERID sind leer. Evtl. muss hier noch etwas angepasst werden.

Anlage: bei uns im Haus, Autoupdate an (also aktuelle Version 18.0 Upldate 4 (Build 965)
Android App: 18.1.2.60
Android Version: 12

Daniel.
 
Das wird eher mit der Akku-Optimierung bei Android zu tun haben. Die 3CX-App sollte im Hintergrund immer aktiv sein und muss auch Hintergrunddaten zur Verfügung haben.

Zum Test in der 3CX-App einfach mal "Aktiv lassen" in den Einstellungen aktivieren. Der Akkuverbrauch wird höher aber dann sollte es immer direkt signalisieren. Wenn es das Problem löst kann man versuchen die 3CX-App von Akku-Optimierungen auszuschließen.
 
Hall Jestka,

danek, leider hatte ich vergessen das zu schreiben. Den Test haben wir natürlich gemacht und die Einstellungen geprüft. Die Verzögerung tritt sogar bei geöffneter App auf.
 
Hi @EBB,

starte eine Aufzeichnung Wireshark damit du DNS Request und Response prüfst

Läuft Anlage auf auf 3cx Hosted oder Self hostet/On premise?
 
Hallo,

die Anlage läuft on premise. Gibt es besondere DNS-Request die beobachtet werden sollen?

Daniel
 
Hi @EBB,

verwendest du deinen eigenen DNS?
 
Hallo,

das hat etwas geholfen. Wir verwenden einen eigenen DNS. Ich denke, das Problem eingegrenzt zu haben. Die DNS-Anfragren liefern IPv6 und IPv4 für Google und nur IPv4 für Apple. Unsere Anlage hat IPv6 aktiv, leider kommuniziert die Anlage nicht auf IPv6 - ich vermute, dass hier eine Weile IPv6 probiert und dann schaltet die Anlage auf v4 um.

Die Anlage sendet und empfängt "neighbor solicitation" Pakete, dann reagiert sie aber nicht weiter.
 
Hi @EBB,

super, freut mich das ich weiterhelfen konnte.
 
Hallo nochmal,

Es kann doch nicht sein, dass hier immer noch Probleme mit IPv6 sind. Vor allem stellt sich mir die Frage warum selbst das Betriebssystem nicht sauber auf IPv6 Anfragen antwortet.
 
Zuletzt bearbeitet von einem Moderator:
It is unclear to us why Google Services don't work well when being contacted over IPv6, but it is something that we have verified on multiple occasions with various installations.
 
Ich bleibe mal beim deutschen. Die Anlage selber reagiert schon lokal nicht richtig auf IPv6 Anfragen, bzw. sendet diese gar nicht korrekt raus. Wir kommen also noch nicht mal in die Verlegenheit mit Google zu reden.

Es werden z.B. die "who has" Anfragen gesendet, es kommt auch ein "neighbor advertisement, tgt is ...", ab hier ignoriert das System alles und fängt wieder mit einem "who has" an. Das Problem ist also irgendwo im Betriebsystem bzw. der Konfiguration.
 
Hallo zusammen,

wir haben das Problem gefunden und konnten es lösen. Die Lösung sollte aber von 3CX kommen, da unsere Anlage in einer DMZ läuft haben wir den ganz einfachen Weg gewählt.

Ursache ist die NFT Firewall (TABLE inet filter, CHAIN input) und zwar folgende Regeln:
Code:
                fib daddr type broadcast drop comment "Drop other broadcast"
                fib daddr type multicast drop comment "Drop other multicast"
                fib daddr type anycast drop comment "Drop other anycast"

Mit diesen Regeln kann IPv6 nicht funktionionieren. Wir haben jetzt (wie gesagt DMZ) alles freigegeben. Jetzt klingelt es auch gleichzeitig, die Notifikationen gehen über IPv6 raus.

@avraammich_3CX - wird das durch 3CX behoben, oder sollten sich die Kunden um die Firewall kümmern?

 
@bitn2

die Frage welche sich stellt ist wie installiert worden ist, über ISO aktuelle Version?

Was beinhaltet /var/lib/3cxpbx/Bin/nftables.conf?
 
  • Like
Reaktionen: bitn2
Spaßeshalber mal bei mir geguckt, läuft mit IPv6 völlig Problemlos: #!/usr/sbin/nft -f add table inet filter add chain inet filter input add chain inet filter phonesystem insert rule inet filter input jump phonesystem flush chain inet filter phonesystem add table ip filter add chain ip filter INPUT add chain ip filter phonesystem insert rule ip filter INPUT jump phonesystem flush chain ip filter phonesystem add table ip6 filter add chain ip6 filter INPUT add chain ip6 filter phonesystem insert rule ip6 filter INPUT jump phonesystem flush chain ip6 filter phonesystem table inet filter { chain phonesystem { ip daddr 224.0.1.75 counter accept; tcp dport { 5000,5002,5060,5061,5090,5062 } ct state new counter accept; udp dport { 5060,5090,7000-10999 } counter accept; } } table ip filter { chain phonesystem { ip daddr 224.0.1.75 counter accept; tcp dport { 5000,5002,5060,5061,5090,5062 } ct state new counter accept; udp dport { 5060,5090,7000-10999 } counter accept; } } table ip6 filter { chain phonesystem { tcp dport { 5000,5002,5060,5061,5090,5062 } ct state new counter accept; udp dport { 5060,5090,7000-10999 } counter accept; } }
 
  • Like
Reaktionen: avraammich_3CX
Die Anlage ist so wie sie von 3CX zum Download zur Verfügung gestellt wird. D.h. die Firewall geht schon von Haus aus nicht wie erwartet - deshalb denke ich auch, dass 3CX hier nochmal etwas an der Grundkonfiguration der Firwall einstellen muss.

Die o.g. Datei sieht bei uns auch gut aus der störende Teil kommt aus "/etc/nftables.conf" und sieht wie folgt aus:
Code:
#!/usr/sbin/nft -f
# vim:set ts=4:
# You can find examples in /usr/share/nftables/.

# Clear all prior state
flush ruleset

# Basic IPv4/IPv6 stateful firewall for server/workstation.
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        iifname lo accept comment "Accept any localhost traffic"
        ct state { established, related } accept comment "Accept traffic originated from us"

        ip daddr 224.0.1.75 counter accept comment "Accept SIP Multicast"
        fib daddr type broadcast drop comment "Drop other broadcast"
        fib daddr type multicast drop comment "Drop other multicast"
        fib daddr type anycast drop comment "Drop other anycast"
        ip daddr 224.0.0.0/4 drop comment "Drop DVMRP"

        ct state invalid drop comment "Drop invalid connections"

        tcp dport 113 reject with icmpx type port-unreachable comment "Reject AUTH to make it fail fast"

        # 3CX PhoneSystem specific
        tcp dport { 80,443,5000,5001,5015,5060,5061,5090 } ct state new counter accept comment "Accept 3CX PhoneSystem TCP ports"
                udp dport { 69,5060,5090,7000-10999 } counter accept comment "Accept 3CX PhoneSystem UDP ports"

        # Other services specific
        udp dport { 137,138 } counter accept comment "Accept NetBIOS"
        tcp dport { 139,445 } counter accept comment "Accept TCP/IP MS Networking"

        # SSH Bruteforce blacklist
        tcp dport ssh ct state new limit rate 15/minute accept comment "Avoid brute force on SSH"

        # ICMPv4

        ip protocol icmp icmp type {
            echo-reply,  # type 0
            destination-unreachable,  # type 3
            time-exceeded,  # type 11
            parameter-problem,  # type 12
        } accept        comment "Accept ICMP"

        ip protocol icmp icmp type echo-request limit rate 1/second accept      comment "Accept max 1 ping per second"
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Die Datei wurde offensichtlich auch von 3CX angepasst.
@bitn2 was gibt denn "nft list table inet filter" aus?
 
Die Anlage ist so wie sie von 3CX zum Download zur Verfügung gestellt wird. D.h. die Firewall geht schon von Haus aus nicht wie erwartet - deshalb denke ich auch, dass 3CX hier nochmal etwas an der Grundkonfiguration der Firwall einstellen muss.

Die o.g. Datei sieht bei uns auch gut aus der störende Teil kommt aus "/etc/nftables.conf" und sieht wie folgt aus:
Code:
#!/usr/sbin/nft -f
# vim:set ts=4:
# You can find examples in /usr/share/nftables/.

# Clear all prior state
flush ruleset

# Basic IPv4/IPv6 stateful firewall for server/workstation.
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;

        iifname lo accept comment "Accept any localhost traffic"
        ct state { established, related } accept comment "Accept traffic originated from us"

        ip daddr 224.0.1.75 counter accept comment "Accept SIP Multicast"
        fib daddr type broadcast drop comment "Drop other broadcast"
        fib daddr type multicast drop comment "Drop other multicast"
        fib daddr type anycast drop comment "Drop other anycast"
        ip daddr 224.0.0.0/4 drop comment "Drop DVMRP"

        ct state invalid drop comment "Drop invalid connections"

        tcp dport 113 reject with icmpx type port-unreachable comment "Reject AUTH to make it fail fast"

        # 3CX PhoneSystem specific
        tcp dport { 80,443,5000,5001,5015,5060,5061,5090 } ct state new counter accept comment "Accept 3CX PhoneSystem TCP ports"
                udp dport { 69,5060,5090,7000-10999 } counter accept comment "Accept 3CX PhoneSystem UDP ports"

        # Other services specific
        udp dport { 137,138 } counter accept comment "Accept NetBIOS"
        tcp dport { 139,445 } counter accept comment "Accept TCP/IP MS Networking"

        # SSH Bruteforce blacklist
        tcp dport ssh ct state new limit rate 15/minute accept comment "Avoid brute force on SSH"

        # ICMPv4

        ip protocol icmp icmp type {
            echo-reply,  # type 0
            destination-unreachable,  # type 3
            time-exceeded,  # type 11
            parameter-problem,  # type 12
        } accept        comment "Accept ICMP"

        ip protocol icmp icmp type echo-request limit rate 1/second accept      comment "Accept max 1 ping per second"
    }

    chain forward {
        type filter hook forward priority 0; policy drop;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Die Datei wurde offensichtlich auch von 3CX angepasst.
@bitn2 was gibt denn "nft list table inet filter" aus?
Die Datei sieht bei mir anders aus! Bei dir fehlt der komplette IPv6 Teil:

# ICMPv6 ip6 nexthdr icmpv6 icmpv6 type { destination-unreachable, # type 1 packet-too-big, # type 2 time-exceeded, # type 3 parameter-problem, # type 4 echo-reply, # type 129 } accept comment "Accept basic IPv6 functionality" ip6 nexthdr icmpv6 icmpv6 type echo-request limit rate 1/second accept comment "Accept max 1 ping per second" ip6 nexthdr icmpv6 icmpv6 type { nd-router-solicit, # type 133 nd-router-advert, # type 134 nd-neighbor-solicit, # type 135 nd-neighbor-advert, # type 136 } ip6 hoplimit 255 accept comment "Allow IPv6 SLAAC" ip6 nexthdr icmpv6 icmpv6 type { mld-listener-query, # type 130 mld-listener-report, # type 131 mld-listener-reduction, # type 132 mld2-listener-report, # type 143 } ip6 saddr fe80::/10 accept comment "Allow IPv6 multicast listener discovery on link-local" } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; } }
 
Hier auch die Ausgabe von "nft list table inet filter"

table inet filter { chain input { type filter hook input priority 0; policy drop; jump phonesystem iifname "lo" accept comment "Accept any localhost traffic" ct state { established, related } accept comment "Accept traffic originated from us" ip daddr 224.0.1.75 counter packets 0 bytes 0 accept comment "Accept SIP Multicast" fib daddr type broadcast drop comment "Drop other broadcast" fib daddr type multicast drop comment "Drop other multicast" fib daddr type anycast drop comment "Drop other anycast" ip daddr 224.0.0.0/4 drop comment "Drop DVMRP" ct state invalid drop comment "Drop invalid connections" tcp dport auth reject comment "Reject AUTH to make it fail fast" tcp dport { http, https, 5000, 5001, 5015, sip, sip-tls, 5090 } ct state new counter packets 0 bytes 0 accept comment "Accept 3CX PhoneSystem TCP ports" udp dport { tftp, sip, 5090, 7000-10999 } counter packets 0 bytes 0 accept comment "Accept 3CX PhoneSystem UDP ports" udp dport { netbios-ns, netbios-dgm } counter packets 0 bytes 0 accept comment "Accept NetBIOS" tcp dport { netbios-ssn, microsoft-ds } counter packets 0 bytes 0 accept comment "Accept TCP/IP MS Networking" tcp dport ssh ct state new limit rate 15/minute accept comment "Avoid brute force on SSH" ip protocol icmp icmp type { echo-reply, destination-unreachable, time-exceeded, parameter-problem } accept comment "Accept ICMP" ip protocol icmp icmp type echo-request limit rate 1/second accept comment "Accept max 1 ping per second" ip6 nexthdr ipv6-icmp icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, parameter-problem, echo-reply } accept comment "Accept basic IPv6 functionality" ip6 nexthdr ipv6-icmp icmpv6 type echo-request limit rate 1/second accept comment "Accept max 1 ping per second" ip6 nexthdr ipv6-icmp ip6 hoplimit 255 icmpv6 type { nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } accept comment "Allow IPv6 SLAAC" ip6 nexthdr ipv6-icmp icmpv6 type { mld-listener-query, mld-listener-report, mld-listener-done, mld2-listener-report } ip6 saddr fe80::/10 accept comment "Allow IPv6 multicast listener discovery on link-local" } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; } chain phonesystem { ip daddr 224.0.1.75 counter packets 0 bytes 0 accept tcp dport { 5000, rfe, sip, sip-tls, 5062, 5090 } ct state new counter packets 55 bytes 2988 accept udp dport { sip, 5090, 7000-10999 } counter packets 309183 bytes 130056197 accept } }
 
Stimmt das sieht bei mir anders aus. Beim groben drüber schauen, sieht es auch aus, als könnte es laufen.
Danke.
 

Statistik des Forums

Themen
44.414
Beiträge
232.721
Mitglieder
78.331
Neuestes Mitglied
b2daniel