Application Layer Gateway for RTSP Protocol
Real Time Streaming Protocol (RTSP) is an application-level protocol for the transfer of real-time media data. Used for establishing and controlling media sessions between end points, RTSP is a control channel protocol between the media client and the media server. The typical communication is between a client and a streaming media server.
Streaming media from a private network to a public network requires translating IP addresses and port numbers over the network. Citrix ADC functionality includes an Application Layer Gateway (ALG) for RTSP, which can be used with Large Scale NAT (LSN) to parse the media stream and make any necessary changes to ensure that the protocol continues to work over the network.
How IP address translation is performed depends on the type and direction of the message, and the type of media supported by the client-server deployment. Messages are translated as follows:
- Outbound request—Private IP address to Citrix ADC owned public IP address called LSN IP address.
- Inbound response—LSN IP address to private IP address.
- Inbound request—No translation.
- Outbound response—Private IP address to LSN pool IP address.
RTSP ALG is supported in a Citrix ADC standalone appliance, in a Citrix ADC high availability setup, as well as in a Citrix ADC cluster setup.
Limitations of RTSP ALG
The RTSP ALG does not support the following:
- Multicast RTSP sessions
- RTSP session over UDP
- Admin partitions
- RTSP Authentication
- HTTP tunneling
Configuring RTSP ALG
Configure RTSP ALG as part of the LSN configuration. For instructions on configuring LSN, see Configuring Large Scale NAT64. While configuring, make sure that you:
- Set the following parameters while adding an LSN application profile:
- IP Pooling = PAIRED
- Address and Port Mapping = ENDPOINT-INDEPENDENT
- Filtering = ENDPOINT-INDEPENDENT
- Enable RTSP ALG in the LSN group
- Create a RTSP ALG profile and bind the RTSP ALG profile to the LSN group
At the command prompt, type:
add lsn group <groupname> -clientname <string> [-rtspalg ( ENABLED | DISABLED )] show lsn group <groupname> <!--NeedCopy-->
At the command prompt, type:
add lsn rtspalgprofile <rtspalgprofilename> [-rtspIdleTimeout <positive_integer>] -rtspportrange <port[-port]> [-rtspTransportProtocol (TCP|UDP)] show lsn rtspalgprofile <rtspalgprofilename> <!--NeedCopy-->
The following sample large scale NAT64 configuration, RTSP ALG is enabled for TCP traffic from subscriber devices in the network 2001:DB8:1002::/96.
add lsn client LSN-NAT64-CLIENT-9 Done bind lsn client LSN-NAT64-CLIENT-9 -network6 2001:DB8:1002::/96 Done add lsn pool LSN-NAT64-POOL-9 Done bind lsn pool LSN-NAT64-POOL-9 203.0.113.90 Done add lsn ip6profile LSN-NAT64-PROFILE-9 -type NAT64 -natprefix 2001:DB8:309::/96 Done add lsn appsprofile LSN-NAT64-APPS-PROFILE-9 TCP -ippooling PAIRED –mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT Done add lsn rtspalgprofile RTSPALGPROFILE-9 -rtspIdleTimeout 1000 -rtspportrange 554 Done add lsn group LSN-NAT64-GROUP-9 -clientname LSN-NAT64-CLIENT-9 -ip6profile LSN-NAT64-PROFILE-7 -rtspalg ENABLED Done bind lsn group LSN-NAT64-GROUP-9 -poolname LSN-NAT64-POOL-9 Done bind lsn group LSN-NAT64-GROUP-9 -appsprofilename LSN-NAT64-APPS-PROFILE-9 Done bind lsn group LSN-NAT64-GROUP-9 -rtspalgprofilename RTSPALGPROFILE-9 Done <!--NeedCopy-->