Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
AUF DIESER SEITE
 

Services der nächsten Generation Gateways auf Anwendungsebene

In diesem Thema werden die Anwendungsebene Gateways (ALGs) beschrieben, die von Junos OS für Dienste der nächsten Generation unterstützt werden. Die ALG-Unterstützung umfasst die Verwaltung von Pinholes und über- und untergeordneten Beziehungen für die unterstützten ALGs.

RTSP

Das Real-Time Streaming Protocol (RTSP) steuert die Bereitstellung von Daten mit Echtzeiteigenschaften wie Audio und Video. Die von RTSP gesteuerten Streams können RTP verwenden, dies ist jedoch nicht erforderlich. Medien können über denselben RTSP-Steuerdatenstrom übertragen werden. Hierbei handelt es sich um ein HTTP-ähnliches textbasiertes Protokoll, das jedoch von Client und Server verwaltet Sitzungsinformationen. Eine Sitzung wird mit der SETUP-Nachricht aufgebaut und mit der TEARDOWN-Nachricht beendet. Der Transport (das Medienprotokoll, die Adresse und die Portnummern) wird im Setup und in der Setup-Antwort ausgehandelt.

Für die Unterstützung von Stateful Firewall- und NAT-Services müssen Sie das RTSP-ALG für TCP-Port 554 konfigurieren.

Der ALG überwacht die Steuerverbindung, öffnet Flows dynamisch für Medienströme (RTP/RTSP) und führt NAT-Adress- und Port-Umschreibungen durch.

NIPPEN

Das Session Initiation Protocol (SIP) ist ein Protokoll auf Anwendungsebene, mit dem Mediensitzungen eingerichtet, aufrechterhalten und beendet werden können. Es ist ein weit verbreitetes VoIP-Signalisierungsprotokoll (Voice over IP). Das SIP ALG überwacht den SIP-Datenverkehr und erstellt und verwaltet dynamisch Löcher auf den Signalisierungs- und Medienpfaden. Das ALG lässt nur Pakete mit den richtigen Berechtigungen zu. Das SIP ALG führt außerdem die folgenden Funktionen aus:

  • Verwaltet Beziehungen zwischen über- und untergeordneten Sitzungen.

  • Erzwingt Sicherheitsrichtlinien.

  • Verwaltet Lochanlagen für den VoIP-Datenverkehr.

Das SIP ALG unterstützt die folgenden Funktionen:

  • Zustandsgesteuerte Firewall

  • Statische Quellen-NAT

  • Quellen-NAT nur für dynamische Adressen

  • Network Address Port Translation (NAPT)

Anmerkung:

SIP-Sitzungen sind auf 12 Stunden (720 Minuten) für die NAT-Verarbeitung auf den MS-MIC- und MS-MPC-Schnittstellenkarten begrenzt. SIP-Sitzungen auf dem MS-DPC haben keine zeitliche Begrenzung.

Konfigurieren von SIP

Das Session Initiation Protocol (SIP) ist ein generalisiertes Protokoll für die Kommunikation zwischen Endgeräten, die an Internetdiensten wie Telefonie, Fax, Videokonferenzen, Instant Messaging und Dateiaustausch beteiligt sind.

Das Junos OS stellt ALG-Services in Übereinstimmung mit dem in RFC 3261, SIP, Session Initiation Protocol beschriebenen Standard bereit. Die SIP-Datenströme unter dem Junos OS werden in RFC 3665, Beispiele für grundlegende Anrufabläufe im Session Initiation Protocol (SIP) beschrieben.

Anmerkung:

Vor der Implementierung von Junos OS SIP ALG sollten Sie sich mit bestimmten Einschränkungen vertraut machen, die unter Einschränkungen von Junos OS SIP ALG erläutert werden

Die Verwendung von NAT in Verbindung mit dem SIP-ALG führt aufgrund der Adressübersetzung zu Änderungen in den SIP-Header-Feldern. Eine Erläuterung dieser Übersetzungen finden Sie unter SIP ALG-Interaktion mit Network Address Translation.

