NAT übersetzt die private IP-Adressen innerhalb des Unternehmens in öffentliche IP-Adressen sichtbar im öffentlichen Internet. In den meisten Fällen wird NAT mit Firewall kombiniert in einem Gerät.
NAT wird in zwei Arten klassifiziert:
NAT-Zuordnung kann unabhängig Endpunkt sein, wenn es gleiche externe abgebildete Adresse (oder vielmehr eine Kombination aus IP-Adresse und Port) verwendet für Pakete, die von einem Gerät dahinter, die sich auf unterschiedliche Endpunkt im Internet bestimmt sind.
Beispiel Interne Endpunkt sendet ein Paket mit Quelle IPi: Pi und Ziel IPE1: Pe1 und zum Ziel IPE2: Pe2 (IPI - interne Endpunkt-IP-Adresse, IPE1 und IPE2 - extern Endpunkte # 1 und # 2 IP-Adressen, Pi, PE2 Pe1 sind Korrespondent Transportschicht-Ports). NAT Karten statisch IPi: Pi zu ipnat: Pnat in beiden Fällen so externen Endpunkt # 1 wird ein Paket mit Quelle ipnat: Pnat und Ziel IPE1: Pe1 und # 2 mit derselben Quelle von ipnat: Pnat und Ziel IPE2: Pe2
Im Gegensatz dazu gibt ein Endpunkt ist abhängig Mapping, wo NAT Karten IPi: Pi bis IPnat1: Pnat1 für Endpunkt # 1 und auf IPnat2: Pnat2 für Endpunkt # 2
NAT-Filterung kann sein Endpoint-unabhängig, Adresse abhängig und Adress- und Port abhängig. Endpoint unabhängige Filterung ermöglicht es jedem internen Endpunkt mit einem beliebigen Quellport zu internen Endpunkt einmal NAT binging etabliert wird von diesem zu kommunizieren.
Pi zum Ziel von IPE1: Beispiel Interne Endpunkt ein Paket mit Quelle von IPi senden Pe1 zu externen Endpunkt # 1. NAT übersetzen IPi: Pi bis ipnat: Pnat. Externe Endpunkt # 1 ein Paket zurück mit Quelle IPE1 senden: PE2 bis NAT ipnat: Pnat und Paket über NAT geht und erreicht internen Endpunkt. Port-Paar (ipnat: Pnat) und NAT es passieren würde erlauben und schließlich internen Endpunkt zu erreichen Zugleich externen Endpunkt # 2 kann ein Paket an die gleiche IP bestimmt senden.
Adresse abhängige Filterung wird diese Situation nicht erlauben. Es wird nicht ein Paket von einem externen Endpunkt # 2 dazu bestimmt, ipnat lassen: Pnat obwohl bekommen. Allerdings wäre es externen Endpunkt # 1 lassen eine neue Sitzung mit Quelle IPE1 herzustellen: Pe3 zu internen Endpunkt. Adress- und Port-abhängige Filterung wird diese Verletzung schließen - nur eine bidirektionale Sitzung wird in diesem Fall erlaubt.
Die meisten NAT-Geräte verwenden Endpunkt abhängige Zuordnung und Adressen- und Portabhängige Filterung und sind symmetrisch NATs genannt.
1) Externe Endpunkt kann nicht an internen Endpunkt verbinden, bis der interne schafft man eine NAT-Bindung. 2) SIP-Signalisierung trägt eine Information, welche IP-Adresse und Port zu verwenden. Also, wenn niedrigere Netzwerkprotokolle Stampfer mit IP-Adresse und Ports SIP Verhandlungen fehlschlägt. 3) NAT-Bindungen mal aus und kann nur hinter dem NAT wiederhergestellt werden, während SIP-Endpunkte sowohl Server als auch Client in einem SIP-Dialog sein kann, und verlassen sich auf die Tatsache, dass jeder von ihnen kann eine Übertragung starten.
Es gibt eine Reihe von Lösungen, die in verschiedenen Situationen angewendet werden kann.
Neben der Bereitstellung einer Bindung NAT zu erstellen, können eine Anrufsignalisierung überprüfen und entsprechend zu beheben. Aber Sie müssen sicher sein, dass Ihr NAT-Gerät Firmware ist up-to-date mit allen Signalisierungsprotokollen. Außerdem kann es nicht mit verschlüsselten Datenverkehr arbeiten, so etwa das sichere SIP vergessen.
RFC 3581 gibt Unterstützung für einen rport Parameter in SIP-Via-Header, die eine Remote-Endpunkt weist Signalisierung zum Ziel zu senden, wenn von Netzwerk-Layer bekam.
Beispiel Asterisk hat eine ein nat = force_rport und nat = comedia Argumente in der sip.conf, die es Netzwerk-Layer-Informationen anstelle der man es bekam in SDP für die Kommunikation mit einem Endpunkt zu verwenden anweist. Comedia in diesem Fall ist für Medien (RTP-Datenverkehr) und Rport ist der Verkehr für die Signalisierung.
Wenn ein Endpunkt während seiner Konfiguration weiß, was externe es ist Adresse wäre es SDP entsprechend konstruieren kann.
Beispiel. Asterisk hat externip = XXX.XXX.XXX.XXX Aussage, wo Sie welche Adresse definieren können in SDP-Angebot zu nutzen.
Aber was, wenn Sie nicht wissen, die externe Adresse oder Ihr Endpunkt nicht erlaubt SDP zu bearbeiten wie in S.3. Es gibt STUN dafür. Interne Endpunkt verbinden via UDP 3478 zu einem STUN-Server im externen Netzwerk. STUN sieht, wie interne Endpunkt-Adresse wurde durch NAT transformiert und den Endpunkt über sie in ihrer Antwort informieren. So kann der Endpunkt SDP fixup implementieren diese Informationen mit Berufung. Aber im Falle von symmetrischen NAT wird es nicht funktionieren, weil NAT-Mapping anders sein würde und gelegentlich, wenn der Endpunkt mit einem anderen Gerät zu kommunizieren beginnen. Außerdem STUN (Simple Traversal of UDP über NAT) ist für UDP und nicht für TCP. Und SIP over TCP ist wünschenswert, wenn SIP-Nachrichten lang sein kann, wenn die Video Implementierung aufrufen und vor allem Videokonferenzen.
TURN (Traversal Mit Relay NAT) Server ist ein Signalisierungs- und Medien Relais Einrichtungen außerhalb des NAT in einer DMZ befindet. Sobald ein interner Endpunkt zu einem TURN-Server verbindet erstellt es eine Bindung von Endpunkten Quelladresse seine routeable Schnittstelle und informiert den Endpunkt darüber. Dann Proxys es nur alle Medien und Signalisierungsverkehr. Der Nachteil dieses Ansatzes könnte eine erhöhte Verzögerung und eine übermäßige Belastung auf TURN-Server-Hardware sein. Drehen Sie nun als ein Teil von STUN IETF-Entwurf berücksichtigt.
Interactive Connectivity Establishment (ICE) ermöglicht Endpunkte entscheiden, welche Adresse für die Kommunikation zu verwenden. Endpoint sind sich ihrer lokalen IP-Adresse können sie weitere Kandidaten von STUN und TURN-Servern oder von UPnP zu bekommen.
Wenn beispielsweise der entfernten Endpunkt der Liste in der SIP INVITE empfängt, antwortet er mit einer Liste von Adressen in einer ähnlichen Weise erhalten. Jeder Endpunkt geht Konnektivität zu versuchen, an die Adressen von den anderen Endpunkt zur Verfügung gestellt von STUN das Senden von Nachrichten an jede Adresse. In diesem Modus müssen die Endpunkte selbst STUN-Server-Funktionalität implementieren und reagieren Anforderungsnachrichten von dem anderen Endpunkt zu betäuben. Wenn ein Endpunkt eines STUN-Rückmeldung erhält, weiß er, dass er eine IP-Adresse, die Konnektivität ermöglicht gefunden hat. Jeder Endpunkt wählt den höchsten Rang-Adresse, die Verbindung zu den anderen Endpunkt bietet. Dann tauschen die SIP-Endpunkte Nachrichten erneut INVITE, diesmal die Adressen während der Konnektivität-Testphase erhalten.
UPnP-fähige Endpunkte können eine Anfrage an UPnP-fähigen NATs machen bestimmte kleine Löcher zu öffnen oder Bindungen schaffen, damit sich bewusst routeable öffentliche Adresse zu machen. Aber nur wenige Endpunkte (ein PC mit Windows XP installiert ist einer von ihnen) Unterstützung UPnP und noch weniger NATs tun. UPnP stellt zudem ein mögliches Sicherheitsrisiko.
Assent ist ein Cisco proprietäres Protokoll, das eine Lösung für NAT präsentiert (und Firewall) Traversal für H.323 und SIP-Kommunikation (sowohl Signalisierung und Medien). H.460 ist ein Industriestandard und ein Nachfolger Assent, wird aber unterstützt nur H.323, während die ganze Idee von Assent bewahren.
H.460 besteht aus drei Hauptteilen: H.460.17 und H.460.18 für die Signalisierung und H.460.19 für Medien-Traversal. In den meisten Fällen braucht es eine Traversal-Clients hinter dem NAT / FW und einen Traversal Server in DMZ. In einem Fall, Ihre interne Endpunkte unterstützen H.460 (was selten der Fall ist), müssen Sie Traversal-Client nicht. Diese Protokolle müssen nicht NAT ALG und NAT erfordern im symmetrischen Modus zu arbeiten, so dass bidirektionale kleine Löcher zu schaffen.
Dieses Verfahren erfordert eine traversal Client einen RAS-Tunnel zu einem traversal Server durch Senden leer H.225 Transport Protocol Data Unit Packets (TPKT) oder RAS rerigestrations um es herzustellen. Wenn ein interner Endpunkt will es einen externen zu erreichen, die sie senden über das langlebige Tunnel zum Traversal Server senden Signalisierung (RAS, H.225 und H.245) an den Traversal-Client (in GKRCS Modus einen Pförtner in Betrieb). Das gleiche Tunnel arbeitet in der umgekehrten Situation, wenn ein externer Endpunkt send an den Traversal Server signalisiert, die durch den Tunnel den Traversal-Client zu erreichen. Dieser Tunnel benötigt nur einen 1720-Port durch FW passieren.
Dieses Appartment hat verwenden RAS-Tunnel nicht als H.460.17. Traversal Server verwenden spezielle H.323 RAS Service Control Anzeige-Traversal-Client anzuweisen, eine Lochblende in NAT zu öffnen. Danach Traversal Client kepps die Pinhole geöffnet von RAS Zurücksendens RRQ reregistrations, H.225 oder H.245 TPKT. Wenn ein interner Endpunkt will einen externen erreichen senden es Signalisierung (RAS, H.225 und H.245) an den Traversal-Client, der sie Server in DMZ Traversal leitet. Der Traversal-Client hält dann NAT im Namen der internen Endpunkt bindend. Wenn ein externer Endpunkt will einen internen Endpunkt zu verbinden, sendet der externe Endpunkt eine Setup-Nachricht an den Traversal-Server und erstellt dann ein RAS-SCI-Paket, das an die fordert, dass über die NAT-Traversal das Client aus ein leeres H.225-Paket senden Traversal Server ein Reverse-Pinhole für das ankommende Setup-Nachricht zu öffnen. SCI Nachricht gibt dem Kunden alle Informationen über Ziel-Ports auf dem Server. So ist diese Verbindung für die Übertragung vonSignalisierung von externen Endpunkt an die internen.
Dieser Mechanismus ermöglicht es Traversal Server als Medien Relais zu fungieren. Es bietet H.245 fixup um sicherzustellen, dass nur routbare Adressen zu externen Endpunkt übertragen werden. Wenn ein externer Endpunkt will Medien interne Netzwerk zu senden es Medien-Client-Traversal sendet, die wiederum sendet H.245 Nachricht Client-Traversal, die es leer RTP-Paket im Gegenzug zu senden instruiert, so NAT-Bindung und eine Loch erstellt und Traversal Server und Client wissen, welche Ports zu verwenden. H.480.19 das gleiche tun, um RTCP Verkehrsfluss.
Zusätzlich bei H.480.19 ist Multiplexen, die Traversal-Client eine reduzierte Anzahl von Port für RTP zu verwenden. Dies erfolgt durch einen 4-Byte-Stream-Nummer an die RTP-Paket angehängt wird um einen Strom von Medium zu identifizieren.
Assent-Protokoll verwendet die gleichen Prinzipien oben beschrieben und ermöglicht auch die SIP-Kommunikation. Das einzige Produkt, ich weiß, die implementiert ist Cisco Expressway ()