Ich habe einen ganz normalen Glasfaser-Business-Anschluss.
Gewünschter Aufbau:
ONT → OPNsense → FRITZ!Box (als IP-Client ausschließlich für Telefonie)
Dafür habe ich zunächst Folgendes eingerichtet:
Aliasse in OPNsense
* Alias für die FRITZ!Box (IP-Adresse)
* Alias für die Telefonie-Ports:
`9000–10999, 5060, 5061, 3478, 7078–7110, 10000–20000, 30000–31000, 40000–41000`
* Alias für die SIP-Netzbereiche der Telekom:
`217.0.24.0/22, 217.0.0.0/13, 217.0.7.0/24, 217.0.128.0/24`
---
1. Versuch: Outbound NAT
Einstellung:
* Modus: Hybrid
* Interface: WAN
* Source: FRITZ!Box
* Source Port: ANY (UDP)
* Destination: ANY
* Destination Port: ANY
* NAT-Adresse: Interface Address
* Static Port: aktiviert
Ergebnis:
Die Rufnummern lassen sich nicht registrieren.
---
2. Versuch: Port Forwarding
Regel 1:
* Interface: WAN
* Version: IPv4
* Protokoll: UDP
* Source: ANY
* Destination: WAN-Adresse
* Destination Port: Telefonie-Alias
* Redirect target IP: IP der FRITZ!Box
* Redirect target Port: Telefonie-Alias
Regel 2:
* Interface: WAN
* Source: SIP-Server Telekom
* Source Port: Telefonie-Alias
* Destination: WAN-Adresse
* Destination Port: ANY
* Redirect target IP: IP der FRITZ!Box
* Redirect target Port: Telefonie-Alias
Firewall-Regeln entsprechend angepasst.
Ergebnis:
Die Rufnummern lassen sich registrieren, aber es gibt keine Sprachübertragung (RTP).
Das Gespräch wird nach exakt 11 Sekunden abgebrochen.
---
Weitere Tests ohne Erfolg
* Outbound NAT auf ANY + Port Forwarding deaktiviert→ keine Registrierung
* Outbound NAT auf ANY + Port Forwarding aktiv→ Registrierung, aber kein Audio
* UDP-Timeout angepasst
* SIP-Server (per DNS-Name) als ,,Private Address" erlaubt
* SIP-Verarbeitungsmodus angepasst
* FRITZ!Box auf Werkseinstellungen inkl. Downgrade → keine Änderung
* Keep-Alive in der FRITZ!Box angepasst → keine Änderung
* Telekom-DNS in der FRITZ!Box eingetragen → keine Änderung
* FRITZ!Box als Router-Kaskade konfiguriert → keine Änderung
---
Aktueller Workaround
ONT → FRITZ!Box → OPNsense (als Exposed Host)
* NAT auf der OPNsense deaktiviert
* Netzwerke / VLANs sauber in der FRITZ!Box geroutet
So funktioniert alles zuverlässig.
Ich würde jedoch gerne die OPNsense direkt am ONT betreiben.
Frage:
Was könnte ich noch konfigurieren oder anpassen, um das Setup
ONT → OPNsense → FRITZ!Box (IP-Client) stabil mit Telefonie zum Laufen zu bringen?
Deinen aktuellen Workaround habe ich genau so auch laufen :)
Ist einfach am simplesten als sich mit Telefonie rumzuschlagen xD
1. Deine Outbound NAT Regel müsste UDP und TCP umfassen (SIP kann über beide Protokolle gehen und das tut es bei der Telekom auch). TCP fehlt bei Dir.
2. Du benötigst die Outbound NAT Regel und die Port-Forwarding-Regel(n). Die erste sorgt dafür, dass der SIP-Server des ISP den richtigen Absende-Port sieht (wenn er nicht "static" wäre, wäre das ein zufälliger Port). Die zweite erlaubt eingehende SIP und RTP-Verbindungen.
3. Die Telefonie-Ports der Fritzbox sind (standardmäßig): 5060 für TCP und UDP (SIP) und 7077:7109 UDP (RTP/RTCP). Man findet sie in den Diagnose- und Sicherheitseinstellungen der Fritzbox und auch in den gespeicherten Enstellungen. Der Rest ist Mumpitz. Man kann diese Einstellungen aber auch ändern und ich würde nicht ausschließen, dass sie sich nach den Telefonie-Provider-Einstellungen richten - durch Modifikation der Konfigurationsdatei lassen sie sich auf jeden Fall ändern.
Es gibt in der Konfigurationsdatei beispielsweise noch zwei Angaben: "random_sip_port_enabled = no" und "random_sip_port_range = "20000-30000", bei mir waren die aber immer inaktiv.
4. Viele ISPs machen VoIP auch über IPv6 (Beispiel: M-Net). Wenn das aktiv ist, wird es immer bevorzugt verwendet. Daher helfen dann die IPv4-Einstellungen gar nichts. In diesem Fall muss man entsprechende Firewall-Regeln für den eingehenden SIP- und RTP-Verkehr für IPv6 anlegen. Dazu benötigt man die EUI-64 der Fritzbox und muss einen "Dynamic IPv6 Host"-Alias als Ziel-Host nutzen oder man verwendet stattdessen einen MAC-Alias. Ausgehender IPv6-Traffic ist hoffentlich sowieso erlaubt und es braucht dort auch kein NAT. Das aber nur am Rande, weil es nicht Dein Problem ist.
5. Ich würde anfangs komplett darauf verzichten, die VoIP-Server des ISP als Einschränkung zu verwenden und zunächst "any" als Quelle zuzulassen. Wenn alles funktioniert, kann man das ggf. nachrüsten. Einer der Gründe ist, dass Deine Subnetze in beiden Richtungen nicht stimmen:
a. 217.0.7.0/24 ist in 217.0.0.0/13 vollständig enthalten und daher überflüssig, wie ein Subnetzrechner Dir sagen wird.
b. Bei mir ergibt "nslookup -query=srv _sip._udp.tel.t-online.de":
_sip._udp.tel.t-online.de service = 20 0 5060 nes008-f01-mav-pc-rt-001.edns.t-ipnet.de.
_sip._udp.tel.t-online.de service = 10 0 5060 kln000-l01-mav-pc-rt-001.edns.t-ipnet.de.
_sip._udp.tel.t-online.de service = 30 0 5060 hno002-l01-mav-pc-rt-001.edns.t-ipnet.de.
Beispielsweise: "nslookup nes008-f01-mav-pc-rt-001.edns.t-ipnet.de." ergibt 217.0.147.5, was wiederum außerhalb der von Dir zugelassenen Bereiche liegt. Übrigens: _sip._tcp.tel.t-online.de gibt es auch, wie bereits erwähnt!
Wenn man überhaupt so etwas macht, dann über einen ASN-Alias der Telekom. Das lässt dann zwar auch alle Kunden der Telekom zu, stellt aber sicher, dass es immer funktioniert. Bei anderen ISPs kann das nach hinten losgehen, weil die teilweise Dienstleister für VoIP nutzen, die andere Netzbereiche verwenden, dann muss man deren ASN verwenden.