Um SIP auf Adaptive Services Interfaces zu implementieren, konfigurieren Sie die Anweisung application-protocol auf Hierarchieebene [edit applications application application-name] mit dem Wert sip. Darüber hinaus gibt es zwei weitere Anweisungen, die Sie konfigurieren können, um die Implementierung von SIP zu ändern:

  • Sie können den Router so konfigurieren, dass er alle eingehenden SIP-Anrufe für die Endgeräte annimmt, die sich hinter der NAT-Firewall befinden. Wenn sich ein Gerät hinter der Firewall bei dem Proxy außerhalb der Firewall registriert, behält der AS- oder Multiservices-PIC den Registrierungsstatus bei. Wenn die learn-sip-register Anweisung aktiviert ist, kann der Router diese Informationen verwenden, um eingehende Anrufe anzunehmen. Wenn diese Anweisung nicht konfiguriert ist, werden keine eingehenden Aufrufe akzeptiert. Nur die Geräte hinter der Firewall können Geräte außerhalb der Firewall anrufen.

    Um die SIP-Registrierung zu konfigurieren, schließen Sie die learn-sip-register Anweisung auf der [edit applications application application-name] Hierarchieebene ein:

    Anmerkung:

    Die learn-sip-register Erklärung gilt nicht für die Next-Gen-Services MX-SPC3.

    Sie können das SIP-Register auch manuell überprüfen, indem Sie den show services stateful-firewall sip-register Befehl eingeben. Weitere Informationen finden Sie in der Befehlsreferenz zu Junos OS-Systemen und Services. Der show services stateful-firewall sip-register Befehl wird für Services der nächsten Generation nicht unterstützt.

  • Sie können einen Timeoutzeitraum für die Dauer von SIP-Anrufen angeben, die in der Warteschleife gehalten werden. Wenn ein Anruf gehalten wird, gibt es keine Aktivität, und Flows können nach Ablauf des konfigurierten inactivity-timeout Zeitraums eine Zeitüberschreitung aufweisen, was zu einem Teardown des Anrufzustands führt. Um dies zu vermeiden, wird der Flow-Timer auf den sip-call-hold-timeout Zyklus zurückgesetzt, wenn ein Anruf gehalten wird, um den Anrufstatus und die Abläufe länger als den inactivity-timeout Zeitraum beizubehalten.

    Anmerkung:

    Die sip-call-hold-timeout Erklärung gilt nicht für die Next-Gen-Services MX-SPC3.

    Um einen Timeoutzeitraum zu konfigurieren, fügen Sie die sip-call-hold-timeout Anweisung auf der [edit applications application application-name] Hierarchieebene ein:

    Der Standardwert ist 7200 Sekunden und der Bereich liegt zwischen 0 und 36.000 Sekunden (10 Stunden).

SIP ALG-Interaktion mit Network Address Translation

Das NAT-Protokoll (Network Address Translation) ermöglicht es mehreren Hosts in einem privaten Subnetz, eine einzige öffentliche IP-Adresse für den Zugriff auf das Internet gemeinsam zu nutzen. Bei ausgehendem Datenverkehr ersetzt NAT die private IP-Adresse des Hosts im privaten Subnetz durch die öffentliche IP-Adresse. Bei eingehendem Datenverkehr wird die öffentliche IP-Adresse wieder in die private Adresse konvertiert, und die Nachricht wird an den entsprechenden Host im privaten Subnetz weitergeleitet.

Die Verwendung von NAT mit dem SIP-Dienst (Session Initiation Protocol) ist komplizierter, da SIP-Nachrichten sowohl in den SIP-Headern als auch im SIP-Text IP-Adressen enthalten. Wenn Sie NAT mit dem SIP-Dienst verwenden, enthalten die SIP-Header Informationen über den Anrufer und den Empfänger, und das Gerät übersetzt diese Informationen, um sie vor dem externen Netzwerk zu verbergen. Der SIP-Text enthält die SDP-Informationen (Session Description Protocol), die IP-Adressen und Portnummern für die Übertragung der Medien enthalten. Das Gerät übersetzt SDP-Informationen für die Zuweisung von Ressourcen zum Senden und Empfangen der Medien.

