Zum Hauptinhalt springen

Grundlagen Netzwerk und VoIP

VoIP-Protokolle

SIP und RTP Protokolle sind für die VoIP-Kommunikation zuständig. Sie agieren auf Layer 5(-7) des OSI-Layer-Modells.

SIP (Session Initiation Protocol)

Das "Session Initiation Protocol" dient der Übermittlung von Signalisierungsnachrichten für die Etablierung von Kommunikationsbeziehungen (Sessions) im Bereich VoIP (Voice over IP). Die Medienformen im Rahmen einer Session (VoIP, Videoanrufe oder sonstige Multimedia-Anwendungen) sowie die zur Codierung und Decodierung der Multimedia-Daten notwendigen Parameter (z.B. verwendeter Codec etc.) werden im Rahmen von SIP-Nachrichten ebenso übertragen wie Teilnehmer- und Signalisierungsinformationen. SIP stellt, unter Zuhilfenahme des unterstützenden Protokolls SDP, die komplette Kommunikationsbasis für den Auf- und Abbau sowie für das Ändern einer bestehenden Session zur Verfügung. Somit bietet SIP im Vergleich zur H.323-Protokollsammlung (ISDN) den entscheidenden Vorteil der einfachen Handhabung, der leichten Erweiterbarkeit sowie der Übersichtlichkeit.

SIP-Transport

SIP kann wahlweise per UDP oder TCP transportiert werden. Da SIP als Vermittlungs- und Signalisierungsprotokoll selbst Handshake-, Wiederholungs- und Timeout-Verfahren als Massnahmen zur Kommunikationssicherung einsetzt und somit verbindungsorientiert arbeitet, besteht keine Notwendigkeit zur Nutzung eines verbindungsorientiert arbeitenden Transportprotokolls. Üblicherweise wird aus diesem Grund das verbindungslose UDP als Transportprotokoll für SIP verwendet. Dieses bietet im Gegensatz zu den verbindungsorientiert arbeitenden Protokollen TCP und SCTP den Vorteil, dass weder ein zusätzlicher Verbindungsaufbau vor dem SIP-Signalisierungsdatenaustausch noch eine Flusskontrolle währenddessen erfolgen muss. Hieraus ergeben sich Einsparungen in Bezug auf Zeit und Datenverkehrsaufkommen bei der Verwendung von UDP als Transportprotokoll für SIP. Da SIP bezüglich seines Nachrichtenaufbaus in grossen Teilen auf dem HTTP-Standard basiert und die SIP-Nachrichten unter Verwendung des ASCII-kompatiblen UTF-8-Zeichensatzes (UTF = Universal Character Set Transformation Format) übertragen werden, sind für ihre schriftliche Darstellung keine besonderen Decoder nötig.

RTP (Real-time Transport Protocol)

RTP ist ein Protokoll, das zur Übertragung von Audio und Video über IP-Netzwerke in Echtzeit verwendet wird.

Netzwerkgrundlagen

Damit Telefongespräche über das Internet geführt werden können, ist VoIP von weiteren Netzwerktechnologien und -protokollen abhängig.

DNS

Das Domain Name System (DNS) ist ein hierarchisches verteiltes Namenssystem, das verwendet wird, um Domainnamen (z.B. example.com) in IP-Adressen (z.B. 192.0.2.1) und umgekehrt zu übersetzen. Es spielt eine entscheidende Rolle dabei, Benutzern den Zugriff auf Ressourcen im Internet unter Verwendung von menschenlesbaren Domainnamen anstelle von numerischen IP-Adressen zu ermöglichen.

Im DNS-Auflösungsprozess sendet eine Anwendung, wenn ein Benutzer einen Domainnamen in einen Webbrowser oder eine andere Netzwerkanwendung eingibt, eine DNS-Anfrage an einen DNS-Resolver, der in der Regel vom Internetdienstanbieter (ISP) des Benutzers oder einem öffentlichen DNS-Resolverdienst bereitgestellt wird. Der Resolver leitet dann den Auflösungsprozess ein, indem er autoritative DNS-Server abfragt, um die entsprechende IP-Adresse für den angegebenen Domainnamen zu erhalten.

Die DNS-Hierarchie besteht aus verschiedenen Arten von DNS-Servern, einschliesslich:

  • Root-DNS-Server: Diese Server befinden sich an der Spitze der DNS-Hierarchie und verweisen auf DNS-Server für Top-Level-Domains (TLD).
  • DNS-Server für Top-Level-Domains (TLD): Diese Server sind für die Verwaltung von Domainnamen innerhalb bestimmter Top-Level-Domains wie .com, .org, .net und länderspezifischen TLDs wie .ch, .at, .de usw. verantwortlich.
  • Authoritative DNS-Server: Diese Server speichern DNS-Einträge (wie A-Einträge, AAAA-Einträge, MX-Einträge usw.) für spezifische Domainnamen und sind dafür verantwortlich, autoritative Antworten auf DNS-Anfragen bereitzustellen.

DNS arbeitet über UDP oder TCP auf Port 53. UDP wird typischerweise für DNS-Anfragen verwendet, während TCP für grosse DNS-Antworten oder Zonentransfers verwendet wird.

