Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SCCP ALG

瘦身客户端控制协议 (SCCP) 是一种简单轻量级的协议,需要相对较少的计算机处理。SCCP 客户端使用 TCP/IP 与群集中的 Call Manager 应用程序通信。

了解 SCCP ALG

瘦身客户端控制协议 (SCCP) 是 Cisco 用于呼叫信号的专有协议。瘦身基于基于呼叫代理的呼叫控制架构。控制协议使用在发送至众所周知的 TCP 端口号目标的 TCP 帧上编码的二进制帧来设置和拆除 RTP 媒体会话。

SCCP 协议与其他呼叫控制协议一样,通过在控制数据包中嵌入信息来协商媒体端点参数,特别是实时传输协议 (RTP) 端口号和媒体终止的 IP 地址。SCCP 应用层网关 (ALG) 解析这些控制数据包,并方便介质和控制数据包通过系统。

SCCP ALG 还实施呼叫速率限制,并有助于保护关键资源免遭超载和拒绝服务 (DoS) 攻击。

以下功能由 SCCP ALG 在 Junos OS 中实施:

  • SCCP 协议数据单元验证

  • 嵌入式 IP 地址和端口号的转换

  • 分配防火墙资源(针孔和门),以传递介质

  • 老化空闲通话

  • SCCP ALG 参数的配置 API

  • 用于显示计数器、状态和统计信息的操作模式 API

在 SCCP 架构中,称为呼叫管理器的代理可执行大部分处理。IP 电话,也称为终端站,运行 SCCP 客户端,并连接到端口 2000 上通过 TCP 的主(如果可用)呼叫管理器,并在主呼叫管理器中注册。然后,此连接用于建立来或从客户端来电。

SCCP ALG 支持以下内容:

  • 呼叫流从 SCCP 客户端(通过呼叫管理器)流至另一个 SCCP 客户端。

  • 无缝故障切换 — 在主设备出现故障时,将所有正在处理的呼叫切换到备用防火墙。

  • IP 语音 (VoIP) 信号有效负载检测 — 全面检查传入 VoIP 信令数据包的有效负载。任何格式错误的数据包攻击都被 ALG 阻止。

  • SCCP 信号有效负载检测 — 全面检查传入的 SCCP 信号数据包的有效负载。任何格式错误的数据包攻击都被 ALG 阻止。

  • 有状态处理 — 调用基于 VoIP 的相应状态机来处理解析的信息。任何非状态或事务外数据包都经过识别和妥善处理。

  • 网络地址转换 (NAT)— 根据现有路由信息和网络拓扑,在有效负载中转换任何嵌入式 IP 地址和端口信息,并在必要时使用已转换的 IP 地址和端口号。

  • VoIP 流量的针孔创建和管理 — 识别用于介质或信号的 IP 地址和端口信息,并动态打开(并关闭)针孔以安全地流媒体。

本主题包括以下部分:

SCCP 安全性

SCCP ALG 包括以下安全功能:

  • 通过 TCP 对 SCCP 控制消息进行有状态检查,对消息格式进行验证,以及对当前呼叫状态的消息有效性进行验证。丢弃无效消息。

  • Cisco IP 电话和 Cisco Call Manager 之间的安全策略实施。

  • 通过限制 ALG 处理的呼叫数量来防止呼叫泛洪。

  • 无缝切换呼叫,包括集群部署中出现设备故障时正在执行的呼叫。

SCCP 组件

SCCP VoIP 架构的主要组件包括:

SCCP 客户端

SCCP 客户端在 IP 电话(也称为 终端站)上运行,该站使用 SCCP 进行信号传输和通话。要让 SCCP 客户端拨打电话,必须先向主要呼叫管理器(如果可用)注册。客户端与呼叫管理器之间的连接在端口 2000 上通过 TCP。然后,此连接用于建立客户端或客户端的呼叫。媒体传输通过 RTP、UDP 和 IP 进行。

呼叫管理器

呼叫管理器实施 SCCP 呼叫控制服务器软件,并全面控制 SCCP VoIP 网络中的所有设备和通信。其功能包括定义、监控和控制 SCCP 组、编号区域和路由计划;提供网络上设备的初始化、许可和注册;提供包含地址、电话号码和编号格式的冗余数据库;并开始与调用的设备或其代理联系,以便建立可在其中进行语音通信的逻辑会话。

集群

