Citrix ADC

SIP协议的应用程序层网关

将大型NAT (LSN)与会话初始协议(SIP)结合使用非常复杂,因为SIP消息在SIP标头以及SIP正文中包含IP地址。与SIP一起使用LSN时,SIP标头包含有关调用者和接收者的信息,设备将此信息转换为将其隐藏在外部网络中。SIP正文包含会话描述协议(SDP)信息,其中包括用于传输媒体的IP地址和端口号。

SIP ALG遵守以RFC:下

  • RFC 3261
  • RFC 3581.
  • RFC 4566.
  • RFC 4475

注意

Citrix ADC独立设备,Citrix ADC高可用性设置以及Citrix ADC群集设置均支持SIP ALG。

SIP ALG的工作原理

IP地图转换的执行方向取决于消息的类型和方向。

  • 入库请求
  • 出站回复
  • 出站请求
  • 入站回复

对于传出消息,啜饮客户端的没有IP地址和端口码将替换为Citrix ADC没有的公众的知识产权和LSN池IP地址和端口号),该地址和端口号在LSN配置期间指定。对于传入邮件,LSN池IP地址和端口号将替换为客户端的专用地址。如果消息包含任何公有IP地址,Citrix ADC SIP ALG将保留这些地址。此外,一个针孔被创建在:

  • s IP地址和端口,以便从公用网站达此为单位为单位,代表实用的LSN池IP地址和端口,以便从公用网站。
  • 代表所拥有的知识产权IP地铁和端口,以便以便专用网站达此IP地图和端口被视s。

通过网络发送SIP消息时,SIP应用程序层网关(ALG)从邮件中收集信息,并将以下标头中的IP地址转换为LSN池IP地址:

  • 通过
  • 联系人
  • 路由
  • 记录路由

在以下示例SIP请求消息中,LSN替换标头字段中的IP地址,以将它们隐藏在外部网络中。

INVITE adam@10.102.185.156 SIP/2.0通过:SIP/2.0/UDP 192.170.1.161:62914发件人:eve@10.120.210.3收件人:adam@10.102.185.156 Call-ID: a12abcde@10.120.210.3联系人:adam@10.102.185.156路由:< SIP:netscreen@10.150.20.3:5060>记录路由:< SIP:netscreen@10.150.20.3:5060> 

当包含SDP信息的邮件达达时,SIP ALG会从从中级信息,并并将以字段中的IP地球和LSN池IP地址和端牌号:

  • c =(连接信息)

    此字段可显示在会话或媒体级别。它以以以下格式显示:

    C =<网络类型> <地址类型> < connection-address >

    如果目标IP地址是单播IP地址,则SIP ALG会使用m =字段中指定的IP地址和端口号创建针孔。

  • M =(繁体公共公共机构)

    此字段显示在媒体级别,包含媒体描述。它以以以下格式显示:

    毫米 = <端口> <传输>

  • A =(媒体领域信息)

    此字段可以显示在会话或媒体级别,格式如下:

    一个=<属性>

    一个=

以下摘自示例SDP部分显示了为资源分配翻译的字段。

o =用户2344234 55234434在IP4 10.150.20.3中

C = IP4 10.150.20.3

m=audio 43249 RTP/AVP 0

下表显示了如何转换SIP负载。

入站请求(从公共忌关) 更改为:
发件人:
通话身份:
通过:
请求URI: 将LSN池IP地址替换为私有IP地址
联系人:
记录路由
绕线:
出站响应(从私人到公共) 更改为:
发件人:
通话身份:
通过:
请求URI: 将销售IP地址为LSN池IP地址
联系人: 将销售IP地址为LSN池IP地址
记录路由
绕线:
出站请求(从私人到公共) 更改为:
发件人:
通话身份:
通过: 将销售IP地址为LSN池IP地址
请求URI:
联系人: 将销售IP地址为LSN池IP地址
记录路由
绕线:
入站响应(从公开到私有) 更改为:
发件人:
通话身份:
通过: 将LSN池IP地址替换为私有IP地址
请求URI:
联系人: 保留公式IP地址(如果在所)
记录路由
绕线:

SIP ALG的局限性

SIP ALG有以下限制:

  • 仅支持SDP负载。
  • 不支持以下各项:
    • 多播IP地址
    • 加密的SDP
    • SIP TL.
    • FQDN翻译
    • SIP层身份验证
    • TD /划分
    • 多部位体
    • IPv6网络上的SIP消息

经过测试的SIP客户客户和管理器

以下SIP客户端和管理器材已使用SIP ALG进行测试:

  • SIP客户客户:X -精简版,佐伊柏,艾加。阿瓦亚
  • 代理服务器:开放式器具

LSN SIP方便:专用网站外的SIP管理(公用网站)

SIP客户端注册

