Hallo zusammen,
der Firewall Checker meldet bei mir „Full Cone Test failed“. Ich habe das Problem Schritt für Schritt eingegrenzt. Soweit ich es beurteilen kann, liegt die Ursache nicht an der Firewall, sondern in der PBX bzw. im Checker selbst. Vielleicht kann jemand von 3CX mitlesen und das einordnen.
Umgebung
Konfiguration
Ergebnis des Checkers
Was ich per tcpdump nachvollzogen habe
34.159.93.50.3479 > öffentliche IP.20012: UDP, length 68
34.159.93.50.3479 > öffentliche IP.20002: UDP, length 68
...
34.159.93.50.3479 > 3CX-VM.20012: UDP, length 68
34.159.93.50.3479 > 3CX-VM.20002: UDP, length 68
In der State-Tabelle der Firewall ist die Rückrichtung durchgehend NO_TRAFFIC.
34.159.93.50.3479 > 3CX-VM.20006: [udp sum ok] UDP, length 68
34.159.93.50.3479 > 3CX-VM.5090: [udp sum ok] UDP, length 68
Fazit
Die Pakete liegen nachweislich korrekt an der Netzwerkkarte der PBX an. Firewall und Hypervisor kann ich damit als Ursache ausschließen. Die PBX-VM wird von 3CX verwaltet, dort habe ich nichts verändert.
Meine Fragen
Vollständige Mitschnitte und die Regelauszüge kann ich bei Bedarf gerne per PN an einen 3CX-Mitarbeiter schicken.
der Firewall Checker meldet bei mir „Full Cone Test failed“. Ich habe das Problem Schritt für Schritt eingegrenzt. Soweit ich es beurteilen kann, liegt die Ursache nicht an der Firewall, sondern in der PBX bzw. im Checker selbst. Vielleicht kann jemand von 3CX mitlesen und das einordnen.
Umgebung
- 3CX als VM auf Proxmox VE, virtio-NIC (Version 20.0 Update 9 (Build 995 Release - AI 1.4.48))
- Firewall: OPNsense 26.7.1, ebenfalls als VM auf demselben Host
- Die PBX hat eine eigene öffentliche IP
- RTP-Portbereich: 20000–50000 UDP
- Alle SIP-Trunks sind registriert, Telefonie funktioniert einwandfrei
Konfiguration
- Source-NAT: 3CX → öffenltiche IP mit Static Port, Quellports bleiben also 1:1 erhalten
- Policy Routing: Ausgehender Verkehr der PBX läuft über deren eigene öffentliche IP
- Portweiterleitungen auf die PBX mit unveränderten Ports: 5060 UDP/TCP, 5061 TCP, 5090 UDP/TCP, 443 TCP, 20000–50000 UDP/TCP, dazu passende Allow-Regeln
Ergebnis des Checkers
- Die Port-Mapping-Tests sind bestanden, es gibt keine „Mapping does not match“-Meldungen mehr.
- Der Full-Cone-Test schlägt fehl.
Was ich per tcpdump nachvollzogen habe
- Die Probes kommen an der öffentlichen IP an. Ein zweiter STUN-Server schickt während des Tests Pakete an die zuvor gemappten Ports. Beobachtet habe ich 34.159.93.50:3479 und in einem anderen Lauf 34.73.139.160:3479.
34.159.93.50.3479 > öffentliche IP.20012: UDP, length 68
34.159.93.50.3479 > öffentliche IP.20002: UDP, length 68
...
- Die Firewall leitet sie korrekt an die PBX weiter, und zwar mit unverändertem Port:
34.159.93.50.3479 > 3CX-VM.20012: UDP, length 68
34.159.93.50.3479 > 3CX-VM.20002: UDP, length 68
In der State-Tabelle der Firewall ist die Rückrichtung durchgehend NO_TRAFFIC.
- Die Probes erreichen die Netzwerkkarte der PBX-VM intakt. Das habe ich auf dem Proxmox-Host direkt am tap-Interface der VM mitgeschnitten: Die Ziel-MAC ist die der PBX, alle Pakete haben udp sum ok, Probes auf 5060, 5090 und 20000–20298 kommen an.
34.159.93.50.3479 > 3CX-VM.20006: [udp sum ok] UDP, length 68
34.159.93.50.3479 > 3CX-VM.5090: [udp sum ok] UDP, length 68
- Zum Vergleich: Normaler eingehender Tunnel-Verkehr auf 5090 läuft über denselben Weg. Er hat dieselbe Quell- und Ziel-MAC, gültige Prüfsummen und wird von der PBX beantwortet. Auf Layer 2 bis 4 unterscheiden sich die Full-Cone-Probes davon nicht.
- Die PBX antwortet auf keine einzige Probe. Der STUN-Server wiederholt jede Anfrage dreimal im Abstand von etwa einer Sekunde und macht dann mit den nächsten Ports weiter.
Fazit
Die Pakete liegen nachweislich korrekt an der Netzwerkkarte der PBX an. Firewall und Hypervisor kann ich damit als Ursache ausschließen. Die PBX-VM wird von 3CX verwaltet, dort habe ich nichts verändert.
Meine Fragen
- Gibt es auf der PBX einen lokalen Paketfilter (nftables/iptables), der unaufgeforderte UDP-Pakete von neuen Absendern im RTP-Bereich verwirft?
- Erwartet der Checker die Full-Cone-Probes auf einem anderen Socket oder zu einem anderen Zeitpunkt?
- Ist das Full-Cone-Ergebnis für den Betrieb relevant, wenn Trunks registriert sind und Telefonie funktioniert, oder ist es rein informativ?
Vollständige Mitschnitte und die Regelauszüge kann ich bei Bedarf gerne per PN an einen 3CX-Mitarbeiter schicken.