Wie IP-Adressen und Portnummern in SIP-Nachrichten ersetzt werden, hängt von der Richtung der Nachricht ab. Bei einer ausgehenden Nachricht werden die private IP-Adresse und die Portnummer des Clients durch die öffentliche IP-Adresse und die Portnummer der Firewall von Juniper Networks ersetzt. Bei einer eingehenden Nachricht wird die öffentliche Adresse der Firewall durch die private Adresse des Clients ersetzt.

Wenn eine INVITE-Nachricht über die Firewall gesendet wird, sammelt das SIP-Anwendungsebene-Gateway (ALG) Informationen aus dem Nachrichtenheader in einer Anruftabelle, die zum Weiterleiten nachfolgender Nachrichten an den richtigen Endpunkt verwendet wird. Wenn eine neue Nachricht eintrifft, z. B. eine Bestätigung oder 200 OK, vergleicht das ALG die Felder "Von:", "An:" und "Anruf-ID:" mit der Anruftabelle, um den Anrufkontext der Nachricht zu identifizieren. Wenn eine neue INVITE-Nachricht eintrifft, die dem bestehenden Aufruf entspricht, verarbeitet ALG diese als REINVITE.

Wenn eine Nachricht mit SDP-Informationen eintrifft, weist das ALG Ports zu und erstellt eine NAT-Zuordnung zwischen ihnen und den Ports im SDP. Da das SDP sequenzielle Ports für die RTP- (Real-Time Transport Protocol)- und RTCP-Kanäle (Real-Time Control Protocol) benötigt, stellt das ALG aufeinanderfolgende Ports mit geraden und ungeraden Ports bereit. Wenn ein Portpaar nicht gefunden werden kann, wird die SIP-Nachricht verworfen.

Dieses Thema enthält die folgenden Abschnitte:

Ausgehende Anrufe

Wenn ein SIP-Anruf mit einer SIP-Anforderungsnachricht vom internen zum externen Netzwerk initiiert wird, ersetzt NAT die IP-Adressen und Portnummern im SDP und bindet die IP-Adressen und Portnummern an die Firewall von Juniper Networks. Die SIP-Headerfelder "Via", "Contact", "Route" und "Record-Route" (sofern vorhanden) sind ebenfalls an die IP-Adresse der Firewall gebunden. Das ALG speichert diese Zuordnungen für die Verwendung in erneuten Übertragungen und für SIP-Antwortnachrichten.

Das SIP-ALG öffnet dann Lochblenden in der Firewall, um Medien über das Gerät auf den dynamisch zugewiesenen Ports zuzulassen, die basierend auf Informationen im SDP und in den Headerfeldern "Via", "Contact" und "Record-Route" ausgehandelt werden. Die Pinholes ermöglichen es eingehenden Paketen auch, die IP-Adressen und Ports "Contact", "Via" und "Record-Route" zu erreichen. Bei der Verarbeitung von Rückdatenverkehr fügt das ALG die ursprünglichen SIP-Felder "Contact", "Via", "Route" und "Record-Route" wieder in Pakete ein.

Eingehende Anrufe

Eingehende Anrufe werden vom öffentlichen Netzwerk an öffentliche statische NAT-Adressen oder an Schnittstellen-IP-Adressen auf dem Gerät initiiert. Statische NATs sind statisch konfigurierte IP-Adressen, die auf interne Hosts verweisen. Schnittstellen-IP-Adressen werden dynamisch von der ALG aufgezeichnet, während sie REGISTER-Nachrichten überwacht, die von internen Hosts an den SIP-Registrar gesendet werden. Wenn das Gerät ein eingehendes SIP-Paket empfängt, richtet es eine Sitzung ein und leitet die Nutzlast des Pakets an das SIP-ALG weiter.

Das ALG prüft die SIP-Anforderungsnachricht (zunächst INVITE) und öffnet auf Basis der Informationen im SDP Tore für ausgehende Medien. Wenn eine 200 OK-Antwortnachricht eintrifft, führt das SIP-ALG NAT für die IP-Adressen und Ports aus und öffnet Pinholes in ausgehender Richtung. (Die geöffneten Tore haben eine kurze Gültigkeitsdauer und treten ab, wenn eine 200 OK-Antwortnachricht nicht schnell empfangen wird.)