群集是 SCCP 客户端和呼叫管理器的集合。群集中的呼叫管理器会检测集群中的所有 SCCP 客户端。群集中可有多个备份呼叫管理器。在以下每个群集场景中,呼叫管理器的行为各不相同:

  • 群集内,呼叫管理器用于检测每个 SCCP 客户端,呼叫位于同一群集的 SCCP 客户端之间。

  • 在群集间,呼叫管理器需要使用 H.323 进行呼叫设置,与另一位呼叫管理器通信。

  • 群集间呼叫,使用门卫进行接入控制和地址解析。

    呼叫管理器的行为也因公共交换电话网络 (PSTN) 中的 SCCP 客户端与电话之间的通话而异,以及 SCCP 客户端与另一个使用 H.323 的管理域中的手机之间的通话。

SCCP 交易

SCCP 交易是进行 SCCP 呼叫所需的流程。SCCP 交易包括以下流程:

客户端初始化

要初始化,SCCP 客户端需要确定呼叫管理器的 IP 地址、其自己的 IP 地址以及有关 IP 网关和 DNS 服务器的其他信息。初始化发生在本地 LAN 上。客户端发送动态主机控制协议 (DHCP) 请求以获取 IP 地址、DNS 服务器地址以及 TFTP 服务器名称和地址。客户端需要 TFTP 服务器名称来下载名为 sepmacaddr.cnf 的配置文件。如果未提供 TFTP 名称,则客户端在 IP 电话中使用默认文件名。然后客户端从 TFTP 服务器下载 .cnf (xml) 配置文件。CNF 文件包含主要和辅助 Cisco 呼叫管理器的 IP 地址或地址。借助此信息,客户端将联系 Call Manager 进行注册。

客户端注册

初始化后,SCCP 客户端通过 TCP 连接在众所周知的默认端口 2000 上注册呼叫管理器。客户端通过向呼叫管理器提供其 IP 地址、电话 MAC 地址和其他信息(如协议和版本)来注册。客户端在注册之前无法发起或接收呼叫。激活消息使此 TCP 连接在客户端和呼叫管理器之间保持开放,以便客户端在设备上的策略允许的情况下随时发起或接收呼叫。

呼叫设置

使用 SCCP 的 IP 电话到 IP 电话设置始终由呼叫管理器处理。呼叫设置的消息将发送至呼叫管理器,呼叫管理器将返回适合呼叫状态的消息。如果呼叫设置成功,并且设备上的策略允许呼叫,呼叫管理器将向客户端发送媒体设置消息。

媒体设置

呼叫管理器将呼叫方的 IP 地址和端口号发送至呼叫方。呼叫管理器还会将呼叫方的媒体 IP 地址和端口号发送至呼叫方。媒体设置后,媒体在客户端之间直接传输。呼叫结束时,将通知呼叫管理器并终止媒体流。在此过程中,呼叫管理器不会将呼叫设置功能交给客户端。媒体通过 RTP/UDP/IP 直接在客户端之间流式传输。

SCCP 版本

从 Junos OS 12.1X46-D10 版和 Junos OS 17.3R1 版开始,SCCP ALG 支持 SCCP 版本 16、17 和 20,并且已以新格式更新了几条 SCCP 消息。Cisco Call Manager (CM) 版本 7 使用 SCCP 版本 20。

SCCP 控制消息和 RTP 流

图 1 显示了用于在电话 1 和电话 2 之间设置和中断简单通话的 SCCP 控制消息。除了发出 Phone1 通话的 OffHook 消息和发出通话结束的 OnHook 消息外,通话的所有方面均由呼叫管理器控制。

图 1:呼叫设置和拆除 Call Setup and Teardown

SCCP 消息

表 1表 2表 3表 4 在设备允许的四个间隔内列出 SCCP 呼叫消息 ID。

表 1:站到呼叫管理器消息

#define STATION_REGISTER_MESSAGE

0x00000001

#define STATION_IP_PORT_MESSAGE

0x00000002

#define STATION_ALARM_MESSAGE

0x00000020

#define STATION_OPEN_RECEIVE_CHANNEL_ACK

0x00000022

表 2:呼叫管理器到站点消息

#define STATION_START_MEDIA_TRANSMISSION

0x00000001

#define STATION_STOP_MEDIA_TRANSMISSION

0x00000002

#define STATION_CALL_INFO_MESSAGE

0x00000020

#define STATION_OPEN_RECEIVE_CHANNEL_ACK

0x00000022

#define STATION_CLOSE_RECEIVE_CHANNEL

0x00000106

表 3:呼叫管理器 4.0 消息和后 Sccp 6.2

