应用层网关für SIP-Protokoll
LSN (Die Verwendung von Large Scale NAT) mit Session Initiation Protocol (SIP) ist kompliziert, da SIP- nachrichten ip - address sen sowohl in den SIP- headern als auch im SIP- body enthten。Wenn LSN mit SIP verwendet wid, enthalten die SIP- header Informationen über den Anrufer und den Empfänger, und das Gerät übersetzt diese Informationen, um sie vor dem external Netzwerk zu verstecken。Der SIP-Body enthält die SDP-Informationen(会话描述协议),die ip - addressen und Portnummern für die Übertragung Der Medien enthten。
SIP ALG hält folgende rfc ein:
- RFC 3261
- RFC 3581
- RFC 4566
- RFC 4475
Hinweis:
SIP ALG wid in einer eigenständigen Citrix ADC Appliance, in einem Citrix ADC-Hochverfügbarkeitssetup sowie in einem Citrix ADC- cluster - setup unterstützt。
Funktionsweise von SIP ALG
Die Art and Weise, wie Die Übersetzung von IP-Adressen durchgeführt wid, hängt vom Typ und under Richtung der Nachricht ab. Eine Nachricht kann Eine der folgenden sein:
- Eingehende Anfrage
- Ausgehende Antwort
- Ausgehende Anfrage
- Eingangsantwort
Bei einer ausgehenden Nachricht werden die private ip address und die Portnummer des SIP-Clients durch die öffentliche ip address und die Portnummer des Citrix ADC ersetzt, die während derLSN-Konfiguration angegebene ip - address und Portnummer des LSN-Poolsgenannt将。Bei einer einghenenden Nachricht werden die ip - address des LSN-Pools und die Portnummer durch die private address des Clients ersetzt。Wenn die Nachricht öffentliche IP-Adressen enthält, behält sie die Citrix ADC SIP ALG bei。Außerdem wird ein Lochloch auf der erstellt:
- lsn - pool - ip - address和-Port im Auftrag des private Clients, so dass die Nachrichten, die zu dieser ip - address和dem Port ausdem öffentlichen Netzwerk gelangen, als SIP-Nachrichten behandelt werden。
- Öffentliche ip地址和端口im Auftrag der öffentlichen客户端,所以dass die Nachrichten, die zu dieser ip地址和端口ausdem privaten Netzwerk gelangen, als SIP-Nachrichten behandelt werden。
Wenn eine SIP-Nachricht über das Netzwerk gesendet wd, sammelt das SIP应用层网关(ALG)信息和übersetzt die IP-Adressen in den folgenden Kopfzeilen in lsp - pool -IP-Adressen:
- 通过
- Kontakt
- 路线
- Datensatzroute
在der folgenden SIP-Beispielanforderungsnachricht ersetzt LSN die ip - addressen In den Headerfeldern, um sie vor dem externen Netzwerk auszublenden。
INVITE adam@10.102.185.156 SIP/2.0 Via: SIP/2.0/UDP 192.170.1.161:62914 From: eve@10.120.210.3 To: adam@10.102.185.156 Call-ID: a12abcde@10.120.210.3 Contact: adam@10.102.185.156 Route: < SIP:netscreen@10.150.20.3:5060> record Route: < SIP:netscreen@10.150.20.3:5060>
Wenn eine Nachricht mit sdp - information eintrifft, sammelt die SIP-ALG information ausder Nachricht und übersetzt die IP-Adressen in den folgenden Feldern in lsp - pool -IP-Adressen und Portnummern:
c = (Verbindungsinformationen)
柴油车费尔德康乌夫Sitzungs-奥德中世纪的angezeigt werden。Es erscheint im folgenden格式:
c =
<网络类型> <地址类型> < connection-address >
Wenn es bei der ziel - ip - address um eine unicast - ip - address handelt, erstellt die SIP-ALG unter Verwendung der ip - address und Portnummern, die im Feld m= angegeben sind。
m = (Medienankundigung)
Medienebene angezeigt und enthält die Beschreibung des Mediums。Es erscheint im folgenden格式:
m =
<媒体> <口> <交通> < fmt列表>
一个=
(媒体领域信息)
diesel Feld kann auf Sitzungs- order Medienebene im folgenden格式
一个=
<属性>
一个=
<属性>:<值>
Der folgende Auszug auseinem Beispiel-SDP-Abschnitt zeigt die Felder, die für die资源zuordnung übersetzt werden。
o=user 2344234 55234434 IN IP4 10.150.20.3
c=IN IP4 10.150.20.3
m=音频43249 RTP/AVP 0
Die folgende Tabelle zeigt, wie SIP-Nutzlast übersetzt奇怪。
艾恩亨德·安弗拉奇(von öffentlich zu privat) | : | Ohne |
冯: | Ohne | |
Anruf-ID: | Ohne | |
乳房: | Ohne | |
Anforderungs-URI: | Ersetzen Sie die ip - address des lsp - pools durch eine private ip - address | |
Kontakt: | Ohne | |
Datensatzroute | Ohne | |
Reiseroute: | Ohne | |
Ausgehende Antwort (von privat zu öffentlich) | : | Ohne |
冯: | Ohne | |
Anruf-ID: | Ohne | |
乳房: | Ohne | |
Anforderungs-URI: | Ersetzen Sie die private ip - address durch die ip - address des lsp - pools | |
Kontakt: | Ersetzen Sie die private ip - address durch die ip - address des lsp - pools | |
Datensatzroute | Ohne | |
Reiseroute: | Ohne | |
Ausgehende Anfrage (von privat zu öffentlich) | : | Ohne |
冯: | Ohne | |
Anruf-ID: | Ohne | |
乳房: | Ersetzen Sie die private ip - address durch die ip - address des lsp - pools | |
Anforderungs-URI: | Ohne | |
Kontakt: | Ersetzen Sie die private ip - address durch die ip - address des lsp - pools | |
Datensatzroute | Ohne | |
Reiseroute: | Ohne | |
Eingangsantwort (von öffentlich zu privat) | : | Ohne |
冯: | Ohne | |
Anruf-ID: | Ohne | |
乳房: | Ersetzen Sie die ip - address des lsp - pools durch eine private ip - address | |
Anforderungs-URI: | Ohne | |
Kontakt: | Öffentliche ip地址代表,瀑布vorhanden | |
Datensatzroute | Ohne | |
Reiseroute: | Ohne |
Einschränkungen der SIP ALG
Eine SIP-ALG帽子folgende Einschränkungen:
- Es wild nur SDP-Nutzlast unterstützt。
- 自由之夜unterstützt:
- Multicast-IP-Adressen
- Verschlusseltes SDP
- SIP TLS
- FQDN-Ubersetzung
- SIP-Layer-Authentifizierung
- TD / Partitionierung
- Mehrteiliger Korper
- SIP-Nachrichten über IPv6-Netzwerk
- Linie faltbar
Getestete sip客户端和代理服务器
Folgende SIP- clients和Proxyserver wurden mit SIP ALG getestet:
- SIP-Kunden:X-Lite, Zoiper, Ekiga。亚美亚
- Proxyserver:openSIPS
LSN SIP-Szenario: SIP-Proxy außerhalb des privaten Netzwerks (Öffentliches Netzwerk)
SIP-Client-Registrierung
是SIP-Aufruf muss sich der SIP-Client beim SIP-Registrar registereren, indem er eine REGISTER-Anfrage zusammenstellt and an den SIP-Registrar senddet。Die SIP-ALG der Citrix ADC Appliance fängt Die Anforderung ab, ersetzt Die ip - address and portnumber in der Anforderung durch Die ip - address des LSN-Pools und Die portnumber in der LSN-Konfiguration und leitet Die Anforderung and den SIP-Registrar weiter。Die SIP ALG öffnet dann ein Pinhole in der Citrix ADC Konfiguration, um eine weitere SIP- kommunikation zwischen dem SIP- client und dem SIP- registrar zu ermöglichen。Der SIP-Registrar sendet eine 200 OK-Antwort an den SIP-Client über die ip - address und die portnumber des lsp - pools。Die Citrix ADC Appliance erfast diese Antwort in der Pinhole, und Die SIP-ALG ersetzt den SIP-Header, woodurch Die ursprünglichen SIP-Felder Kontakt, Via, Route und Datensatzroute wieder in Die Nachricht eingefügt werden。Die SIP ALG leitet Die Nachricht dann an den SIP- client weiter。在einem SIP- anrufregistrierungsablauf verwendet的翻译是:Die folgende Abbildung zeigt。
Ausgehende Anrufe
Ein SIP-Aufruf wid mit einer SIP-INVITE-Nachricht initiiert, die vom internen an das externe Netzwerk gesendet wid。Die SIP-ALG führt NAT für Die ip - address and portnumber in den SIP-Header-Feldern Via, Kontakt, Route und record Route durch and ersetzt sie durch Die ip - address des LSN-Pools und Die portnumber。LSN speichert diese Zuordnungen für nachfolgende SIP-Nachrichten im SIP-Aufruf。Die SIP ALG öffnet dann分开针孔在der Citrix ADC Konfiguration,嗯SIP和Medien über Die Citrix ADC- appliance an den dynamisch zugewiesenen Ports zu ermöglichen, Die in den SDP- und SIP- headern angegeben sind。Wenn eine 200-OK-Nachricht beim Citrix ADC eintrifft, wid sie von einer der erstellten针孔erfast。Die SIP-ALG ersetzt den sip -头和尾ursprünglichen SIP-Felder Kontakt, Via, Route und Datensatzroute wieder her und leitet Die Nachricht dann an den internen SIP-Client weiter。
Eingehende Anrufe
Ein einghender SIP-Anruf wid mit einer SIP-INVITE-Nachricht vom external Client an das interne Netzwerk initiiert。在sip -注册商的授权下,sip -注册商的客户端在注册网络上的权限和权限,在注册网络上的权限和权限,在注册网络上的权限。
Die SIP-ALG führt NAT für Die SIP-Header-Feldern Via, Kontakt, Route and Record-Route aus, übersetzt sie in Die ip - address and Portnummer des internen SIP-Clients and leitet Die Anforderung an den SIP-Client weiter。Wenn die vom internen SIP-Client gesendete 200-OK-Antwortnachricht bei der Citrix ADC Appliance eintrifft, führt die SIP-ALG NAT für die ip - address und Portnummern in den SIP-Headerfeldern Via, Kontakt, Route und Record-Route aus and überträgt sie in die ip - address und Portnummer des LSN-Pools und leitet die Antwort weiter。-Nachricht an den SIP-Registrar und öffnet dann ein Lochloch in ausgehender Richtung für die weitere SIP-Kommunikation。
Anrufbeendigung
再见- nachricht beendt einen Anruf。Wenn das Gerät eine byye -Nachricht empfängt, übersetzt es die Header-Felder in der Nachricht genauso wie für jede andere Nachricht。Da jedoch eine BYE Nachricht vom Empfänger mit einem 200 OK quittiert werden muss, verzögert die ALG den Anrufabbau um 15 Sekunden, um Zeit für die Übertragung des 200 OK zu ermöglichen。
Anruf zwischen客户im selben Netzwerk
Wenn sowohl Client A als auh Client B im selben Netzwerk einen Anruf initiieren, werden die SIP-Nachrichten über den SIP-Proxy im external Netzwerk weitergeleitet。Die SIP ALG verarbeitet Die INVITE von Client als normaler ausgehender Anruf。Da sich客户端B im selben Netzwerk befindet, sendet der SIP-Proxy das INIVITE zurück一个die Citrix ADC Appliance。Das SIP ALG prüft die invite -Nachricht, stellt fest, dass sie die nat - ip - address von Client A enthält, und ersetzt diese durch die private ip - address des Clients A, bevor die Nachricht an Client B gesendet wd。Sobald der Anruf zwischen den Clients hergestellt ist, ist der Citrix ADC nicht and der Medienübertragung beteiligt。zwischen den客户端。
Weitere LSN SIP-Szenarien: SIP-Proxy im privaten Netzwerk
Wenn Sie den SIP-Proxyserver im privaten Netzwerk hosten möchten, empfiehlt Citrix, eine der folgenden Aktionen durchzuführen:
- Konfigurieren Sie eine statische LSN-Zuordnung für den privaten SIP-Proxy。Weitere Informationen发现Sie unterKonfigurieren von statischen LSN-Maps.Stellen Sie sicher, dass der NAT-Port mit dem Port identisch ist, der im sip - alg - proffil konfiguriert ist。
- Konfigurieren Sie den SIP-Proxyserver在einer非军事区(DMZ)。
Abbildung 1。SIP-Anrufregistrierung
Abbildung 2。SIP-Eingehender Anruf
Die Abbildungen 1和2 zeigen Die folgenden Szenarien:
- 场景1:SIP-Client im privaten Netzwerk registriert sich beim SIP-Proxyserver im selben Netzwerk。ALG-Vorgänge werden nicht ausgeführt,大sich der SIP-Client和下SIP-Proxyserver im selben Netzwerk befinden。
- 场景2:Der SIP-Client im öffentlichen Netzwerk registriert sich beim SIP-Proxyserver im privaten Netzwerk。Die REGISTER-Meldung vom öffentlichen SIP-Client wid mit der auf der Appliance konfigurierten statischen LSN-Zuordnung an Die Citrix ADC Appliance gesendet, und Die Appliance erstellt ein Lochloch für weitere SIP-Vorgänge。
- 场景3 - SIP-Eingehender Anruf。Ein Ein hender SIP-Anruf wid mit einer SIP-INVITE-Nachricht vom externen zum internen Netzwerk initiiert。Die Citrix ADC Appliance empfängt Die INVITE-Nachricht vom SIP-Client C2, der sich im externen Netzwerk befindet, über Die statischen LSN-Zuordnungen, Die auf der Citrix ADC Appliance konfiguriert sind。
模具器具erstelltin Lochloch和leitet模具邀请- nachricht和den sip -代理weiter。Der SIP-Proxy leitet dann die INVITE-Nachricht an den SIP-Client C1 im internen Netzwerk weiter。Der SIP-Client C1 sendet dann 180 und 200 OK-Nachrichten an den SIP-Proxy, Der die Nachricht wiederum über die Citrix ADC Appliance an den SIP-Client C2 weiterleitet。Wenn die vom internen SIP-Client C1 gesendete 200 OK-Antwortnachricht im Citrix ADC eintrifft, führt die SIP-ALG NAT für die ip - address und Portnummern in den SIP-Headerfeldern Via, Kontakt, Route und Datensatzroute sowie in den SDP-Feldern aus und ersetzt sie durch die ip - address des LSN-Pools und Portnummer。Die SIP ALG leitet dann Die Antwortmeldung an SIP- client C2 weiter und öffnet ein Lochloch in ausgehender Richtung für weitere SIP- kommunikation。
Unterstützung für Überwachungsprotokolle
Sie können ALG- informationen als Teil der LSN- protokollierung protokollieren, indem Sie ALG in der LSN-Überwachungsprotokollierungskonfiguration aktivieren。Weitere information zur LSN-Protokollierung finden Sie unterLSN protokollieren und überwachen.Eine Protokollmeldung für einen ALG-Eintrag im LSN-Protokoll besteht aus folgenden信息:
- Zeitstempel
- SIP-Nachricht型号(z. B. SIP-Anfrage)
- sip客户端的ip地址和端口
- ziel - ip地址和端口des SIP-Proxy
- NAT ip地址和端口
- SIP-Methode
- Sequenznummer
- Ob der sip -客户注册员订单
- Benutzername und Domäne des Anrufers
- Benutzername和Domäne des接收器
Beispiel-Audit-Protokoll:
Anfrage:
07/19/2013:09:49:19 GMT Informational 0- ppp -0: default ALG ALG_SIP_INFO_PACKET_EVENT 169 0: Infomsg: "SIP request" - Group: g2 - Call_ID: NTY0YjYwMTJmYjNhNDU5ZjlhMmQxOTM5ZTE3Zjc3NjM。—Transport: TCP—Source_IP: 192.169.1.165—Source_port: 57952—Destination_IP: 10.102.185.156—Destination_port: 5060—Natted_IP: 10.102.185.191—Natted_port: 10313—Method: REGISTER—Sequence_Number: 3060—REGISTER: YES—Content_Type:—Caller_user_name: 156_pvt_1—Callee_user_name: 156_pvt_1—Caller_domain_name:—Callee_domain_name:—
Antwort:
07/19/2013:09:49:19 GMT Informational 0- ppp -0: default ALG ALG_SIP_INFO_PACKET_EVENT 170 0: Infomsg: "SIP response" - Group: g2 - Call_ID: NTY0YjYwMTJmYjNhNDU5ZjlhMmQxOTM5ZTE3Zjc3NjM。—Transport: TCP—Response_code 200—Source_IP: 10.102.185.156—Source_port: 5060—Destination_IP: 192.169.1.165—Destination_port: 57952—Natted_IP: 10.102.185.191—Natted_port: 10313—Sequence_Number: 3060—Content_Type:—Caller_user_name: 156_pvt_1—Callee_user_name: 156_pvt_1—Caller_domain_name:—Callee_domain_name:—
Konfigurieren von SIP ALG
Sie müssen die SIP ALG als Teil der LSN-Konfiguration konfigurieren。安伟松根是我的朋友,是我的朋友konfigationsschritte für LSN.你是我的朋友,是我的朋友
- Legen Sie beim Hinzufügen des LSN-Anwendungsprofils die folgenden参数fest:
- IP-Pooling = PAIRED
- 地址和Portzuordnung =端点独立
- Filterung =端点独立
wicktig: Damit die SIP ALG funktioniert, ist eine vollständige Konus-NAT-Konfiguration erforderlich。
Beispiel:
add lsn appsprofile app_tcp TCP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
- 那是在sip - alg - profile和stellen Sie sicher,那是在Quellportbereich和Zielportbereich definieren之间的关系。
Beispiel:
add lsn sipalgprofile sipalgprofile_tcp -sipsrcportrange 1-65535 -sipdstportrange 5060 -openViaPinhole ENABLED -openRecordRoutePinhole ENABLED -sipTransportProtocol TCP
- Legen Sie SIP ALG = ENABLED fest, während Sie die LSN-Gruppe erstellen。
Beispiel:
add lsn group g1 -clientname c1 -sipalg ENABLED
- Binden Sie das sip - alg - proffil an die LSN-Gruppe。
Beispiel SIP-ALG-Konfiguration:
在因特网上,在因特网上,在因特网上,在因特网上,在因特网上,在因特网上,在因特网上,在因特网上。
add lsn pool p1 Done bind lsn pool p1 10.102.185.190 Done add lsn client c1 Done bind lsn client c1 -network 192.170.1.0 -netmask 255.255.255.0 Done add lsn appsprofile app_tcp TCP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT Done add lsn appsprofile app_udp -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT Done bind lsn appsprofile app_tcp 1-65535 Done bind lsn appsprofile app_udp 1-65535 Done bind lsn appsprofile app_udp 1-65535 Done add lsn sipalgprofilesipalgprofile_tcp -sipdstportrange 5060 -openViaPinhole启用-openRecordRoutePinhole -sipTransportProtocol启用TCP完成添加lsn sipalgprofile sipalgprofile_udp -sipdstportrange 5060 -openViaPinhole启用-openRecordRoutePinhole启用-sipTransportProtocol UDP完成添加lsn组g1列出c1 -sipalg启用完成绑定lsn组g1 -poolname p1做绑定lsn组g1 -appsprofilename app_tcp完成绑定lsn组g1 -appsprofilename app_udp绑定lsn g1 -sipalgprofilename小组完成的sipalgprofile_tcp Done bind lsn group g1 -sipalgprofilename sipalgprofile_udp Done