对于典型的SIP调用,SIP客户端必须向SIP注册商注册,方法是撰写注册请求并将其发送给SIP注册商。Citrix ADC设备的 SIP ALG 拦截请求,将请求中的 IP 地址和端口号替换为 LSN 配置中提供的 LSN 池 IP 地址和端口号,并将请求转发给 SIP 注册商。然后,SIP ALG 在 Citrix ADC 配置中打开一个针孔,以允许 SIP 客户端和 SIP 注册商之间进行进一步的 SIP 通信。SIP 注册商通过 LSN 池 IP 地址和端口号向 SIP 客户端发送 200 OK 响应。Citrix ADC 设备在针孔中捕获此响应,并且 SIP ALG 替换 SIP 标头,将原始联系人、通过、路由和记录路由 SIP 字段放回消息中。SIP ALG 然后将消息转发到 SIP 客户端。下图显示了 SIP ALG 如何在 SIP 呼叫注册流中使用 LSN。本地化后的图片

拨出呼叫

SIP调用是通过从内部网络发送到外部网络的SIP邀请消息启动的。SIP ALG对通过,联系人,路由和记录路由SIP头字段中的IP地址和端口号执行NAT,并将其替换为LSN池IP地址和端口号。LSN为SIP调用中的后续SIP消息存储这些映射。SIP ALG随后在Citrix ADC配置中打开单独的针孔,以允许SIP和媒体通过Citrix ADC设备在SDP和SIP标头中指定的动态分配端口上。当200 OK消息到达Citrix ADC时,它会被创建的针孔之一捕获。SIP ALG替换SIP标头,还原原始联系人,通过,路由和记录路由SIP字段,然后将消息转发到内部SIP客户端。本地化后的图片

来电来电

SIP传入呼叫使使使端到端到内部网站的SIP邀请邀请消息消息消息动.sip opper oper内部sip客户端向端向端向端向端向端向端向端向针孔,将instest oil发布到网页中的sip客户客户。

SIP ALG对通过,联系人,路由和记录路由SIP头字段中的LSN IP地址和端口号执行NAT,将其转换为内部SIP客户端的IP地址和端口号,并将请求转发到SIP客户端。当内部SIP客户端发送的200 OK响应消息到达Citrix ADC设备时,SIP ALG将对“通过”,“联系人”,“路由”和“记录路由SIP头”字段中的IP地址和端口号执行NAT,将其转换为LSN池IP地址和端口号,并转发响应消息发送给SIP注册商,然后在出站方向打开一个针孔,以便进一步的SIP通信。本地化后的图片

呼叫终止

Baga消息终止呼叫。当设备收到收到消息时,它会像对任何其他但翻译邮件中字段字段消息翻译邮件确认字段。所以,由于由于器必须确认200ok的的ebea消息,因此alg将呼叫拆卸延迟15秒,以留出传输200好的时间。

同一网络中的客户端之间的呼叫

当同一网络中的客户端一个和客户端B发起呼叫时,SIP消息将通过外部网络中的SIP代理路由。SIP ALG将来自客户端一个的邀请作为普通传出呼叫处理。由于客户端B位于同一网络中,因此SIP代理将INIVITE发送回Citrix ADC设备。SIP ALG检查INIVITE消息,确定其包含客户端的NAT IP地址,并在将消息发送到客户端B之前将该地址替换为客户端一个的专用IP地址。一旦在客户之间建立调用,客户端之间的媒体传输将不涉及Citrix ADC。

更多LSN SIP场景:专用网页内部的SIP管理

如果要在专用网站中间啜饮管理器,Citrix建议您执行以下作物

  • 为专用SIP管理配置静态LSN映射。有关更多信息,请参阅配置静态lsn映射。确保NAT端口与SIP ALG配置文件中间的端口相同。
  • 在非军事区域(DMZ)内配置SIP代理服务器。

图 1.SIP呼叫注册

本地化后的图片

图 2.SIP来电流程

本地化后的图片

图1.

  • 方案1 - 专用网站中的SIP客户同一网中的SIP服务代服务。不行公路操作用,为SIP客户端和啜饮管理器位于位于一网中。
  • 方案2 -公用网络中的SIP客户端向专用网络中的SIP代理服务器注册。通过使用在设备上配置的静态 LSN 映射将来自公用 SIP 客户端的注册消息发送到 Citrix ADC 设备,并且设备会创建针孔以便进一步的 SIP 操作。
  • 方案3 - SIP来电流程。从外部到内部网络的SIP邀请消息发起SIP传入呼叫。Citrix ADC设备通过在 Citrix ADC 设备上配置的静态 LSN 映射接收来自位于外部网络中的 SIP 客户端 C2 的邀请消息。
    手机将消息转将将将消息发育给给,SIP代代将消息消息消息到到到到到然后客户客户端c1向sip客户客户c1向sip管理发作180条和200条正交消息,而SIP而代通讯CITRIX ADC设备将将发起给SIP客户端C2。当内部SIP客户端C1发作的200 OK响应消息消息达CITRIX ADC时,SIP ALG对“通讯”,“联系人”,“路由”和“记录路由sip头”字段中的IP地址和端议号执行NAT,并并将其为LSN池IP地址和端口消息消息消息给给给端c2,并在出站方向开一个个,以便以便一步行行SIP通信。