#define STATION_REGISTER_TOKEN_REQ_MESSAGE

0x00000029

#define STATION_MEDIA_TRANSMISSION_FAILURE

0x0000002A

#define STATION_OPEN_MULTIMEDIA_RECEIVE_CHANNEL_ACK

0x00000031

表 4:站点呼叫管理器

#define STATION_OPEN_MULTIMEDIA_RECEIVE_CHANNEL

0x00000131

#define STATION_START_MULTIMEDIA_TRANSMISSION

0x00000132

#define STATION_STOP_MULTIMEDIA_TRANSMISSION

0x00000133

#define STATION_CLOSE_MULTIMEDIA_RECEIVE_CHANNEL

0x00000136

SCCP ALG 限制

  • SCCP 是 Cisco 专有协议。因此,Cisco 对协议的任何更改都会导致 SCCP ALG 实施中断。但是,提供了解决方法,以绕过严格的解码,并允许平滑处理任何协议更改。

  • 策略的任何更改都将丢弃会话并影响已建立的 SCCP 呼叫。

  • SCCP ALG 打开在流量或媒体不活动期间折叠的针孔。这意味着在临时失去连接期间,媒体会话不会重新建立。

  • 呼叫管理器 (CM) 版本 6.x 和更高版本不支持机箱集群模式中的 TCP 探查数据包。因此,如果出现故障转移,现有 SCCP 会话将会中断。您仍然可以在故障切换期间创建新的 SCCP 会话。

了解 SCCP ALG 非活动媒体超时

非活动媒体超时功能可帮助您节约网络资源并最大化吞吐量。

此参数表示呼叫在不包含组内任何介质流量的情况下(以秒为单位)可保持活动的最大时间长度。每次通话中都会发生实时传输协议 (RTP) 或实时控制协议 (RTCP) 数据包,此超时会重置。如果停用期超过此设置,为媒体打开的瘦身客户端控制协议 (SCCP) 的大门将关闭。默认设置为 120 秒,范围为 10 至 2550 秒。请注意,超时时,当媒体资源(会话和针孔)被移除时,呼叫不会终止。

SCCP ALG 配置概述

瘦身客户端控制协议应用层网关 (SCCP ALG) 默认在设备上启用 — 无需采取任何操作即可启用。但是,您可以选择使用以下说明来微调 SCCP ALG 操作:

  1. 节约网络资源并最大限度提高吞吐量。有关说明,请参阅 示例:设置 SCCP ALG 无效媒体超时

  2. 当会话处于网络地址转换 (NAT) 模式和路由模式时,允许未知消息传递。有关说明,请参阅 示例:允许未知 SCCP ALG 消息类型

  3. 保护 SCCP 客户端免遭拒绝服务 (DoS) 泛滥攻击。有关说明,请参阅 示例:配置 SCCP ALG DoS 攻击防御

示例:设置 SCCP ALG 非活动媒体超时

此示例说明如何为 SCCP ALG 设置非活动媒体超时值。

要求

开始之前,请查看用于指示最大时间长度(以秒为单位)的参数,呼叫可保持活动状态,而不会在组内出现任何媒体信息流。请参阅 了解 SCCP ALG 非活动媒体超时

概述

每次呼叫中出现 RTP 或 RTCP 数据包时,都会重置此超时。如果停用期超过此设置,则为媒体打开的 SCCP 大门将关闭。此示例将媒体无活动超时设置为 90 秒。

配置

程序

GUI 快速配置
逐步过程

要为 SCCP ALG 设置非活动媒体超时:

  1. 选择 Configure>Security>ALG

  2. 选择 SCCP 选项卡。

  3. 在无效媒体超时框中,输入 90

  4. 单击 OK 检查您的配置并将其保存为候选配置。

  5. 如果完成设备配置,请单击 提交选项>Commit

逐步过程

要为 SCCP ALG 设置非活动媒体超时:

  1. 配置 SCCP ALG 非活动媒体超时值。

  2. 如果完成设备配置,请提交配置。

验证

要验证配置是否正常工作,请输入 show security alg sccp 命令。

示例:允许未知 SCCP ALG 消息类型

此示例说明如何在 NAT 模式和路由模式下配置 SCCP ALG 以允许未知 SCCP 消息类型。

要求

开始之前,请确定是否为设备容纳新的和未知的 SCCP 消息类型。

概述

