MGCP ALG
媒体网关控制协议 (MGCP) 是 VoIP 电信系统中使用的基于文本的信号和呼叫控制通信协议。MGCP 用于在多个端点之间设置、维护和终止呼叫。
了解 MGCP ALG
媒体网关控制协议 (MGCP) 是一种基于文本的应用层协议,用于媒体网关与媒体网关控制器 (MGC) 之间的呼叫设置和呼叫控制。
该协议基于主/客户端呼叫控制架构:MGC(呼叫代理)维护呼叫控制智能,媒体网关执行呼叫代理的指令。信号数据包和媒体数据包都通过 UDP 进行传输。Junos OS 在路由模式和网络地址转换 (NAT) 模式下支持 MGCP。
MGCP 应用层网关 (ALG) 执行以下步骤:
执行 IP 语音 (VoIP) 信号有效负载检测。传入 VoIP 信号数据包的有效负载将根据相关 RFC 和专有标准进行全面检查。任何格式错误的数据包攻击都被 ALG 阻止。
执行 MGCP 信号有效负载检查。传入 MGCP 信号数据包的有效负载将按照 RFC 3435 进行全面检查。任何格式错误的数据包攻击都被 ALG 阻止。
提供状态处理。调用相应基于 VoIP 的状态机以处理解析的信息。任何非状态或事务外数据包都经过识别和妥善处理。
执行 NAT。有效负载中的任何嵌入式 IP 地址和端口信息都将根据现有路由信息和网络拓扑进行正确转换,然后在必要时替换为已转换的 IP 地址和端口号。
管理 VoIP 流量的针孔。为保证 VoIP 网络安全,ALG 会识别用于介质或信号的 IP 地址和端口信息,并在呼叫设置期间动态创建并关闭任何所需的针孔。
本主题包含以下部分:
MGCP 安全性
MGCP ALG 包括以下安全功能:
拒绝服务 (DoS) 攻击保护。ALG 在 UDP 数据包级别、交易级别和呼叫级别执行状态检测。处理与 RFC 3435 消息格式、事务状态和呼叫状态匹配的 MGCP 数据包。所有其他消息都会被丢弃。
网关和网关控制器之间的安全策略实施(信号策略)。
网关之间的安全策略实施(媒体策略)。
每网关 MGCP 消息泛洪控制。任何故障或被黑客攻击的网关都不会中断整个 VoIP 网络。与每网关泛洪控制相结合,损坏控制在受影响的网关内。
每网关 MGCP 连接泛洪控制。
如果出现系统故障时,如果呼叫(包括正在进行中的呼叫)切换到备用防火墙,则无缝切换/故障切换。
MGCP 中的实体
MGCP 中有四个基本实体:
端点
媒体网关是一组端点。端点可以是模拟线路、中继或任何其他接入点。端点包含以下元素:
local-endpoint-name@domain-name
以下示例包括一些有效的端点 ID:
group1/Trk8@example.net group2/Trk1/*@[192.168.10.8] (wild-carding) $@example.net (any endpoint within the media gateway) *@example.net (all endpoints within the media gateway)
连接
连接由 MG 在呼叫设置期间在每个端点上创建。典型的 VoIP 呼叫涉及两个连接。复杂的通话(例如三方电话或电话会议)可能需要更多连接。MGC 可指示媒体网关创建、修改、删除和审核连接。
连接由其连接 ID 标识,该 ID 由 MG 在请求创建连接时创建。连接 ID 显示为六角字符串,其最大长度为 32 个字符。
叫
呼叫由其呼叫 ID 标识,该 ID 由 MGC 在建立新呼叫时创建。呼叫 ID 是六角字符串,最大长度为 32 个字符。呼叫 ID 在 MGC 中具有唯一性。如果两个或更多连接属于同一个呼叫,它们可以具有相同的呼叫 ID。
呼叫代理
MGCP 支持一个或多个呼叫代理(也称为媒体网关控制器),以提高 VoIP 网络的可靠性。以下两个示例包括呼叫代理名称:
CallAgent@voipCA.example.com voipCA.example.com
多个网络地址可以在域名系统 (DNS) 中的一个域名下关联。通过跟踪 DNS 查询/响应数据的上线时间 (TTL),以及使用其他替代网络地址实施重新传输,MGCP 实现了切换和故障切换。
通知 实体 的概念在 MGCP 中至关重要。端点的已通知实体是当前控制该端点的呼叫代理。端点应将任何 MGCP 命令发送至其已通知实体。但是,不同的呼叫代理可能会将 MGCP 命令发送到此端点。
通知的实体在启动时设置为调配值,但是呼叫代理可通过使用 MGCP 消息中包含的 NotifiedEntity
参数进行更改。如果端点的已通知实体为空,或未明确设置,其值将默认到为该端点收到的最后一个成功的非审核 MGCP 命令的源地址。
MGCP 命令
MGCP 协议定义了九个用于控制端点和连接的命令。所有命令均由命令头组成,可选遵循会话说明协议 (SDP) 信息。命令标头具有以下元素:
命令行:命令动词 + 事务 ID + 端点Id + MGCP 版本。
零个或多个参数行,由参数名称组成,然后是参数值。
表 1 列出了支持的 MGCP 命令,并包括每个说明、命令语法和示例。请参阅 RFC 2234,了解命令语法的完整解释。
命令 |
描述 |
命令语法 |
例子 |
---|---|---|---|
EPCF |
端点配置 — 由呼叫代理用于通知网关端预期的编码特性(法或多法)。 |
|
|
CRCX |
CreateConnection — 由呼叫代理使用,用于指示网关与网关内部和端点创建连接。 |
|
|
MDCX |
修改连接 — 由呼叫代理使用,用于指示网关更改现有连接的参数。 |
|
|
DLCX |
DeleteConnection — 由呼叫代理使用,用于指示网关删除现有连接。 删除 连接也可由网关用于释放无法持续的连接。 |
|
示例 1:MGC->MG
示例 2:MG-> MGC
|
RQNT |
通知请求命令 — 由呼叫代理使用,用于指示 MG 监控特定端点的特定事件或信号。 |
|
|
NTFY |
通知 — 网关在发生请求事件或信号时,由网关用于通知呼叫代理。 |
|
|
AUEP |
审计端点 — 由呼叫代理使用来审核端点的状态。 |
|
示例 1:
示例 2:
|
AUCX |
审核连接 — 由呼叫代理用于收集应用于连接的参数。 |
|
|
RSIP |
RestareInProgress — 网关用于通知呼叫代理一个或多个端点被停用或重新投入使用。 |
|
|
MGCP 响应代码
呼叫代理或网关发送的每个命令(无论是否成功)都需要响应代码。响应代码位于响应消息的标头中,会话说明信息随后是可选的。
响应标头由响应行组成,随后是零个或更多参数行,每个行都包含一个参数名称字母,随后是其值。响应标头由三位数的响应代码、交易 ID 组成,随后是评论。以下响应消息中的响应标头显示响应代码 200(成功完成),其次是 ID 1204 和评论:OK。
200 1204 OK I: FDE234C8 v=0 o=- 25678 753849 IN IP4 128.96.41.1 s=- c=IN IP4 128.96.41.1 t=0 0 m=audio 3456 RTP/AVP 96 a=rtpmap:96 G726-32/8000
响应代码的范围定义如下:
000 — 099 表示回应确认。
100 — 199 — 指示临时响应。
200 — 299 表示完成成功(最终响应)。
400 — 499 表示瞬时错误(最终响应)。
500 — 599 表示永久错误(最终响应)。
有关响应代码的详细信息,请参阅 RFC 3661。
对命令的响应将发送至命令的源地址,而不是发送至当前已通知的实体。媒体网关可以同时从各种网络地址接收 MGCP 命令,并将响应发回给相应的网络地址。但是,它会将所有 MGCP 命令发送至其当前已通知的实体。
MGCP ALG 配置概述
媒体网关控制协议 (MGCP ALG) 默认在设备上启用 — 无需采取任何操作即可启用。但是,您可以选择使用以下说明来微调 MGCP ALG 操作:
当呼叫无法正确终止时释放带宽。请参阅 示例:设置 MGCP ALG 呼叫持续时间。
控制通话在没有任何媒体信息流的情况下可以保持活动时间。请参阅 示例:设置 MGCP ALG 无效媒体超时。
在流量出现时间时跟踪并清除信号信息流。见 示例:设置 MGCP ALG 事务超时。
保护媒体网关免遭拒绝服务 (DoS) 泛滥攻击。请参阅 示例:配置 MGCP ALG DoS 攻击防御。
当会话处于网络地址转换 (NAT) 模式和路由模式时,允许未知消息传递。请参阅 示例:允许未知 MGCP ALG 消息类型。
示例:使用 MGCP ALG 在订阅者家庭中配置媒体网关
此示例说明如何使用 MGCP ALG 在订阅者家中配置媒体网关。
要求
开始之前:
配置区域。请参阅 示例:创建安全区域。
配置地址和接口。请参阅 示例:配置地址簿和地址集。
配置安全策略。请参阅 安全策略配置概述。
概述
当有线服务提供商向住宅订户提供 MGCP 服务时,他们会在用户家中找到瞻博网络设备和呼叫代理,并在每个用户的家中安装机顶盒。机顶盒用作住宅的网关。
在为客户创建区域(为客户external_subscriber,为服务提供商internal_ca)之后,您将配置地址,然后配置接口,最后配置策略以允许在端点之间发出信号。请注意,尽管网关经常驻留在不同的区域,需要媒体流量的策略,但在此示例中两个网关都位于同一子网中。另请注意,由于网关之间的 RTP 流量从未通过设备,因此介质无需策略。请参阅 图 1。
配置
程序
CLI 快速配置
要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改任何必要的详细信息,以便与网络配置匹配,将命令复制粘贴到层级的 CLI 中 [edit]
,然后从配置模式进入 commit
。
set security zones security-zone external-subscriber host-inbound-traffic system-services all set security zones security-zone external-subscriber host-inbound-traffic protocols all set security zones security-zone internal-ca host-inbound-traffic system-services all set security zones security-zone internal-ca host-inbound-traffic protocols all set interfaces ge-0/0/1 unit 0 family inet address 2.2.2.1/24 set interfaces ge-0/0/0 unit 0 family inet set security zones security-zone external-subscriber interfaces ge-0/0/0 set security zones security-zone internal-ca interfaces ge-0/0/1 set security address-book book1 address ca-agent 110.1.1.101/32 set security address-book book1 attach zone internal-ca set security address-book book2 address subscriber-subnet 2.2.2.1/24 set security address-book book2 attach zone external-subscriber set security policies from-zone internal-ca to-zone external-subscriber policy ca-to-subscribers match source-address ca-agent-1 set security policies from-zone internal-ca to-zone external-subscriber policy ca-to-subscribers match destination-address subscriber-subnet set security policies from-zone internal-ca to-zone external-subscriber policy ca-to-subscribers match application junos-mgcp set security policies from-zone internal-ca to-zone external-subscriber policy ca-to-subscribers then permit set security policies from-zone external-subscriber to-zone internal-ca policy subscriber-to-ca match source-address subscriber-subnet set security policies from-zone external-subscriber to-zone internal-ca policy subscriber-to-ca match destination-address ca-agent-1 set security policies from-zone external-subscriber to-zone internal-ca policy subscriber-to-ca match application junos-mgcp set security policies from-zone external-subscriber to-zone internal-ca policy subscriber-to-ca then permit set security policies from-zone internal-ca to-zone internal-ca policy intra-ca match source-address any set security policies from-zone internal-ca to-zone internal-ca policy intra-ca match destination-address any set security policies from-zone internal-ca to-zone internal-ca policy intra-ca match application any set security policies from-zone internal-ca to-zone internal-ca policy intra-ca then permit set security policies from-zone external-subscriber to-zone external-subscriber policy intra-subscriber match source-address any set security policies from-zone external-subscriber to-zone external-subscriber policy intra-subscriber match destination-address any set security policies from-zone external-subscriber to-zone external-subscriber policy intra-subscriber match application any set security policies from-zone external-subscriber to-zone external-subscriber policy intra-subscriber then permit
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用 MGCP ALG 在用户家中配置媒体网关:
为客户和服务提供商创建安全区域。
[edit security zones security-zone external-subscriber] user@host# set host-inbound-traffic system-services all user@host# set host-inbound-traffic protocols all [edit security zones security-zone internal-ca] user@host# set host-inbound-traffic system-services all user@host# set host-inbound-traffic protocols all
为这些区域配置接口。
[edit] user@host# edit security zones security-zone external-subscriber interfaces ge-0/0/0 user@host# set interfaces ge-0/0/0 unit 0 family inet user@host# set security zones security-zone internal-ca interfaces ge-0/0/1 user@host# set interfaces ge-0/0/1 unit 0 family inet address 2.2.2.1/24
配置地址簿并将区域附加到它们。
[edit security address-book book1] user@host# set address ca-agent 110.1.1.101/32 user@host# set attach zone internal-ca
[edit security address-book book2] user@host# set address subscriber-subnet 2.2.2.1/24 user@host# set attach zone external-subscriber
配置从内部到外部区域的信息流的策略。
[edit security policies from-zone internal-ca to-zone external-subscriber policy ca-to-subscribers] user@host# edit match source-address ca-agent-1 user@host# set match destination-address subscriber-subnet user@host# set match application junos-mgcp user@host# set then permit
配置从外部到内部区域的信息流的策略。
[edit security policies from-zone external-subscriber to-zone internal-ca policy subscriber-to-ca] user@host# edit match source-address subscriber-subnet user@host# set match destination-address ca-agent-1 user@host# set match application junos-mgcp user@host# set then permit
配置两个内部区域之间的流量策略。
[edit security policies from-zone internal-ca to-zone internal-ca policy intra-ca] user@host# edit match source-address any user@host# set match destination-address any user@host# set match application any user@host# set then permit
配置两个外部区域之间的流量策略。
[edit security policies from-zone external-subscriber to-zone external-subscriber policy intra-subscriber] user@host# edit match source-address any user@host# set match destination-address any user@host# set match application any user@host# set then permit
结果
在配置模式下,输入 show security policies
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以将其更正。
from-zone internal-ca to-zone external-subscriber { policy ca-to-subscribers { match { source-address ca-agent-1; destination-address subscriber-subnet; application junos-mgcp; } then { permit; } } } from-zone external-subscriber to-zone internal-ca { policy subscriber-to-ca { match { source-address subscriber-subnet; destination-address ca-agent-1; application junos-mgcp; } then { permit; } } } from-zone internal-ca to-zone internal-ca { policy intra-ca { match { ssource-address any; destination-address any; application any; } then { permit; } } } from-zone external-subscriber to-zone external-subscriber { policy intra-subscriber { match { source-address any; destination-address any; application any; } then { permit; } } }
如果完成设备配置,请在配置模式下输入 commit
。
验证
要确认配置工作正常,请执行以下任务:
验证 MGCP ALG
目的
验证 MGCP ALG 验证选项。
行动
在操作模式下,输入 show security alg mgcp ?
命令。
user@host> show security alg mgcp ? Possible completions: calls Show MGCP calls counters Show MGCP counters endpoints Show MGCP endpoints
意义
输出显示所有 MGCP 验证参数列表。验证以下信息:
所有 MGCP 呼叫
所有 MGCP 呼叫的计数器
有关所有 MGCP 端点的信息
验证 MGCP ALG 呼叫
目的
验证有关主动 MGCP 调用的信息。
行动
在操作模式下,输入 show security alg mgcp calls
命令。
user@host> show security alg mgcp calls Endpoint@GW Zone Call ID RM Group d001@101.50.10.1 Trust 10d55b81140e0f76 512 Connection Id> 0 Local SDP> o: 101.50.10.1 x_o: 101.50.10.1 c: 101.50.10.1/32206 x_c: 101.50.10.1/32206 Remote SDP> c: 3.3.3.5/16928 x_c: 3.3.3.5/16928 Endpoint@GW Zone Call ID RM Group d001@3.3.3.5 Untrust 3a104e9b41a7c4c9 511 Connection Id> 0 Local SDP> o: 3.3.3.5 x_o: 3.3.3.5 c: 3.3.3.5/16928 x_c: 3.3.3.5/16928 Remote SDP> c: 101.50.10.1/32206 x_c: 101.50.10.1/32206
意义
输出显示有关所有 MGCP 调用的信息。验证以下信息:
端点
区
呼叫标识符
资源管理器组
验证 MGCP ALG 端点
目的
验证有关 MGCP 端点的信息。
行动
在操作模式下,输入 show security alg mgcp endpoints
命令。
user@host> show security alg mgcp endpoints Gateway: 101.50.10.1 Zone: Trust IP: 101.50.10.1 -> 101.50.10.1 Endpoint Trans # Call # Notified Entity d001 1 1 0.0.0.0/0->0.0.0.0/0 Gateway: 3.3.3.5 Zone: Untrust IP: 3.3.3.5 -> 3.3.3.5 Endpoint Trans # Call # Notified Entity d001 1 1 0.0.0.0/0->0.0.0.0/0
意义
输出显示有关所有 MGCP 端点的信息。验证以下信息:
两个端点的网关 IP 地址和区域
各网关的端点标识符、事务编号、呼叫号和已通知实体
验证 MGCP ALG 计数器
目的
验证有关 MGCP 计数器的信息。
行动
在操作模式下,输入 show security alg mgcp counters
命令。
user@host> show security alg mgcp counters MGCP counters summary: Packets received :284 Packets dropped :0 Message received :284 Number of connections :4 Number of active connections :3 Number of calls :4 Number of active calls :3 Number of transactions :121 Number of active transactions:52 Number of re-transmission :68 MGCP Error Counters: Unknown-method :0 Decoding error :0 Transaction error :0 Call error :0 Connection error :0 Connection flood drop :0 Message flood drop :0 IP resolve error :0 NAT error :0 Resource manager error :0 MGCP Packet Counters: CRCX :4 MDCX :9 DLCX :2 AUEP :1 AUCX :0 NTFY :43 RSIP :79 EPCF :0 RQNT :51 000-199 :0 200-299 :95 300-999 :0
意义
输出显示有关所有 MGCP 计数器的信息。验证以下信息:
MGCP 计数器摘要
MGCP 错误计数器
MGCP 数据包计数器
示例:使用 MGCP ALG 和 NAT 配置三区 ISP 托管服务
此示例说明如何使用 MGCP ALG 和 NAT 配置三区配置。
要求
开始之前,请了解使用 MGCP ALG 的 NAT 支持。请参阅 了解 MGCP ALG。
概述
通常,当一个地理位置的 ISP 为不同地理位置的两个网络提供服务时,会使用三区配置。
在此示例中(请参阅 图 2),位于美国西海岸的 ISP 为亚洲和旧金山独立网络中的客户提供 MGCP 服务。亚洲客户位于亚洲-3 区,并得到亚洲 gw 网关的支持:旧金山客户位于 sf-2 区域,并受 sf-gw 网关支持。呼叫代理 West-ca 在 DMZ 中。表 2 列出了网关和呼叫代理,显示了相应的 IP 地址、接口和区域。
在此示例中,在为网关和呼叫代理创建区域并设置地址之后,您可将这些区域关联到接口,然后将静态 NAT 配置为呼叫代理和源 NAT,以便从 sf-2 区域的 IP 电话与亚洲-3 区域中的电话进行通信。您还可以在各区域之间配置策略以允许通信。
拓扑
图 2 显示了三区 ISP 托管的服务。
网关 |
IP 地址 |
接口 |
区 |
---|---|---|---|
sf-gw |
192.168.3.201 |
ge-0/0/0 |
sf-2 |
asia-gw |
3.3.3.101 |
ge-0/0/1 |
亚洲-3 |
西卡 |
10.1.1.101 |
ge-0/0/2 |
Dmz |
配置
程序
CLI 快速配置
要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,移除任何换行符,更改任何必要的详细信息,以便与网络配置匹配,将命令复制粘贴到层级的 CLI 中 [edit]
,然后从配置模式进入 commit
。
set interfaces ge-0/0/0 unit 0 family inet address 192.168.3.10/24 set interfaces ge-0/0/1 unit 0 family inet address 3.3.3.10/24 set interfaces ge-0/0/2 unit 0 family inet address 10.1.1.2/24 set security zones security-zone sf-2 interfaces ge-0/0/0.0 set security zones security-zone asia-3 interfaces ge-0/0/1.0 set security zones security-zone dmz interfaces ge-0/0/2.0 set security address-book book1 address sf-gw 192.168.3.201/32 set security address-book book1 attach zone sf-2 set security address-book book2 address asia-gw 3.3.3.101/32 set security address-book book2 attach zone asia-3 set security address-book book3 address west-ca 10.1.1.101/32 set security address-book book3 attach zone dmz set security nat source pool ip-phone-pool address 3.3.3.20/32 set security nat source rule-set phones from zone sf-2 set security nat source rule-set phones to zone asia-3 set security nat source rule-set phones rule phone1 match source-address 192.168.3.10/32 set security nat source rule-set phones rule phone1 match destination 3.3.3.101/32 set security nat source rule-set phones rule phone1 then source-nat pool ip-phone-pool set security nat static rule-set to-callagent from zone asia-3 set security nat static rule-set to-callagent rule phone1 match destination-address 3.3.3.101/32 set security nat static rule-set to-callagent rule phone1 then static-nat prefix 10.1.1.101/32 set security nat proxy-arp interface ge-0/0/1.0 address 3.3.3.101/32 set security nat proxy-arp interface ge-0/0/1.0 address 3.3.3.20/32 set security policies from-zone dmz to-zone asia-3 policy pol-dmz-to-asia-3 match source-address west-ca set security policies from-zone dmz to-zone asia-3 policy pol-dmz-to-asia-3 match destination-address asia-gw set security policies from-zone dmz to-zone asia-3 policy pol-dmz-to-asia-3 match application junos-mgcp set security policies from-zone dmz to-zone asia-3 policy pol-dmz-to-asia-3 then permit set security policies from-zone asia-3 to-zone dmz policy pol-asia-3-to-dmz match source-address asia-gw set security policies from-zone asia-3 to-zone dmz policy pol-asia-3-to-dmz match destination-address west-ca set security policies from-zone asia-3 to-zone dmz policy pol-asia-3-to-dmz match application junos-mgcp set security policies from-zone asia-3 to-zone dmz policy pol-asia-3-to-dmz then permit set security policies from-zone sf-2 to-zone dmz policy pol-sf-2-to-dmz match source-address sf-gw set security policies from-zone sf-2 to-zone dmz policy pol-sf-2-to-dmz match destination-address west-ca set security policies from-zone sf-2 to-zone dmz policy pol-sf-2-to-dmz match application junos-mgcp set security policies from-zone sf-2 to-zone dmz policy pol-sf-2-to-dmz then permit set security policies from-zone dmz to-zone sf-2 policy pol-dmz-to-sf-2 match source-address west-ca set security policies from-zone dmz to-zone sf-2 policy pol-dmz-to-sf-2 match destination-address sf-gw set security policies from-zone dmz to-zone sf-2 policy pol-dmz-to-sf-2 match application junos-mgcp set security policies from-zone dmz to-zone sf-2 policy pol-dmz-to-sf-2 then permit set security policies from-zone sf-2 to-zone asia-3 policy pol-sf-2-to-asia-3 match source-address sf-gw set security policies from-zone sf-2 to-zone asia-3 policy pol-sf-2-to-asia-3 match destination-address asia-gw set security policies from-zone sf-2 to-zone asia-3 policy pol-sf-2-to-asia-3 match application junos-mgcp set security policies from-zone sf-2 to-zone asia-3 policy pol-sf-2-to-asia-3 then permit set security policies from-zone asia-3 to-zone sf-2 policy pol-asia-3-to-sf-2 match source-address asia-gw set security policies from-zone asia-3 to-zone sf-2 policy pol-asia-3-to-sf-2 match destination sf-gw set security policies from-zone asia-3 to-zone sf-2 policy pol-asia-3-to-sf-2 match application junos-mgcp set security policies from-zone asia-3 to-zone sf-2 policy pol-asia-3-to-sf-2 then permit set security policies from-zone sf-2 to-zone sf-2 policy pol-intra-sf-2 match source-address any set security policies from-zone sf-2 to-zone sf-2 policy pol-intra-sf-2 match destination-address any set security policies from-zone sf-2 to-zone sf-2 policy pol-intra-sf-2 match application any set security policies from-zone sf-2 to-zone sf-2 policy pol-intra-sf-2 then permit set security policies from-zone asia-3 to-zone asia-3 policy pol-intra-asia-3 match source-address any set security policies from-zone asia-3 to-zone asia-3 policy pol-intra-asia-3 match destination-address any set security policies from-zone asia-3 to-zone asia-3 policy pol-intra-asia-3 match application any set security policies from-zone asia-3 to-zone asia-3 policy pol-intra-asia-3 then permit
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用 MGCP ALG 和 NAT 配置三区配置:
配置接口。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 192.168.3.10/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 3.3.3.10/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 10.1.1.2/24
创建安全区域。
[edit security zones] user@host# set security-zone sf-2 interfaces ge-0/0/0 user@host# set security-zone asia-3 interfaces ge-0/0/1 user@host# set security-zone dmz interfaces ge-0/0/2
创建地址簿并分配区域。
[edit security address-book book1] user@host# set address sf-gw 192.168.3.201/32 user@host# set attach zone sf-2
[edit security address-book book2] user@host# set address asia-gw 3.3.3.101/32 user@host# set attach zone asia-3
[edit security address-book book3] user@host# set address west-ca 10.1.1.101/32 user@host# set attach zone dmz
创建静态 NAT 规则集并为其设置匹配条件和操作。
[edit security nat static rule-set to-callagent] user@host# set from zone asia-3 user@host# set rule phone1 match destination-address 3.3.3.101/32 user@host# set rule phone1 then static-nat prefix 10.1.1.101/32
为接口
ge-0/0/1.0
上的地址3.3.3.101/32
配置代理 ARP。[edit security nat ] user@host# set proxy-arp interface ge-0/0/1.0 address 3.3.3.101/32
创建源 NAT 池。
[edit security nat] user@host# set source pool ip-phone-pool address 3.3.3.20/32
创建源 NAT 规则集并为其设置匹配条件和操作。
[edit security nat source rule-set phones] user@host# set from zone sf-2 user@host# set to zone asia-3 user@host# set rule phone1 match source-address 192.168.3.10/32 user@host# set rule phone1 match destination-address 3.3.3.101/32 user@host# set rule phone1 then source-nat pool ip-phone-pool
为接口
ge-0/0/1.0
上的地址3.3.3.20/32
配置代理 ARP。[edit security nat ] user@host# set proxy-arp interface ge-0/0/1.0 address 3.3.3.20/32
配置策略以允许从 DMZ 到亚洲的流量。
[edit security policies from-zone dmz to-zone asia-3 policy pol-dmz-to-asia-3] user@host# set match source-address west-ca user@host# set match destination-address asia-gw user@host# set match application junos-mgcp user@host# set then permit
配置策略以允许从亚洲到 DMZ 的流量。
[edit security policies from-zone asia-3 to-zone dmz policy pol-asia-3-to-dmz] user@host# set match source-address asia-gw user@host# set match destination-address west-ca user@host# set match application junos-mgcp user@host# set then permit
配置策略以允许从旧金山到 DMZ 的流量。
[edit security policies from-zone sf-2 to-zone dmz policy pol-sf-2-to-dmz] user@host# set match source-address sf-gw user@host# set match destination-address west-ca user@host# set match application junos-mgcp user@host# set then permit
配置策略以允许从 DMZ 到旧金山的流量。
[edit security policies from-zone dmz to-zone sf-2 policy pol-dmz-to-sf-2] user@host# set match source-address west-ca user@host# set match destination-address sf-gw user@host# set match application junos-mgcp user@host# set then permit
配置策略以允许从旧金山到亚洲的流量。
[edit security policies from-zone sf-2 to-zone asia-3 policy pol-sf-2-to-asia-3] user@host# set match source-address sf-gw user@host# set match destination-address asia-gw user@host# set match application junos-mgcp user@host# set then permit
配置一个策略,允许从亚洲到旧金山的流量。
[edit security policies from-zone asia-3 to-zone sf-2 policy pol-asia-3-to-sf-2] user@host# set match source-address asia-gw user@host# set match destination-address sf-gw user@host# set match application junos-mgcp user@host# set then permit
配置策略以允许在旧金山的设备上进行流量。
[edit security policies from-zone sf-2 to-zone sf-2 policy pol-intra-sf-2] user@host# set match source-address any user@host# set match destination-address any user@host# set match application any user@host# set then permit
配置策略以允许在亚洲的设备上进行流量。
[edit security policies from-zone asia-3 to-zone asia-3 policy pol-intra-asia-3] user@host# set match source-address any user@host# set match destination-address any user@host# set match application any user@host# set then permit
结果
在配置模式下,输入 show interfaces
、 show security zones
、 show security address-book
、 show security nat
和 show security policies
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以将其更正。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 192.168.3.10/24; } } } ge-0/0/1 { unit 0 { family inet { address 3.3.3.10/24; } } } ge-0/0/2 { unit 0 { family inet { address 10.1.1.2/24; } } } [edit] user@host# show security zones security-zone sf-2 { interfaces { ge-0/0/0.0; } } security-zone asia-3 { interfaces { ge-0/0/1.0; } } security-zone dmz { interfaces { ge-0/0/2.0; } } [edit] user@host# show security address-book book1 { address sf-gw 192.168.3.201/32; attach { zone sf-2; } } book2 { address asia-gw 3.3.3.101/32; attach { zone asia-3; } } book3 { address west-ca 10.1.1.101/32; attach { zone dmz; } } [edit] user@host# show security nat source { pool ip-phone-pool { address { 3.3.3.20/32; } } rule-set phones { from zone sf-2; to zone asia-3; rule phone1 { match { source-address 192.168.3.10/32; destination-address 3.3.3.101/32; } then { source-nat { pool { ip-phone-pool; } } } } } } static { rule-set to-callagent { from zone asia-3; rule phone1 { match { destination-address 3.3.3.101/32; } then { static-nat prefix 10.1.1.101/32; } } } } proxy-arp { interface ge-0/0/1.0 { address { 3.3.3.101/32; 3.3.3.20/32; } } } [edit] user@host# show security policies from-zone dmz to-zone asia-3 { policy pol-dmz-to-asia-3 { match { source-address west-ca; destination-address asia-gw; application junos-mgcp; } then { permit; } } } from-zone asia-3 to-zone dmz { policy pol-asia-3-to-dmz { match { source-address asia-gw; destination-address west-ca; application junos-mgcp; } then { permit; } } } from-zone sf-2 to-zone dmz { policy pol-sf-2-to-dmz { match { source-address sf-gw; destination-address west-ca; application junos-mgcp; } then { permit; } } } from-zone dmz to-zone sf-2 { policy pol-dmz-to-sf-2 { match { source-address west-ca; destination-address sf-gw; application junos-mgcp; } then { permit; } } } from-zone sf-2 to-zone asia-3 { policy pol-sf-2-to-asia-3 { match { source-address sf-gw; destination-address asia-gw; application junos-mgcp; } then { permit; } } } from-zone asia-3 to-zone sf-2 { policy pol-asia-3-to-sf-2 { match { source-address asia-gw; destination-address sf-gw; application junos-mgcp; } then { permit; } } } from-zone sf-2 to-zone sf-2 { policy pol-intra-sf-2 { match { source-address any; destination-address any; application any; } then { permit; } } } from-zone asia-3 to-zone asia-3 { policy pol-intra-asia-3 { match { source-address any; destination-address any; application any; } then { permit; } } }
如果完成设备配置,请在配置模式下输入 commit
。
验证
要确认配置工作正常,请执行以下任务:
验证 MGCP ALG
目的
验证 MGCP ALG 是否启用。
行动
在操作模式下,输入 show security alg status | match mgcp
命令。
user@host> show security alg status | match mgcp
MGCP : Enabled
意义
输出显示 MGCPALG 状态,如下所示:
启用 — 显示已启用 MGCP ALG。
禁用 — 显示 MGCP ALG 已禁用。
验证 MGCP 呼叫
目的
验证当前处于活动状态的 MGCP 呼叫。
行动
在操作模式下,输入 show security alg mgcp calls
命令。
user@host> show security alg mgcp calls
Endpoint@GW Zone Call ID RM Group d001@101.50.10.1 Trust 10d55b81140e0f76 512 Connection Id> 0 Local SDP> o: 101.50.10.1 x_o: 101.50.10.1 c: 101.50.10.1/32206 x_c: 101.50.10.1/32206 Remote SDP> c: 3.3.3.5/16928 x_c: 3.3.3.5/16928 Endpoint@GW Zone Call ID RM Group d001@3.3.3.5 Untrust 3a104e9b41a7c4c9 511 Connection Id> 0 Local SDP> o: 3.3.3.5 x_o: 3.3.3.5 c: 3.3.3.5/16928 x_c: 3.3.3.5/16928 Remote SDP> c: 101.50.10.1/32206 x_c: 101.50.10.1/32206
意义
输出显示有关所有 MGCP 调用的信息。验证以下信息:
端点
区
呼叫标识符
资源管理器组
验证 MGCP ALG 统计信息
目的
验证 MGCP ALG 统计信息。
行动
在操作模式下,输入 show security alg mgcp counters
命令。
user@host> show security alg mgcp counters
MGCP counters summary: Packets received :284 Packets dropped :0 Message received :284 Number of connections :4 Number of active connections :3 Number of calls :4 Number of active calls :3 Number of transactions :121 Number of active transactions:52 Number of re-transmission :68 MGCP Error Counters: Unknown-method :0 Decoding error :0 Transaction error :0 Call error :0 Connection error :0 Connection flood drop :0 Message flood drop :0 IP resolve error :0 NAT error :0 Resource manager error :0 MGCP Packet Counters: CRCX :4 MDCX :9 DLCX :2 AUEP :1 AUCX :0 NTFY :43 RSIP :79 EPCF :0 RQNT :51 000-199 :0 200-299 :95 300-999 :0
意义
输出显示有关所有 MGCP 计数器的信息。验证以下信息:
MGCP 计数器摘要
MGCP 错误计数器
MGCP 数据包计数器
验证 MGCP 端点
目的
验证 MGCP 端点。
行动
在操作模式下,输入 show security alg mgcp endpoints
命令。
user@host> show security alg mgcp endpoints
Gateway: 101.50.10.1 Zone: Trust IP: 101.50.10.1 -> 101.50.10.1 Endpoint Trans # Call # Notified Entity d001 1 1 0.0.0.0/0->0.0.0.0/0 Gateway: 3.3.3.5 Zone: Untrust IP: 3.3.3.5 -> 3.3.3.5 Endpoint Trans # Call # Notified Entity d001 1 1 0.0.0.0/0->0.0.0.0/0
意义
输出显示有关所有 MGCP 端点的信息。验证以下信息:
两个端点的网关 IP 地址和区域
各网关的端点标识符、事务编号、呼叫号和已通知实体
了解 MGCP ALG 呼叫持续时间和超时
呼叫持续时间功能让您可以控制媒体网关控制协议 (MGCP) 呼叫活动,并帮助您管理网络资源。
通常会发送删除连接 (DLCX) 消息以删除连接。MCGP 应用层网关 (ALG) 会拦截它并移除该连接的所有媒体会话。
呼叫可以有一个或多个语音通道。每个语音通道有两个会话(或两个媒体流),一个用于实时传输协议 (RTP) 流量,一个用于实时控制协议 (RTCP) 信号。在管理会话时,设备将每个语音通道中的会话视为一组。超时和通话时设置适用于组,而不是每个会话。
以下参数用于管理 MGCP 呼叫活动:
maximum-call-duration
—此参数设置呼叫的绝对最大长度。当呼叫超过此参数设置时,MGCP ALG 会撕下通话并发布媒体会话。默认设置为 720 分钟,范围为 3 到 720 分钟。如果呼叫无法正确终止,此设置还可以释放带宽。inactive-media-timeout
—此参数表示呼叫在组内没有任何介质(RTP 或 RTCP) 信息流的情况下的最大时间长度(以秒为单位)。每次呼叫中出现 RTP 或 RTCP 数据包时,都会重置此超时。如果停用期超过此设置,为媒体打开的 MGCP ALG 门将关闭。默认设置为 120 秒,范围为 10 至 2550 秒。请注意,超时时,当媒体资源(会话和针孔)被移除时,呼叫不会终止。注意:值
inactive-media-timeout
应小于maximum-call-duration
值。transaction-timeout
—交易是命令,是其必需响应。例如,从网关到呼叫代理的 NTFY 或呼叫代理到网关的 200 OK。瞻博网络设备跟踪这些交易,并在事务出去时将其清除。MGCP 交易的超时范围为 3 到 50 秒,默认为 30 秒。
示例:设置 MGCP ALG 呼叫持续时间
此示例说明如何为 MGCP ALG 设置通话时长。
要求
开始之前,请确定用于控制 MGCP 呼叫活动和管理其网络资源的参数类型。请参阅 了解 MGCP ALG 呼叫持续时间和超时。
概述
该 maximum-call-duration
参数用于管理 MGCP 呼叫活动,并设置呼叫的绝对最大长度。当呼叫超过此参数设置时,MGCP ALG 会撕下通话并发布媒体会话。默认设置为 720 分钟,范围为 3 到 720 分钟。如果呼叫无法正确终止,此设置还可以释放带宽。在此示例中,通话时长设置为 600 分钟。
配置
程序
GUI 快速配置
逐步过程
要为 MGCP ALG 设置通话时限:
选择
Configure
>Security
>ALG
。选择选项
MGCP
卡。在最大通话时长框中,输入
600
。单击
OK
以检查您的配置并将其保存为候选配置。完成设备配置后,单击
Commit Options
>Commit
。
逐步过程
要为 MGCP ALG 设置通话时限:
配置 MGCP ALG 呼叫持续时间。
[edit] user@host# set security alg mgcp maximum-call-duration 600
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否正常工作,请输入 show security alg mgcp
命令。
示例:设置 MGCP ALG 无效媒体超时
此示例说明如何为 MGCP ALG 设置非活动媒体超时值。
要求
开始之前,请确定用于控制 MGCP 呼叫活动和管理其网络资源的参数类型。请参阅 了解 MGCP ALG 呼叫持续时间和超时。
概述
该 inactive-media-timeout
参数用于管理 MGCP 呼叫活动,并指示呼叫在组内没有任何介质(RTP 或 RTCP) 信息流时(以秒为单位)的最大时长。每次呼叫中出现 RTP 或 RTCP 数据包时,都会重置此超时。如果停用期超过此设置,为媒体打开的 MGCP ALG 门将关闭。默认设置为 120 秒,范围为 10 至 2550 秒。请注意,超时时,当媒体资源(会话和针孔)被移除时,呼叫不会终止。在此示例中,无效媒体超时设置为 90 秒。
配置
程序
GUI 快速配置
逐步过程
要为 MGCP ALG 设置非活动媒体超时:
选择
Configure>Security>ALG
。选择选项
MGCP
卡。在无效媒体超时框中,输入
90
。单击
OK
以检查您的配置并将其保存为候选配置。如果完成设备配置,请单击
Commit Options>Commit
。
逐步过程
要为 MGCP ALG 设置非活动媒体超时:
配置 MGCP ALG 非活动媒体超时值。
[edit] user@host# set security alg mgcp inactive-media-timeout 90
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否正常工作,请输入 show security alg mgcp
命令。
示例:设置 MGCP ALG 事务超时
此示例说明如何设置 MGCP ALG 的交易超时。
要求
开始之前,请确定用于控制 MGCP 呼叫活动和管理其网络资源的参数类型。请参阅 了解 MGCP ALG 呼叫持续时间和超时。
概述
该 transaction-timeout
参数用于管理 MGCP 呼叫活动,是一条信号消息;例如,从网关到呼叫代理的 NTFY 或呼叫代理到网关的 200 OK。瞻博网络设备会跟踪这些交易,并在交易出去时将其清除。MGCP 交易的超时范围为 3 至 50 秒,默认为 30 秒。在此示例中,事务超时设置为 20 秒。
配置
程序
GUI 快速配置
逐步过程
要为 MGCP ALG 设置交易超时:
选择
Configure>Security>ALG
。选择选项
MGCP
卡。在交易超时框中,输入
20
。单击
OK
以检查您的配置并将其保存为候选配置。如果完成设备配置,请单击
Commit Options>Commit
。
逐步过程
要为 MGCP ALG 设置交易超时:
配置 MGCP ALG 事务超时值。
[edit] user@host# set security alg mgcp transaction-timeout 20
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否正常工作,请输入 show security alg mgcp
命令。
示例:配置 MGCP ALG DoS 攻击保护
此示例说明如何为 MGCP ALG 配置连接泛洪保护。
要求
开始之前,请确定是否保护 MGCP 媒体网关免受 DoS 泛滥攻击。
概述
您可以保护媒体网关控制协议 (MGCP) 媒体网关免受拒绝服务 (DoS) 泛滥攻击,方法是限制其尝试处理的远程访问服务 (RAS) 消息和连接数。
配置 MGCP 消息泛洪保护时,MGCP 应用层网关 (ALG) 会丢弃超过所设置阈值的任何消息。每媒体网关每秒 2 至 50,000 条消息,默认为每媒体网关每秒 1000 条消息。
配置 MGCP 连接泛洪保护时,MGCP ALG 会丢弃超过设置阈值的任何连接请求。这限制了 (CRCX
) 命令的CreateConnection
处理速率,从而间接限制了针孔创建。每个媒体网关每秒 2 到 10,000 个连接请求的范围,默认为 200。
在此示例中,您可配置 MGCP ALG 以丢弃每秒超过 10,000 个请求的任何消息请求,并将任何超过 4000/秒的连接请求丢弃。
配置
程序
GUI 快速配置
逐步过程
要为 MGCP ALG 配置连接泛洪保护:
选择
Configure>Security>ALG
。选择选项
MGCP
卡。在“消息泛滥门卫”阈值框中,键入
10000
。在连接泛滥阈值框中,键入
4000
。单击
OK
以检查您的配置并将其保存为候选配置。如果完成设备配置,请单击
Commit Options>Commit
。
逐步过程
要为 MGCP ALG 配置连接泛洪保护:
配置连接泛滥阈值。
[edit] user@host# set security alg mgcp application-screen message-flood threshold 10000 user@host# set security alg mgcp application-screen connection-flood threshold 4000
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否正常工作,请输入 show security alg mgcp
命令。
示例:允许未知 MGCP ALG 消息类型
此示例说明如何在 NAT 模式和路由模式下配置 MGCP ALG 以允许未知 MGCP 消息类型。
要求
开始之前,请确定是否为设备容纳新的和未知的 MGCP 消息类型。
概述
为了适应媒体网关控制协议 (MGCP) 的持续开发,您可能需要允许包含新 MGCP 消息类型的流量。未知 MGCP 消息类型功能允许您配置瞻博网络设备以接受在网络地址转换 (NAT) 模式和路由模式中包含未知消息类型的 MGCP 流量。
此功能允许您指定瞻博网络设备如何处理未识别的 MGCP 消息。默认设置为丢弃未知(不支持)消息。未知消息会损害安全性。但是,在安全测试或生产环境中,此命令可用于解决不同供应商设备的互操作性问题。允许未知 MGCP 消息可帮助您让网络正常运行,以便稍后可以分析 IP 语音 (VoIP) 流量,以确定为何会丢弃某些消息。
请注意,此命令仅适用于已接收的数据包,这些数据包标识为受支持的 VoIP 数据包。如果无法识别数据包,则数据包总是被丢弃。如果数据包被识别为受支持的协议,并且您已将设备配置为允许未知消息类型,则该消息将转发至无处理。
配置
程序
GUI 快速配置
逐步过程
要配置 MGCP ALG 以允许未知消息类型:
选择
Configure>Security>ALG
。选择选项
MGCP
卡。Enable Permit NAT applied
选择复选框。Enable Permit routed
选择复选框。单击
OK
以检查您的配置并将其保存为候选配置。如果完成设备配置,请单击
Commit Options>Commit
。
逐步过程
要配置 MGCP ALG 以允许未知消息类型:
如果会话处于 NAT 模式或处于路由模式,则允许未知消息类型通过。
[edit] user@host# set security alg mgcp application-screen unknown-message permit-nat-applied permit-routed
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否正常工作,请输入 show security alg mgcp
命令。