Wenn eine 200 OK-Antwort eintrifft, untersucht der SIP-Proxy die SDP-Informationen und liest die IP-Adressen und Portnummern für jede Mediensitzung. Das SIP-ALG auf dem Gerät führt NAT für die Adressen und Portnummern durch, öffnet Pinholes für ausgehenden Datenverkehr und aktualisiert die Zeitüberschreitung für Gates in eingehender Richtung.

Wenn das ACK für die 200 OK eintrifft, passiert es auch das SIP ALG. Wenn die Nachricht SDP-Informationen enthält, stellt das SIP-ALG sicher, dass die IP-Adressen und Portnummern im Vergleich zum vorherigen INVITE nicht geändert werden – wenn dies der Fall ist, löscht das ALG alte Pinholes und erstellt neue Pinholes, um Medien passieren zu lassen. Das ALG überwacht auch die SIP-Felder "Via", "Contact" und "Record-Route" und öffnet neue Lochblenden, wenn festgestellt wird, dass sich diese Felder geändert haben.

Weitergeleitete Anrufe

Von einem weitergeleiteten Anruf spricht man beispielsweise, wenn Benutzer A außerhalb des Netzwerks Benutzer B innerhalb des Netzwerks anruft und Benutzer B den Anruf an Benutzer C außerhalb des Netzwerks weiterleitet. Das SIP ALG verarbeitet das INVITE von Benutzer A wie einen normalen eingehenden Anruf. Wenn das ALG jedoch den weitergeleiteten Anruf von B nach C außerhalb des Netzwerks untersucht und feststellt, dass B und C über die gleiche Schnittstelle erreicht werden, öffnet es keine Lochblenden in der Firewall, da die Medien direkt zwischen Benutzer A und Benutzer C fließen.

Anrufbeendigung

Die BYE-Nachricht beendet einen Anruf. Wenn das Gerät eine BYE-Nachricht empfängt, werden die Headerfelder wie bei jeder anderen Nachricht übersetzt. Da eine BYE-Nachricht jedoch vom Empfänger mit einem 200 OK quittiert werden muss, verzögert das ALG den Anrufabriss um fünf Sekunden, um Zeit für die Übertragung des 200 OK zu haben.

Rufen Sie Re-INVITE Nachrichten an

Erneute INVITE-Nachrichten fügen einem Anruf neue Mediensitzungen hinzu und entfernen vorhandene Mediensitzungen. Wenn einem Anruf neue Mediensitzungen hinzugefügt werden, werden neue Blendenöffnungen in der Firewall geöffnet und neue Adressbindungen erstellt. Der Prozess ist identisch mit dem ursprünglichen Anrufaufbau. Wenn eine oder mehrere Mediensitzungen aus einem Anruf entfernt werden, werden Lochblenden geschlossen und Bindungen freigegeben, genau wie bei einer BYE-Nachricht.

Sitzungs-Timer anrufen

Die SIP-ALG verwendet den Wert Session-Expires, um eine Zeitüberschreitung für eine Sitzung zu beenden, wenn keine Re-INVITE- oder UPDATE-Nachricht empfangen wird. Das ALG ruft den Session-Expires-Wert, falls vorhanden, aus der 200 OK-Antwort auf INVITE ab und verwendet diesen Wert für die Signalisierung des Timeouts. Wenn die ALG vor Ablauf der Sitzung eine weitere INVITE-Anweisung empfängt, werden alle Timeout-Werte auf diese neue INVITE-Anweisung oder auf Standardwerte zurückgesetzt, und der Vorgang wird wiederholt.