要适应瘦身客户端控制协议 (SCCP) 的持续开发,可能需要允许包含新 SCCP 消息类型的信息流。未知 SCCP 消息类型功能允许您配置设备以接受在网络地址转换 (NAT) 模式和路由模式中包含未知消息类型的 SCCP 信息流。

默认设置为丢弃未知(不支持)消息。我们不建议允许未知消息,因为它们会损害安全性。但是,在安全测试或生产环境中,未知的 SCCP 消息类型命令可用于解决不同供应商设备的互操作性问题。允许未知的 SCCP 消息可以帮助您让网络正常运行,以便稍后可以分析 IP 语音 (VoIP) 流量,以确定为何会丢弃某些消息。

请注意,未知 SCCP 消息类型命令仅适用于已识别为受支持的 VoIP 数据包的接收数据包。如果无法识别数据包,则数据包总是被丢弃。如果数据包被识别为受支持的协议,并且您已将设备配置为允许未知消息类型,则该消息将转发至无处理。

配置

程序

GUI 快速配置
逐步过程

要配置 SCCP ALG 以允许未知消息类型:

  1. 选择 Configure>Security>ALG

  2. 选择 SCCP 选项卡。

  3. 选择 “启用许可”NAT 应用 复选框。

  4. 选择 “启用许可证”路由 复选框。

  5. 单击 OK 检查您的配置并将其保存为候选配置。

  6. 如果完成设备配置,请单击 提交选项>Commit

逐步过程

要配置 SCCP ALG 以允许未知消息类型:

  1. 如果会话处于 NAT 模式或处于路由模式,则允许未知消息类型通过。

  2. 如果完成设备配置,请提交配置。

验证

要验证配置是否正常工作,请输入 show security alg sccp 命令。

示例:配置 SCCP ALG DoS 攻击防御

此示例说明如何为 SCCP ALG 配置连接泛洪保护。

要求

开始之前,请确定是否保护 SCCP 媒体网关免受 DoS 泛滥攻击。

概述

您可以通过限制其尝试处理的呼叫数量来保护瘦身客户端控制协议应用层网关 (SCCP ALG) 客户端免受拒绝服务 (DoS) 泛滥攻击。

配置 SCCP 呼叫泛洪保护时,SCCP ALG 会丢弃超过您设置的阈值的任何呼叫。每个客户端每秒 2 到 1000 个呼叫的范围,默认为 20。

在此示例中,设备配置为每个客户端每秒丢弃超过 500 个呼叫。

配置

程序

GUI 快速配置
逐步过程

要为 SCCP ALG 配置呼叫泛洪保护:

  1. 选择 Configure>Security>ALG

  2. 选择 SCCP 选项卡。

  3. 在“呼叫泛滥”阈值框中,键入 500

  4. 单击 OK 检查您的配置并将其保存为候选配置。

  5. 完成设备配置后,单击 Commit Options>Commit

逐步过程

要为 SCCP ALG 配置呼叫泛洪保护:

  1. 配置 DoS 攻击保护:

  2. 如果完成设备配置,请提交配置。

验证

要验证配置是否正常工作,请输入 show security alg sccp 命令。

示例:在专用区配置 SCCP ALG 呼叫管理器或 TFTP 服务器

此示例说明如何在瞻博网络设备的传出接口上配置静态 NAT,以允许公共区域中的呼叫者注册 SCCP ALG 呼叫管理器或位于专用区的 TFTP 服务器。

要求

开始之前,请了解使用 SCCP ALG 的 NAT 支持。请参阅 了解 SCCP ALG

概述

在此示例中(请参阅 图 2),单个设备充当呼叫管理器或 TFTP 服务器。呼叫管理器或 TFTP 服务器和电话 1 连接到专用区,手机2 连接到公共区域。您配置为呼叫管理器或 TFTP 服务器设置的静态 NAT 规则,以便在 Phone2 启动时,它与 TFTP 服务器联系,并获取呼叫管理器的 IP 地址。然后,您创建一个称为 in-pol 的策略,允许 SCCP 流量从公共区域传输到专用区域,并创建一个称为 Out-pol 的策略,允许调用电话1。

注意:

我们建议您将位于 TFTP 服务器配置文件 (sep <mac_addr>.cnf) 中的 Call Manager 的 IP 地址更改为呼叫管理器的 NAT IP 地址。

拓扑

图 2 显示专用区域中的呼叫管理器或 TFTP 服务器。

图 2:专用区域中的呼叫管理器或 TFTP 服务器 Call Manager or TFTP Server in the Private Zone