Insgesamt ist DNS eine grundlegende Komponente der Internetinfrastruktur, die wesentliche Namensauflösungsdienste bereitstellt, die eine nahtlose Kommunikation und den Zugriff auf Online-Ressourcen ermöglichen.

NAT (Network Address Translation)

Network Address Translation (NAT) ist eine Technik, bei der ein Router oder eine Firewall die IP-Adressen in Paket-Headern umschreibt. Ihr Hauptzweck ist es, öffentliche IPv4-Adressen zu sparen. NAT ist keine Sicherheitsfunktion.

Geräte in einem privaten Netzwerk verwenden private IP-Adressen (gemäss RFC 1918: 10.0.0.0/8, 172.16.0.0/12 oder 192.168.0.0/16). Ein typisches Beispiel ist ein Heimrouter: Alle Geräte im internen Netzwerk – Computer, Smartphones, VoIP-Telefone – erhalten private IP-Adressen (z. B. 192.168.1.x). Wenn eines dieser Geräte ein Paket ins Internet sendet, ersetzt der Router die private Quell-IP-Adresse durch seine eigene öffentliche IP-Adresse. So teilen sich mehrere Geräte eine einzige öffentliche IP-Adresse.

Dabei entsteht ein dynamischer Eintrag in der NAT-Zuordnungstabelle: Der Router merkt sich, welche private IP-Adresse und Portnummer zu welcher öffentlichen IP-Adresse und Portnummer gehört. Dieser Eintrag wird automatisch erstellt, sobald ein Gerät aus dem internen Netzwerk eine Verbindung ins Internet aufbaut, und nach einer bestimmten Inaktivitätszeit (Timeout) wieder gelöscht. Solange der Eintrag existiert, kann der Router eingehende Antwortpakete anhand der Zuordnungstabelle der richtigen privaten Adresse zuordnen.

Da die privaten IP-Adressen nicht direkt aus dem Internet erreichbar sind, sind Geräte im internen Netzwerk ohne dynamischen Eintrag in der NAT-Zuordnungstabelle oder ohne explizite Portweiterleitung nicht von aussen adressierbar. Dies ist jedoch ein Nebeneffekt der Adressübersetzung und keine Sicherheitsfunktion. NAT kann zudem zu Einschränkungen bei bestimmten Netzwerkanwendungen führen, z. B. bei Peer-to-Peer-Kommunikation und IP-basierten Protokollen, die eine End-to-End-Konnektivität erfordern.

PAT (Port Address Translation)

Das oben beschriebene Verfahren – bei dem der Router neben der IP-Adresse auch die Portnummer umschreibt, um mehrere Verbindungen zu unterscheiden – wird genau genommen als Port Address Translation (PAT) bezeichnet. In der Praxis werden die Begriffe NAT und PAT oft synonym verwendet, da die meisten NAT-Implementierungen PAT einsetzen.

Bei einer grossen Anzahl gleichzeitiger Verbindungen kann es bei PAT zu einer Porterschöpfung kommen, da der verfügbare Portbereich begrenzt ist.

NAT-/PAT-Keepalive

Wie im NAT-Abschnitt beschrieben, werden dynamische Einträge in der NAT-Zuordnungstabelle nach einer bestimmten Inaktivitätszeit (Timeout) automatisch gelöscht. Für VoIP ist das problematisch: Ein SIP-Telefon registriert sich beim Provider und wartet dann passiv auf eingehende Anrufe. Ohne aktiven Datenverkehr läuft der NAT-Eintrag ab und eingehende Anrufe können das Gerät nicht mehr erreichen.

Keepalive-Mechanismen lösen dieses Problem, indem sie regelmässig kleine Datenpakete senden, um den NAT-Eintrag aktiv zu halten. Dies geschieht typischerweise auf zwei Arten:

  • SIP-Keepalive: Das VoIP-Endgerät sendet in kurzen Intervallen (z. B. alle 30 Sekunden) SIP-Nachrichten (z. B. OPTIONS oder Re-REGISTER), um den NAT-Eintrag zu erneuern.
  • RTP-Keepalive: Während eines Gesprächs werden bei Gesprächspausen kurze RTP-Pakete gesendet, damit auch der Medienkanal offen bleibt.

Keepalive-Intervalle sollten kürzer als das NAT-Timeout des Routers sein, um Verbindungsunterbrüche zu vermeiden. Ein zu kurzes Intervall erzeugt jedoch unnötigen Netzwerkverkehr. Ein typischer Kompromiss liegt bei 20–30 Sekunden.

CGNAT (Carrier-Grade NAT)

CGNAT, auch bekannt als large-scale NAT oder NAT444, ist eine Netzwerk-Adressübersetzungstechnik (NAT), die von Internetdienstanbietern (ISPs) verwendet wird, um die Knappheit öffentlicher IPv4-Adressen zu verwalten und die wachsende Anzahl von mit dem Internet verbundenen Geräten zu unterstützen.

