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. Die Medienformen im Rahmen einer Session (VoIP, „Video over IP“ 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 und bietet somit – 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 Maßnahmen 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 im Bezug auf Zeit und Datenverkehrsaufkommen bei der Verwendung von UDP als Transportprotokoll für SIP. Da SIP bezüglich seines Nachrichtenaufbaus in großen Teilen auf dem HTTP-Standard basiert und die SIP-Nachrichten unter Verwendung des ASCII-kompatiblen UTF-8-Zeichensatzes (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.
Weitere Protokolle
Damit Telefongespräche übers Internet geführt werden können, ist VoIP von weiteren Netzwerk-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 von dem 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, einschließlich:
- Root DNS Server: Diese Server befinden sich an der Spitze der DNS-Hierarchie und verweisen auf Top-Level-Domain (TLD)-DNS-Server.
- Top-Level-Domain (TLD)-DNS-Server: 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 Servers: 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 große 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/PAT
NAT (Network Address Translation)
Network Address Translation (NAT) ist eine Technik, die in der Computernetzwerktechnik verwendet wird, um Netzwerkadressinformationen in IP-Paket-Headern zu ändern, während sie über einen Router oder eine Firewall übertragen werden. Ihr Hauptzweck besteht darin, öffentliche IPv4-Adressen zu sparen und dient nicht zur Netzwerksicherheit.
In einem typischen NAT-Szenario verbindet sich ein privates Netzwerk mit Geräten, die private IP-Adressen verwenden (wie die im RFC 1918 definierten Bereiche: 10.0.0.0/8
, 172.16.0.0/12
oder 192.168.0.0/16
), über einen Router oder ein Gateway mit dem Internet. Wenn ein Gerät aus dem privaten Netzwerk ein Paket ins Internet sendet, ersetzt der Router die Quell-IP-Adresse des Pakets durch seine eigene öffentliche IP-Adresse, bevor es an das Internet weitergeleitet wird. Dies ermöglicht es mehreren Geräten innerhalb des privaten Netzwerks, eine einzelne öffentliche IP-Adresse gemeinsam zu nutzen.
NAT führt auch die umgekehrte Übersetzung durch, wenn Pakete aus dem Internet für Geräte innerhalb des privaten Netzwerks bestimmt sind. Es übersetzt die Ziel-IP-Adresse des eingehenden Pakets von der öffentlichen IP-Adresse in die entsprechende private IP-Adresse basierend auf der NAT-Zuordnungstabelle.
NAT hilft, die Erschöpfung der IPv4-Adressen zu lindern und bietet ein Maß an Sicherheit, indem es die interne Netzwerkstruktur vor der Außenwelt verbirgt. Es kann jedoch Komplexitäten für bestimmte Netzwerkanwendungen einführen, wie z. B. Peer-to-Peer-Kommunikation und IP-basierte Protokolle, die eine End-to-End-Konnektivität erfordern.
PAT (Port Address Translation)
Port Address Translation (PAT), auch bekannt als NAT-Überlastung, ist eine Variante der Network Address Translation (NAT), die es ermöglicht, mehrere private IP-Adressen einer einzelnen öffentlichen IP-Adresse zuzuordnen. Dies wird erreicht, indem verschiedene Quellportnummern verwendet werden, um zwischen Verbindungen zu unterscheiden.
In einem PAT-Szenario verbindet sich ein privates Netzwerk mit Geräten, die private IP-Adressen verwenden, über einen Router oder ein Gateway mit dem Internet. Wenn ein Gerät aus dem privaten Netzwerk ein Paket ins Internet sendet, ersetzt der Router die Quell-IP-Adresse des Pakets durch seine eigene öffentliche IP-Adresse und weist eine eindeutige Quellportnummer aus einem Pool verfügbarer Ports zu. Diese Kombination aus öffentlicher IP-Adresse und eindeutiger Portnummer wird verwendet, um die Verbindung zu identifizieren.
PAT führt eine Zuordnungstabelle, die jede private IP-Adresse und Portnummer mit der entsprechenden öffentlichen IP-Adresse und Portnummer verknüpft. Beim Empfang von Paketen aus dem Internet, die für Geräte im privaten Netzwerk bestimmt sind, verwendet der Router diese Zuordnungstabelle, um die Ziel-IP-Adresse und Portnummer zurück zur entsprechenden privaten IP-Adresse und Portnummer zu übersetzen.
Die Vorteile von PAT umfassen die effiziente Nutzung öffentlicher IP-Adressen und eine verbesserte Netzwerksicherheit durch die Verdeckung der internen Netzwerkstruktur. Es kann jedoch Einschränkungen wie Porterschöpfung bei der Verarbeitung einer großen Anzahl gleichzeitiger Verbindungen und potenzielle Probleme mit bestimmten Netzwerkanwendungen, die auf bestimmten Portnummern beruhen, einführen.
Insgesamt ist PAT eine weit verbreitete Technik zur Bereitstellung von Internetzugang für private Netzwerke, während öffentliche IP-Adressen gespart und die Netzwerksicherheit verbessert wird.
NAT/PAT Keepalive
NAT (Network Address Translation) und PAT (Port Address Translation) Tabellen sind Datenstrukturen, die von Routern und Firewalls verwendet werden, um Übersetzungen zwischen privaten und öffentlichen IP-Adressen sowie Portnummern zu verfolgen. Diese Tabellen sind wesentliche Komponenten von NAT- und PAT-Mechanismen, die das Routing von Paketen zwischen privaten Netzwerken und dem Internet ermöglichen.
In einer typischen NAT/PAT-Bereitstellung führt das NAT/PAT-Gerät bei der Kommunikation eines Geräts aus einem privaten Netzwerk mit einem Ziel im Internet eine Adress- und Portübersetzung auf den ausgehenden Paketen durch, bevor es sie an das Ziel weiterleitet. Es führt Einträge in seiner Übersetzungstabelle, um diese Zuordnungen zu verfolgen.
Die NAT/PAT-Tabelle enthält typischerweise folgende Informationen für jeden Übersetzungseintrag:
- Private IP-Adresse: Die ursprüngliche Source-IP-Adresse des Pakets innerhalb des privaten Netzwerks.
- Private Portnummer: Die ursprüngliche Source-Portnummer, die von der Anwendung oder dem Dienst auf dem Gerät innerhalb des privaten Netzwerks verwendet wird.
- Öffentliche IP-Adresse: Die übersetzte öffentliche IP-Adresse, die vom NAT/PAT-Gerät für die Kommunikation mit dem Ziel im Internet zugewiesen wird.
- Öffentliche Portnummer: Die übersetzte öffentliche Portnummer, die vom NAT/PAT-Gerät zugewiesen wird, um die Verbindung eindeutig zu identifizieren.
Darüber hinaus können einige NAT/PAT-Implementierungen Funktionalitäten zur Aufrechterhaltung der Übersetzungseinträge enthalten. Keepalive-Mechanismen werden verwendet, um die Übersetzungseinträge zu aktualisieren und ein vorzeitiges Ablaufen aufgrund von Inaktivität oder Leerlaufzeitüberschreitungen zu verhindern.
Mit der Keepalive-Funktionalität sendet das NAT/PAT-Gerät regelmäßig Keepalive-Nachrichten oder -Sonden an die beteiligten Endpunkte aktiver Verbindungen. Wenn eine Antwort von einem der Endpunkte empfangen wird, die darauf hinweist, dass die Verbindung noch aktiv ist, wird der Übersetzungseintrag in der NAT/PAT-Tabelle aktualisiert, und die Leerlaufzeit wird zurückgesetzt. Dies stellt sicher, dass die Übersetzung aktiv bleibt und nicht vorzeitig abläuft.
Vorteile von NAT/PAT-Tabellen mit Keepalive-Funktionalität umfassen:
- Verbesserte Zuverlässigkeit: Keepalive-Mechanismen helfen, aktive Verbindungen aufrechtzuerhalten und Übersetzungseinträge vor vorzeitigen Abläufen aufgrund von Leerlaufzeiten zu schützen, was eine kontinuierliche Konnektivität für Netzwerkanwendungen und -dienste gewährleistet.
- Reduzierte Unterbrechungen: Durch das Aktualisieren von Übersetzungseinträgen, bevor sie ablaufen, minimiert die Keepalive-Funktionalität das Risiko von Unterbrechungen oder Störungen in der Netzwerkkommunikation.
- Verbesserte Benutzererfahrung: Benutzer erleben eine reibungslosere und zuverlässigere Netzwerkkonnektivität mit reduzierter Latenz und weniger abgebrochenen Verbindungen.
Es ist jedoch wichtig zu beachten, dass Keepalive-Mechanismen zusätzlichen Overhead und Netzwerkverkehr einführen können, was sich auf die Leistung in Umgebungen mit hohem Datendurchsatz auswirken kann. Darüber hinaus können Keepalive-Nachrichten durch Firewalls oder Netzwerksicherheitsgeräte gefiltert oder blockiert werden, was zu potenziellen Problemen mit der Konnektivität und der Wartung der Übersetzungstabelle führen kann.
Insgesamt spielen NAT/PAT-Tabellen mit Keepalive-Funktionalität eine wichtige Rolle bei der Aufrechterhaltung stabiler und unterbrechungsfreier Netzwerkkommunikation, insbesondere in Umgebungen mit dynamischen Adresszuweisungen, Leerlaufverbindungen und mit VoIP Endgeräten.
CGNAT (Carrier-Grade NAT)
CGNAT), auch bekannt als large-scale NAT oder NAT444, ist eine Netzwerkadressü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 1918-Bereich: 10.0.0.0/8
, 172.16.0.0/12
, 192.168.0.0/16
) oder im RCF 6598 Bereich (100.64.0.0/10
. 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 Ziel-öffentliche 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 konservieren, indem mehrere Kunden hinter einer einzelnen öffentlichen IP-Adresse multiplexiert werden.
- Skalierbarkeit: CGNAT ermöglicht es ISPs, eine große 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.
- Netzwerksicherheit: CGNAT bietet ein Maß an Netzwerksicherheit, indem die internen IP-Adressen der Geräte der Kunden vor dem öffentlichen Internet verborgen werden, wodurch die Exposition gegenüber potenziellen Angriffen und unbefugtem Zugriff verringert wird.
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 großen 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.