在此示例中,您将按照以下内容配置 NAT:

  • 创建一个称为代理的静态 NAT 规则集,规则称为 phone2,以匹配来自公共区域的数据包与目标地址 172.16.1.2/32。对于匹配的数据包,目标 IP 地址将转换为专用地址 10.1.1.4/32。

  • 为接口 ge-0/0/1.0 上的地址 172.16.1.2/32 配置代理 ARP。这样,系统便可对接口上收到的这些地址的 ARP 请求做出响应。

  • 配置第二个规则集称为电话,规则称为 Phone1,以启用接口 NAT 以实现从电话 1 到电话 2 的通信。

配置

程序

CLI 快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改任何必要的详细信息,以便与网络配置匹配,将命令复制粘贴到层级的 CLI 中 [edit] ,然后从配置模式进入 commit

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要为位于私有区域的 SCCP ALG 呼叫管理器或 TFTP 服务器配置 NAT:

  1. 配置接口。

  2. 创建安全区域。

  3. 创建地址簿并附加区域。

  4. 为静态 NAT 创建规则集并为其分配规则。

  5. 配置代理 ARP。

  6. 配置接口 NAT 以进行电话 1 到电话2 的通信。

  7. 配置策略以允许从公共区域到私有区域的流量。

  8. 配置策略以允许从私有区域到公共区域的流量。

  9. 配置策略以允许从电话 1 到 CM/TFTP 服务器的流量。

结果

在配置模式下,输入 show interfacesshow security zonesshow security address-bookshow security natshow security policies 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以将其更正。

如果完成设备配置,请在配置模式下输入 commit

验证

要确认配置工作正常,请执行以下任务:

验证源 NAT 规则的使用情况

目的

验证是否存在与源 NAT 规则匹配的信息流。

行动

在操作模式下,输入 show security nat source rule all 命令。

意义

Translation hits 段显示,没有与源 NAT 规则匹配的信息流。

验证静态 NAT 配置

目的

验证是否存在与静态 NAT 规则集匹配的信息流。

行动

在操作模式下,输入 show security nat static rule phone2 命令。

意义

Translation hits 段显示,没有与源 NAT 规则集匹配的信息流。

验证 SCCP ALG

目的

验证 SCCP ALG 是否启用。

行动

在操作模式下,输入 show security alg status | match sccp 命令。

意义

输出显示 SCCP ALG 状态,如下所示:

  • 启用 — 显示已启用 SCCP ALG。

  • 禁用 — 显示 SCCP ALG 已禁用。

验证 SIP ALG 的安全策略

目的

验证公共区域和私有区域之间的静态 NAT 是否已设置。

行动

在操作模式下,输入 show security policies 命令。

意义

示例输出显示,公共区域和私有区域之间的静态 NAT 已设置。

验证 SCCP ALG 配置

验证 SCCP ALG

目的

显示 SCCP 验证选项。

行动

从 CLI 中 show security alg sccp 输入 命令。

意义

输出显示所有 SCCP 验证参数的列表。验证以下信息:

  • 所有 SCCP 调用

  • 所有 SCCP 呼叫的计数器

验证 SCCP ALG 呼叫

目的

显示所有 SCCP 呼叫的列表

行动

从 CLI 中 show security alg sccp calls 输入 命令。

意义

输出显示所有 SCCP 验证参数的列表。验证以下信息:

  • 所有 SCCP 调用

  • 所有 SCCP c alls 的计数器

  • 有关所有 SCCP 端点的信息

验证 SCCP ALG 呼叫详细信息

目的

显示所有 SCCP 呼叫的详细信息。

行动

从 CLI 中 show security alg sccp calls detail 输入 命令。

意义

输出显示所有 SCCP 验证参数的列表。验证以下信息:

  • 客户端区域

  • 呼叫管理器 IP 地址:13.0.99.226

  • 会议 ID

  • 资源管理器组

  • SCCP 通道信息

  • 通话总数

验证 SCCP ALG 计数器

目的

显示所有 SCCP 计数器的列表

行动

从 J-Web 界面选择 Monitor>ALG>SCCP>计数器。或者,从 CLI 输入 show security alg sccp counters 命令。

意义

输出显示所有 SCCP 验证参数的列表。验证以下信息:

  • SCCP 呼叫统计信息

  • 错误计数器

发布历史记录表
释放
描述
12.1X46-D10
从 Junos OS 12.1X46-D10 版和 Junos OS 17.3R1 版开始,SCCP ALG 支持 SCCP 版本 16、17 和 20,并且已以新格式更新了几条 SCCP 消息。