Bei einer CGNAT-Bereitstellung erhalten mehrere Kunden innerhalb eines ISP-Netzwerks private IP-Adressen aus einem gemeinsamen Pool von Adressen (typischerweise im RFC 6598 Bereich (100.64.0.0/10) oder im RFC 1918-Bereich: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Diese privaten IP-Adressen werden für die Kommunikation innerhalb des ISP-Netzwerks verwendet, können jedoch nicht direkt aus dem öffentlichen Internet erreicht werden.

Wenn ein Gerät innerhalb des ISP-Netzwerks eine Kommunikation mit einem Ziel im Internet initiiert, z. B. den Zugriff auf eine Website oder die Verbindung zu einem Server, führt das CGNAT-Gerät eine Adressübersetzung auf den ausgehenden Paketen durch. Es ersetzt die private Quell-IP-Adresse des Pakets durch eine öffentliche IP-Adresse aus dem Pool des ISPs und führt eine Zuordnungstabelle, um die Übersetzung zu verfolgen.

Ebenso führt das CGNAT-Gerät beim Empfang eingehender Pakete aus dem Internet, die für ein Gerät innerhalb des ISP-Netzwerks bestimmt sind, eine umgekehrte Adressübersetzung durch. Es ersetzt die öffentliche Ziel-IP-Adresse durch die entsprechende private IP-Adresse, bevor es das Paket an den beabsichtigten Empfänger weiterleitet.

Vorteile von CGNAT sind:

  • Konservierung von IPv4-Adressen: CGNAT ermöglicht es ISPs, öffentliche IPv4-Adressen zu sparen, indem sich mehrere Kunden eine einzige öffentliche IP-Adresse teilen.
  • Kosteneinsparungen: ISPs benötigen deutlich weniger öffentliche IPv4-Adressen. Gerade bei mobilen Internetabos können Kunden so von günstigeren Tarifen profitieren, da der ISP weniger Kosten für den Erwerb öffentlicher IP-Adressen hat.
  • Skalierbarkeit: CGNAT ermöglicht es ISPs, eine grosse Anzahl von mit dem Internet verbundenen Geräten innerhalb ihres Netzwerks zu unterstützen, während die Erschöpfung des öffentlichen IPv4-Adressraums minimiert wird.
  • Nicht direkt adressierbar: Da die internen IP-Adressen der Kundengeräte hinter der öffentlichen IP-Adresse des ISPs liegen, sind sie ohne explizite Portweiterleitung nicht direkt aus dem Internet erreichbar. Dies ist jedoch, wie bei NAT generell, ein Nebeneffekt der Adressübersetzung und keine Sicherheitsfunktion.

Nachteile von CGNAT sind:

  • Begrenzte Portverfügbarkeit: CGNAT kann die Verfügbarkeit von Ports für bestimmte Anwendungen und Dienste einschränken und möglicherweise Probleme bei der Peer-to-Peer-Kommunikation, beim Online-Gaming und anderen Anwendungen verursachen, die bestimmte Portkonfigurationen erfordern.
  • Auswirkungen auf die Peer-to-Peer-Kommunikation: CGNAT kann die Peer-to-Peer-Kommunikation und bestimmte Netzwerkprotokolle beeinträchtigen, die auf End-to-End-Konnektivität angewiesen sind, da es eine zusätzliche Ebene der Adressübersetzung einführt und eingehende Verbindungen einschränken kann.
  • Komplexität: Die Verwaltung und Fehlerbehebung von CGNAT-Bereitstellungen kann komplex sein, insbesondere in grossen Netzwerken mit einem hohen Datenverkehrsvolumen und dynamischen Adresszuweisungen.

Insgesamt spielt CGNAT eine entscheidende Rolle bei der Verlängerung der Lebensdauer von IPv4 und ermöglicht es ISPs, Internetzugang für eine wachsende Anzahl von Abonnenten bereitzustellen, während die Einschränkungen durch die Erschöpfung von IPv4-Adressen angegangen werden.

Dual-Stack mit CGNAT

Schweizer Mobilfunkanbieter setzen häufig ein Dual-Stack-Modell mit CGNAT ein: Der Kunde erhält eine vollwertige IPv6-Anbindung und parallel dazu IPv4-Zugang über CGNAT. Der IPv4-Verkehr wird direkt über das Netz des ISPs transportiert, allerdings ohne eigene öffentliche IPv4-Adresse.

Für VoIP gelten dabei die gleichen Einschränkungen wie bei CGNAT: Eingehende Verbindungen über IPv4 sind nur möglich, wenn das Endgerät den NAT-Eintrag per Keepalive aktiv hält. Unterstützt der VoIP-Provider IPv6, kann die Kommunikation vollständig über IPv6 erfolgen und die CGNAT-Einschränkungen umgangen werden.

Treten bei einem mobilen Provider Probleme auf, beispielsweise eine fehlende Erreichbarkeit bei eingehenden Anrufen, empfehlen wir, das SIP-Transportprotokoll im Endgerät von UDP auf TCP umzustellen. TCP-Verbindungen werden von fehlerhaften NAT-Implementierungen und SIP-ALG häufig korrekt behandelt, da sie als zusammenhängende Verbindung erkannt und nicht paketweise manipuliert werden.