Als Vorsichtsmaßnahme verwendet das SIP-ALG harte Timeout-Werte, um die maximale Zeitspanne festzulegen, die ein Anruf bestehen kann. Dadurch wird sichergestellt, dass das Gerät geschützt ist, falls eines der folgenden Ereignisse eintritt:

  • Endsysteme stürzen während eines Anrufs ab und es wird keine BYE-Nachricht empfangen.

  • Böswillige Benutzer senden niemals ein BYE bei dem Versuch, ein SIP-ALG anzugreifen.

  • Schlechte Implementierungen des SIP-Proxys können Record-Route nicht verarbeiten und senden nie eine BYE-Nachricht.

  • Netzwerkfehler verhindern, dass eine BYE-Nachricht empfangen wird.

Anrufabbruch

Jede Partei kann einen Anruf abbrechen, indem eine CANCEL-Nachricht gesendet wird. Beim Empfang einer CANCEL-Meldung schließt das SIP-ALG die Blenden durch die Firewall (sofern geöffnet) und gibt Adressbindungen frei. Vor der Freigabe der Ressourcen verzögert das ALG das Auslaufen des Steuerkanals um ca. fünf Sekunden, um Zeit für die letzten 200 OK zu haben. Der Anruf wird beendet, wenn das Zeitlimit von fünf Sekunden abgelaufen ist, unabhängig davon, ob eine 487- oder Nicht-200-Antwort eintrifft.

Gabelung

Forking ermöglicht es einem SIP-Proxy, eine einzelne INVITE-Nachricht gleichzeitig an mehrere Ziele zu senden. Wenn die mehrfachen 200 OK-Antwortnachrichten für den einzelnen Anruf eintreffen, analysiert das SIP-ALG die Anrufinformationen, aktualisiert die Anrufinformationen jedoch mit den ersten 200 empfangenen OK-Nachrichten.

SIP-Nachrichten

Das SIP-Nachrichtenformat besteht aus einem SIP-Header-Abschnitt und dem SIP-Text. In Anforderungsnachrichten ist die erste Zeile des Headerabschnitts die Anforderungszeile, die den Methodentyp, den Anforderungs-URI und die Protokollversion enthält. In Antwortnachrichten ist die erste Zeile die Statuszeile, die einen Statuscode enthält. SIP-Header enthalten IP-Adressen und Portnummern, die für die Signalisierung verwendet werden. Der SIP-Text, der durch eine Leerzeile vom Header-Abschnitt getrennt ist, ist für die Sitzungsbeschreibung reserviert, die optional sind. Junos OS unterstützt derzeit nur SDP. Der SIP-Text enthält IP-Adressen und Portnummern, die für den Transport der Medien verwendet werden.

SIP-Header

In der folgenden SIP-Anforderungsbeispielnachricht ersetzt NAT die IP-Adressen in den Headerfeldern, um sie vor dem externen Netzwerk auszublenden.

Wie die IP-Adressenübersetzung durchgeführt wird, hängt vom Typ und der Richtung der Nachricht ab. Eine Nachricht kann eine der folgenden sein:

  • Eingehende Anfrage

  • Ausgehende Antwort

  • Ausgehende Anfrage

  • Eingehende Antwort

Tabelle 1 zeigt, wie NAT in jedem dieser Fälle durchgeführt wird. Beachten Sie, dass die ALG für einige der Header-Felder mehr als nur bestimmt, ob die Nachrichten von innerhalb oder außerhalb des Netzwerks stammen. Außerdem muss ermittelt werden, welcher Client den Anruf initiiert hat und ob es sich bei der Nachricht um eine Anforderung oder Antwort handelt.

Tabelle 1: Anfordern von Nachrichten mit der NAT-Tabelle

Eingehende Anfrage

(von öffentlich nach privat)

An:

Ersetzen der Domäne durch die lokale Adresse

Von:

Nichts

Anruf-ID:

Nichts

Via:

Nichts

Anforderungs-URI:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Kontakt:

Nichts

Record-Route:

Nichts

Route:

Nichts

Ausgehende Antwort

(von privat zu öffentlich)

An:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Von:

Nichts

Anruf-ID:

Nichts

Via:

Nichts

Anforderungs-URI:

N/A

Kontakt:

Lokale Adresse durch ALG-Adresse ersetzen

Record-Route:

Lokale Adresse durch ALG-Adresse ersetzen

Route:

Nichts

Ausgehende Anforderung