支持审核日志

通过在LSN审核日志记录配置中启用ALG,可以将ALG信息记录为LSN日志记录的一部分。有关LSN日志记录的更多信息,请参阅日志记录和监视LSN。LSN日志中ALG条目的日志消息包含以下信息:

  • 时间戳
  • SIP消息的类型(例如,sip请求)
  • SIP客户客户的源IP地址和端口
  • SIP代理的目标IP地址和端口
  • NAT IP地址和端口
  • SIP方法
  • 序列号
  • SIP客户端是否已注册
  • 呼叫者的用户名和域
  • 接收人的用户名和域

审核日志示例:

请求:

07/19/2013:09:49:19 GMT信息0-PPE-0:默认ALG alg_sip_info_packet_event 169 0:Infomsg:“SIP请求” - 组:G2  -  Call_ID:nty0yjywmtjmyjnhndu5zjlmmmqxotm5zte3zjc3njm。- 传输:TCP  -  Source_IP:192.169.1.165  -  Destence_Popt:57952  -  Destination_IP:10.102.185.156  -  Destination_port:5060  -  Natted_IP:10.102.185.191  -  Natted_port:10313  - 方法:注册 -  Sequent_Number:3060  - 注册:是 -  Content_type: -caller_user_name:156_pvt_1  -  callee_user_name:156_pvt_1  -  caller_domain_name: -  callee_domain_name: -  <! -  caltcopy  - >

响应:

07/19/2013:09:49:19 GMT信息0-PPE-0:默认ALG alg_sip_info_packet_event 170 0:Infomsg:“SIP响应” ​​- 组:G2  -  Call_ID:nty0yjywmtjmyjnhndu5zjlmmqxotm5zte3zjc3njm。- 传输:TCP  -  Response_Code 200  -  source_port:5060  -  destination_ip:192.169.1.165  -  destination_port:57952  -  natted_ip:10.102.185.191  -  natted_port:10313  -  sement_number:3060  -  content_type: -  caller_user_name:156_pvt_1  -  callee_user_name:156_pvt_1  -  caller_domain_name: -  callee_domain_name: -  <! -  caltcopy  - >

配置SIP ALG.

您需要将SIP ALG配置作为LSN配置的一部分。有关配置LSN的说明,请参阅LSN的配置步骤。配置LSN时,请确保:

  • 在添加LSN应用程序配置文件时设置以下参数:
    • IP池=已配对
    • 地址和端口映射 = 与端点无关
    • 过滤=与端点相关

重要提示:为了使SIP ALG工作,必须使用完整锥形NAT配置。

示例:

添加lsn appsprofile app_tcp tcp-pippooling成对--mapping endpoint--forment--filtering endpoint-inswerly <! -  caltcopy  - >
  • 创建SIP ALG配置文库,并确保定义源端口范围或目标范围范围。

示例:

添加lsn sipalgprofile sipalgprofile_tcp -sipsrcportrange 1-65535 -sipdstportrange 5060 -openViaPinhole ENABLED -openRecordRoutePinhole ENABLED -sipTransportProtocol TCP 
  • 在创建LSN组时,将SIP ALG设置为已启用。

示例:

add lsn group g1 -clientname c1 -sipalg ENABLED 
  • 将SIP ALG配置文件绑定到LSN组。

SIP ALG配置配置:

以下示例配置显示了了使使用单位用手网站,单位个lsn nat ip地址,sip alg特价设置创建简单的lsn配置,以及如何配置sip all:

添加LSN池P1完成绑定LSN池P1 10.1502.185.190 Dode添加LSN Client C1 DoneD绑定LSN Client C1 -Network 192.170.1.0 -NetMask 255.255.255.0 DoneD添加LSN AppsProfile App_tcp TCP -Ippooling成对--mapping endopt--filtering端点 -独立完成添加lsn appsprofile app_udp udp-hippooling成对--ming-unswerting -filtering端点无关的完成绑定lsn appsprofile app_tcp 1-65535完成了绑定lsn appsprofile app_udp 1-65535 dode添加lsn spipprofile scipgprofile_tcp -sipdstportrange 5060 -openviaghole启用了-openrecordroutepinhole-iptransporpropolt tcp dode添加lsn sipplofile sipalgprofile_udp -sipdstrange 5060 -openviapi​​nhole启用-openrecordroutepinhole启用-optransport prootocol udp dode添加lsn组g1 -clientname c1 -sipalg enabled doned tomed lsn组g1-poolname p1 dode绑定lsn组g1 -appsprofilename app_tcp完成绑定lsngroup g1 -appsprofilename app_udp完成绑定lsn组g1 -sipalgprofilename sipalgprofile_tcp完成绑定lsn组g1 -sipalgprofilename spipgprofile_udp do to <! -  caltcopy  - >