(von privat zu öffentlich)

An:

Nichts

Von:

Lokale Adresse durch ALG-Adresse ersetzen

Anruf-ID:

Nichts

Via:

Lokale Adresse durch ALG-Adresse ersetzen

Anforderungs-URI:

Nichts

Kontakt:

Lokale Adresse durch ALG-Adresse ersetzen

Record-Route:

Lokale Adresse durch ALG-Adresse ersetzen

Route:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Ausgehende Antwort

(von öffentlich nach privat)

An:

Nichts

Von:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Anruf-ID:

Nichts

Via:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Anforderungs-URI:

N/A

Kontakt:

Nichts

Record-Route:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

Route:

Ersetzen Sie die ALG-Adresse durch eine lokale Adresse

SIP-Körper

Die SDP-Informationen im SIP-Text enthalten IP-Adressen, die das ALG zum Erstellen von Kanälen für den Mediendatenstrom verwendet. Bei der Übersetzung des SDP-Abschnitts werden auch Ressourcen, d. h. Portnummern, zum Senden und Empfangen der Medien zugewiesen.

Der folgende Auszug aus einem SDP-Beispielabschnitt zeigt die Felder, die für die Ressourcenzuordnung übersetzt werden.

SIP-Nachrichten können mehr als einen Medienstrom enthalten. Das Konzept ähnelt dem Anfügen mehrerer Dateien an eine E-Mail-Nachricht. Eine INVITE-Nachricht, die von einem SIP-Client an einen SIP-Server gesendet wird, kann z. B. die folgenden Felder enthalten:

Junos OS unterstützt bis zu 6 SDP-Kanäle, die für jede Richtung ausgehandelt werden, also insgesamt 12 Kanäle pro Anruf.

Einschränkungen von Junos OS SIP ALG

Für die Konfiguration des SIP-ALG gelten die folgenden Einschränkungen:

  • Es werden nur die in RFC 3261 beschriebenen Methoden unterstützt.

  • Es wird nur die SIP-Version 2 unterstützt.

  • TCP wird nicht als Transportmechanismus für die Signalisierung von Nachrichten für MS-MPCs unterstützt, wird jedoch für Dienste der nächsten Generation unterstützt.

  • Konfigurieren Sie das SIP-ALG nicht, wenn Sie STUN verwenden. Wenn Clients STUN/TURN verwenden, um die Firewall- oder NAT-Geräte zwischen dem Anrufer und dem Responder oder Proxy zu erkennen, versucht der Client, das Verhalten des NAT-Geräts bestmöglich zu erraten und entsprechend zu handeln, um den Anruf zu tätigen.

  • Verwenden Sie auf MS-MPCs nicht die Option für den endpunktunabhängigen Zuordnungs-NAT-Pool in Verbindung mit dem SIP-ALG. Fehler sind die Folge. Dies gilt nicht für Dienste der nächsten Generation.

  • IPv6-Signalisierungsdaten werden für MS-MPCs nicht unterstützt, wohl aber für Services der nächsten Generation.

  • Authentifizierung wird nicht unterstützt.

  • Verschlüsselte Nachrichten werden nicht unterstützt.

  • Die SIP-Fragmentierung wird für MS-MPCs nicht unterstützt, wohl aber für Services der nächsten Generation.

  • Die maximale UDP-Paketgröße, die eine SIP-Nachricht enthält, wird mit 9 KB angenommen. SIP-Nachrichten, die größer als dieser Wert sind, werden nicht unterstützt.

  • Es wird angenommen, dass die maximale Anzahl von Medienkanälen in einer SIP-Nachricht sechs beträgt.

  • Vollqualifizierte Domänennamen (FQDNs) werden in kritischen Feldern nicht unterstützt.

  • QoS wird nicht unterstützt. SIP unterstützt DSCP-Umschreibungen.

  • Hochverfügbarkeit wird nicht unterstützt, mit Ausnahme von Warm-Standby.

  • Die Timeout-Einstellung "nie" wird für SIP oder NAT nicht unterstützt.

  • Multicast (Forking-Proxy) wird nicht unterstützt.