Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SIP ALG

会话初始化协议 (SIP) 是一种信号协议,可通过互联网发起、修改和终止多媒体会话。SIP 支持单媒体和多媒体会话。

了解 SIP ALG

会话初始化协议 (SIP) 是互联网工程任务组 (IETF) 标准协议,用于通过互联网发起、修改和终止多媒体会话。此类会话可能包括会议、电话或多媒体,以及网络环境中即时消息和应用程序级移动性等功能。

Junos OS SIP 即服务,从而允许您根据配置的策略拒绝 SIP。SIP 是服务定义的Junos OS,将端口 5060 用作目标端口。

SIP 的一项功能是分发会话描述信息,在会话期间用于协商和修改会话参数。SIP 也用于终止多媒体会话、发出呼叫建立信号、提供故障指示并提供端点注册方法。

会话描述信息包含在 INVITE 和 200-OK 消息或 200-OK 和 ACK 消息中,并指示会话的多媒体类型;例如语音或视频尽管 SIP 可使用不同的描述协议描述会话,瞻博网络 SIP 应用层网关 (ALG) 仅支持会话描述协议 (SDP)。

SDP 提供系统可用于加入多媒体会话的信息。SDP 可能包括 IP 地址、端口号、日期和时间等信息。请注意,SDP 标头中的 IP 地址和端口号(分别为 c= 和 m= 字段)是客户端希望接收媒体流的地址和端口,而不是 SIP 请求发起方 IP 地址和端口号(尽管这些地址和端口号可以相同)。

SIP 消息包含从客户端到服务器的请求,以及响应从服务器到客户端的请求,目的是建立会话(或呼叫)。用户代理 (UA) 是在呼叫端点运行的应用程序,由两部分组成:

  • 用户代理客户端 (UAC),代表用户发送 SIP 请求

  • 用户代理服务器 (UAS),它侦听响应,并通知用户到达时

UAC 和 UAS 根据特定代理在协商中的角色进行定义。

UA 的示例包括 SIP 代理服务器和电话。

本主题包含以下章节:

SIP ALG 运营

有两种类型的 SIP 流量,即信号和媒体流。SIP 信令信息流由客户端与服务器之间的请求和响应消息组成,并使用 UDP 或 TCP 等传输协议。媒体流使用传输协议传输数据(例如音频数据)。

从 Junos OS 版12.3X48-D25和Junos OS,17.3R1 SIP ALG 支持 TCP。通过 SIP ALG 的 TCP 支持,无需频繁重新注册或刷新服务器,减少了到服务器的流量。

默认情况下,Junos OS 5060 上支持 SIP 信令消息。您可以通过创建允许 SIP 服务的策略来配置端口,而软件过滤器会像任何其他类型信息流那样过滤信息流信号,从而允许或拒绝它。但是,媒体流使用可动态分配的端口号,可在呼叫过程中更改多次。如果没有固定端口,创建静态策略来控制媒体流量就不安全。在这种情况下,设备将调用 SIP ALG。用于媒体会话的设备传输端口预先未知;但是,用于 SIP 协商的端口是众所周知的(或预定义的)。ALG 对来自控制会话的数据包感兴趣,它可以轻松区分其他数据包,并检查协商中用于媒体会话的传输信息(IP 地址和端口)。

注意:

当 SIP ALG 确定匹配的 IP、端口、传输地址和协议时,会形成一个针孔,这些 IP、端口、传输地址和协议在锁孔打开时,只要知道任何信息,就将其识别出来。

SIP ALG 监控 SIP 交易,并基于从这些交易中提取的信息动态创建和管理针孔。该瞻博网络 SIP ALG 支持所有 SIP 方法和响应。您可以通过创建允许 SIP 服务的静态策略,允许 SIP 事务遍历瞻博网络防火墙。如果配置的策略是检测 SIP 流量(或者更合适地,如果策略将某些流量发送到 SIP ALG 进行检测),则允许的操作是允许流量(如果打开了相应的针孔)或拒绝流量。

SIP ALG 拦截包含 SDP 的 SIP 消息,并且使用解析器提取创建针孔所需的信息。SIP ALG 会检查数据包的 SDP 部分,解析器会提取 IP 地址和端口号等信息,而 SIP ALG 在针孔表中记录这些信息。SIP ALG 使用针孔表中记录的 IP 地址和端口号来打开针孔,并允许媒体流遍历设备。

注意:

当设备执行NAT时,A 采用的传输地址不正确。SIP ALG 根据设备转换网络地址分配的转换端口和地址修改传输地址。加密 SDP 时,设备无法提取或修改消息的内容,因此无法更正传输地址。为了提供解决方法,已部署 STUN 协议(需要 NAT 设备执行某种形式的 cone-NAT),允许客户端确定已转换的地址,并使用 SDP 消息中新发现的地址。

NEC SIP 产品有条件支持。

SDP 会话说明

SDP 会话说明是定义明确的格式,用于传达足够的信息,以发现并参与多媒体会话。一系列属性/值对描述会话,每行一对。属性名称为单个字符,后跟 =和 值。可选值通过 =*指定。值可以是一个 ASCII 字符串,或者是用空格分隔的一系列特定类型。属性名称仅在关联的语法结构内唯一,例如仅在会话、时间或媒体内。

注意:

在 SDP 会话说明中,媒体级别信息以 m= 字段开头。

在 SDP 说明的许多字段中,两个字段对于 SIP ALG 特别有用,因为它们包含传输层信息。

  • c= 连接信息

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

    c=<网络类型><入口类型><连接地址>

    Junos OS仅支持"IN"(适用于 Internet)作为网络类型,"IPv4"作为地址类型,并且支持单播 IP 地址或域名作为目标(连接)IP 地址。从 Junos OS 版15.1X49-D40和Junos OS版本17.3R1,还支持"IPv6"地址类型。

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

  • m= 用于媒体公告

    此字段显示在媒体级别,并包含介质说明。它以这种格式显示:

    m=<><><><fmt 列表>

    目前,Junos OS支持"RTP"作为应用层传输协议。端口号表示媒体流的目标端口(源由远程 UA 分配)。格式列表 (应用层t 列表)提供媒体使用的应用层协议的信息。

    该软件只会为 RTP 和实时控制协议 (RTCP) 打开端口。每个 RTP 会话都有一个对应的 RTCP 会话。因此,只要媒体流使用 RTP,SIP ALG 都必须为 RTP 和 RTCP 流量保留端口(创建针孔)。默认情况下,RTCP 的端口号比 RTP 端口号高一个。

针孔创建

每个针孔(一个用于 RTP 流量,另一个用于 RTCP 信息流)共享相同的目标 IP 地址。IP 地址来自 SDP 会话说明中的 c= 字段。由于 c= 字段可能出现在 SDP 会话说明的会话级别或媒体级别部分,解析器根据以下规则(根据 SDP 约定)确定 IP 地址:

  • 首先,SIP ALG 解析器会查找一个 c= 字段,其中包含媒体级别的 IP 地址。如果有这样的字段,解析器会提取该 IP 地址,SIP ALG 使用此地址为介质创建针孔。

  • 如果媒体级别没有 c= 字段,SIP ALG 解析器会从会话级别的 c= 字段中提取 IP 地址,而 SIP ALG 使用此 IP 地址为介质创建针孔。如果会话说明的任一级别中都不包含 c= 字段,则表示协议堆栈中出现错误,并且设备会丢弃数据包并记录事件。

SIP ALG 还会为信号流量打开针孔。在上一个信号会话超时后,这些信号针孔非常有用,对于发送至第三方地址的信号信息流(与上一个信号会话不匹配)也很有用。SIP ALG 信号针孔永远不会老去,与 RTP 或 RTCP 针孔不同,其中仅指定目标 IP 和目标端口。

SIP ALG 会打开信号针孔,以用于以下标头(如有必要):

  • 通过

  • 联系

  • 路线

  • 记录路由

SIP ALG 需要以下信息来创建针孔。此信息来自 SDP 会话说明或 SIP 标头(如上所列)。

  • 协议 — UDP 或 TCP。

  • 源 IP - 未知。

  • 源端口 - 未知。

  • 目标 IP— 解析器从媒体或会话级别的 c= 字段提取目标 IP 地址。

  • 目标端口 — 解析器从媒体级别的 m= 字段中提取 RTP 的目标端口号,并采用以下公式计算 RTCP 的目标端口号:

    RTP 端口号 + 一个

  • 生存期 — 该值表示打开针孔以允许数据包通过的时间长度(以秒)。数据包在使用寿命到期前必须先穿过引脚孔。当生存期到期时,SIP ALG 会消除针孔。

    当数据包在生存期内穿过针孔时,立即对 SIP ALG 进行插脚处理,为数据包到达的方向消除针孔。

    图 1 描述了两个 SIP 客户端之间的呼叫设置,以及 SIP ALG 如何建立针孔以允许 RTP 和 RTCP 流量。插图假设设备具有允许 SIP 的策略,从而打开端口 5060 以接收 SIP 信令消息。

    图 1:SIP ALG 呼叫设置 SIP ALG Call Setup
注意:

当目标 IP 地址为 0.0.0.0 时,SIP ALG 不会为 RTP 和 RTCP 流量创建针孔,这表示会话已暂停。例如,在电话通信期间,要暂停会话,客户端 A 会向客户端 B 发送一条 SIP 消息,其中目标 IP 地址为 0.0.0.0。这样做会向客户端 B 指示,不应发送任何介质,除非进一步通知。如果客户端 B 发送介质,则设备会丢弃数据包。

了解 SIP ALG 的 IPv6 支持

SIP ALG 支持 IPv6 以及 NAT-PT 模式和 NAT64 地址转换。

SIP ALG 处理 IPv6 地址的方式与处理 IPv4 地址相同,如果配置了 IPv4 地址,NAT信息流并开启引脚孔以更新有效负载。

以下格式会进行特殊处理:

  • IPv6 in SIP URIs—SIP URI 与具有 IPv4 地址的 URI 看起来一样。如所有 URL 一样,IPv6 地址括在方括号中。IPv6 地址块用冒号分隔。在许多表示法中,冒号从协议端口中分隔主机名或 IP 地址。要解析完整 IPv6 地址并分离端口,地址封装在方括号内

  • IPv6 in SDP—会话描述协议 (SDP) 中的 IPv6 地址具有 IP6 标记。

  • 支持 IPv6 的 SIP ALG 存在以下限制:

    • 实施具有持久NAT的 NAT64 时,如果记录地址 (AOR) 上配置了 NAT,SIP ALG 会将 NAT 转换添加到持久 NAT NAT 绑定表中。由于持久NAT无法复制配置的地址,因此不支持在同一地址上配置的 NAT66 和 NAT64 共存。

      只为同一源 IP 地址创建一个绑定。

了解基于 UDP 的 SIP ALG 的扩展繁忙灯现场支持

忙于灯字段 (BLF) 是 IP 电话上的一个灯,用于指示连接到同一专用分支机构交换 (PBX) 的另一个扩展是否正在忙于。您可以使用 Web 界面手动配置 BLF。配置 BLF 时,电话订阅 IP PBX 上提供的资源列表,以通知其他扩展的状态信息。BLF 通过会话初始化协议 (SIP) 工作,并使用订阅和通知消息。通常,电话是订阅者,IP PBX 是通知器。

将电话注册到 IP PBX 时,IP PBX 会通知电话资源列表的状态。例如,如果资源列表庞大,NOTIFY 消息正文也很大。由于 SIP ALG 仅支持 3000 字节 SIP 消息,因此绕过了巨大的通知消息。如果消息正文中 BLF 的实例过多,则不会更改有效负载,并且不会打开门。

从 Junos OS 12.3X48-D15 Junos OS 版本17.3R1开始,SIP ALG 在 UDP 协议上支持 65,000 字节 SIP 消息。在扩展 BLF 应用程序中,如果每个实例大约 500 字节,SIP ALG 在一条 SIP UDP 消息中支持 100 个实例。

基于 UDP 的 SIP ALG 的 BLF 支持包括以下功能:

  • 设备可发送和接收 65,000 字节 SIP 消息。

  • SIP ALG 可以解析 65,000 字节 SIP 消息,并打开针孔(如有必要)。

  • 如果配置了密钥并更改了有效负载,SIP ALG NAT新的巨大 SIP 消息。

了解 SIP ALG 请求方法

会话初始化协议 (SIP) 事务模式包括大量请求和响应消息,每条消息都包含一个表示消息目的 method 的字段。

Junos OS支持以下方法类型和响应代码:

  • 邀请 — 用户发送邀请请求以邀请另一位用户加入会话。邀请请求正文可能包含会话说明。

  • ACK - 邀请发起方用户发送 ACK 请求,确认接收邀请请求的最终响应。如果原始邀请请求不包含会话说明,则 ACK 请求必须包含该请求。

  • 选项 — 用户代理 (UA) 获取有关 SIP 代理功能的信息。服务器会提供有关其支持的方法、会话描述协议和消息编码的信息。

  • BYE — 用户发送 BYE 请求以放弃会话。来自任一用户的 BYE 请求会自动终止会话。

  • 取消 — 用户发送 CANCEL 请求以取消挂起的邀请请求。如果 SIP 服务器在接收 CANCEL 之前发送邀请的最终响应,则取消请求将无效。

  • 寄存器 — 用户向 SIP 同步服务器发送 REGISTER 请求,以通知其用户当前位置。SIP 同步服务器会记录在 REGISTER 请求中收到的所有信息,并提供给任何尝试定位用户的 SIP 服务器。

  • 信息 - 用于沿通话的信号路径传递会话中间的信号信息。

  • 订阅 — 用于从远程节点请求当前状态和状态更新。

  • 通知 — 发送以通知订阅者订阅状态的变化。

  • 参阅 — 用于根据请求中提供的联系信息将接收方(由 Request-URI 识别)指代第三方。

    例如,如果专用网中的用户 A 将公共网络中用户 B 指的是也位于专用网中的用户 C,则 SIP 应用层 网关 (ALG) 会为用户 C 分配一个新的 IP 地址和端口号,以便用户 B 可以联系用户 C。但是,如果用户 C 注册了改进接口,其端口映射会存储在 ALG 网络地址转换 (NAT) 表中,并可以重复使用来执行转换。

  • 更新 — 用于为新的或更新的 SDP 信息打开针孔。Via:, From:, to:, Call-ID:, Contact:, Route:和 Record-Route: 标头字段将修改。

  • 1 xx 、 202 、 2 xx 、 3 、 xx 4 、 xx 5 、 6 响应代码 — 用于 xx xx 指示交易状态。标头字段将修改。

SIP ALG 配置概述

默认情况下,应用层网关 (SIP ALG) 上的会话初始化协议 (SIP ALG) 禁用 — 如有必要,应该使用CLI协议来启用。其他设备上,默认情况下会启用此功能。要微调 SIP ALG 运营,请遵循以下说明:

  1. 控制 SIP 呼叫活动。有关说明,请参阅 示例:设置 SIP ALG 呼叫持续时间和超时

  2. 保护 SIP 代理服务器免受拒绝服务 (DoS) 泛洪攻击。有关说明,请参阅 示例:配置 SIP ALG DoS攻击防护

  3. 当会话进入(网络地址转换 (NAT) 模式时,允许未知消息通过。有关说明,请参阅 示例:允许未知 SIP ALG 消息类型

  4. 支持专有 SIP 呼叫流。有关说明,请参阅 保留 SIP ALG 保留资源(CLI过程)

了解 SIP ALG DoS攻击防护

会话初始化协议 (SIP) 代理服务器处理呼叫的能力可能会通过重复 SIP 邀请请求(最初被拒绝的请求)受到影响。通过拒绝服务 (DoS) 保护功能,您可以配置设备以监控邀请请求和代理服务器对请求的回复。如果回复包含非 xx, xx xx 401、407、487 和 488 非实际故障响应的 3 4 或 5 响应代码,则不应阻止该请求。请参阅 了解 SIP ALG 和 NAT。ALG 将请求的源 IP 地址和代理服务器的 IP 地址存储在表中。因此,设备将针对此表检查所有邀请请求,并且对于可配置的秒数(默认值为 3),将丢弃与表中的条目匹配的任何数据包。您可以将设备配置为监控并拒绝所有代理服务器的重复邀请请求,或者通过指定目标 IP 地址来保护特定代理服务器。全局配置 SIP 攻击保护。

了解 SIP ALG 未知消息类型

此功能允许您指定设备如何处理未识别的会话初始化协议 (SIP) 消息。默认情况下,会丢弃未知(不支持)消息。

不建议允许未知消息,因为它们可能会危及安全。但是,在安全测试或生产环境中,此命令可用于解决与不同供应商设备的互操作性问题。允许未知 SIP 消息可帮助您使网络正常运行,以便稍后分析 IP 语音 (VoIP) 流量,确定为什么会丢弃某些消息。未知 SIP 消息类型功能允许您将设备配置为接受包含未知消息类型的 SIP 信息流(包括网络地址转换 (NAT) 模式和路由模式。

注意:

此选项仅适用于识别为受支持的 VoIP 数据包的已接收数据包。如果数据包无法识别,则始终丢弃。如果数据包被识别为受支持协议,并且您配置了设备以允许未知消息类型,则消息将转发而不会进行处理。

了解 SIP ALG 通话时长和超时

呼叫持续时间和超时功能可控制会话初始化协议 (SIP) 呼叫活动,并帮助您管理网络资源。

呼叫通常在其中一个客户端发送 BYE 或 CANCEL 请求时结束。SIP 应用层网关 (ALG) 拦截 BYE 或 CANCEL 请求,并删除该呼叫的所有媒体会话。可能的原因或问题可能阻止呼叫中的客户端发送 BYE 或 CANCEL 请求,例如电源故障。在这种情况下,呼叫可能一直继续,占用设备上的资源。

呼叫可以有一个或多个语音通道。每个语音通道都有两个会话(或两个媒体流),一个用于实时传输协议 (RTP) 流量,另一个用于实时控制协议 (RTCP) 信号发送。管理会话时,设备将每个语音通道中的会话视为一组。超时和通话持续时间设置适用于一组,而不是每个会话。

以下参数用于监管 SIP 呼叫活动:

  • inactive-media-timeout—此参数指示呼叫在组内无介质(RTP 或 RTCP)信息流的情况下可以保持活动状态的最大时间长度(以秒为秒)。每次在呼叫中发生 RTP 或 RTCP 数据包时,此超时重置。当非活动期超过此设置时,为介质打开的 SIP ALG 中的临时开口(针孔)将关闭。默认设置为 120 秒,范围为 10 到 2550 秒。请注意,超时时,介质资源(会话和针孔)将移除,如果此呼叫的所有媒体资源都移除,设备上的 SIP 调用也将被终止。

  • maximum-call-duration— 此参数设置呼叫的绝对最大长度。当呼叫超过此参数设置时,SIP ALG 会关闭呼叫并释放媒体会话。默认设置为 720 分钟,范围为 3 到 720 分钟。

  • t1-interval—此参数指定端点之间的事务往返时间估算,以秒为秒。默认值为 500 毫秒。由于许多 SIP 定时器会随 t1 间隔时间而扩展(如 RFC 3261 中所述),因此当您更改 t1 间隔计时器的值时,这些 SIP 定时器也会调整。

  • t4-interval—此参数指定消息保留在网络中的最大时间。默认值为 5 秒,范围为 5 到 10 秒。由于许多 SIP 定时器会随 t4 间隔时间而扩展(如 RFC 3261 中所述),因此当您更改 t4 间隔计时器的值时,这些 SIP 定时器也会调整。

  • c-timeout—此参数指定代理的 INVITE 事务超时时间,分钟;默认值为 3。由于 SIP ALG 位于中间,而不是使用邀请交易计时器值 B(即 (64 * T1) = 32 秒),SIP ALG 从代理获取其计时器值。

了解 SIP ALG 保留资源

当用户呼叫被暂停时,会话初始化协议 应用层 网关 (SIP ALG) 将释放会话描述协议 (SDP) 媒体资源,如插脚孔和转换上下文。用户恢复呼叫时,邀请请求消息将协商新的 SDP 优惠和答案,而 SIP ALG 将重新为媒体流分配资源。这可能会导致媒体说明的新已转换 IP 地址和端口号,即使媒体说明与上一说明相同。这符合 RFC 3264 会话描述协议 (SDP)的优惠/答案模式。

某些专有 SIP 实施已设计呼叫流,使用户代理 (UA) 模块忽略新的 SDP 邀请优惠,并继续使用上一次协商的 SDP 优惠。要容纳此功能,当呼叫被暂停以便重新使用时,您必须将设备配置为保留 SDP 媒体资源。

保留 SIP ALG 保留资源(CLI过程)

要适应专有 SIP 呼叫流:

了解 SIP ALG 和NAT

专用网络地址转换 (NAT) 协议允许专用子网中的多个主机共享单个公共 IP 地址来访问 Internet。对于传出流量,NAT将专用子网中的主机的专用 IP 地址替换为公共 IP 地址。对于传入流量,公共 IP 地址将重新转换为专用地址,并且消息将路由到专用子网中的相应主机。

与NAT初始化协议 (SIP) 服务一起使用协议会更复杂,因为 SIP 消息包含 SIP 标头和 SIP 正文中的 IP 地址。与 SIP NAT一起使用时,SIP 标头包含关于呼叫方和接收方的信息,设备转换此信息以将其隐藏在外部网络之外。SIP 正文包含会话描述协议 (SDP) 信息,其中包括用于传输媒体的 IP 地址和端口号。设备转换 SDP 信息,以用于分配用于发送和接收媒体的资源。

SIP 消息中的 IP 地址和端口号的更换方式取决于消息的方向。对于传出消息,客户端的专用 IP 地址和端口号将替换为该防火墙的公共 IP 地址和瞻博网络编号。对于传入消息,防火墙的公共地址将替换为客户端的专用地址。

当跨防火墙发送邀请消息时,SIP 应用层 网关 (ALG) 会从消息头收集信息,并放入呼叫表中,用于将后续消息转发至正确的端点。当新消息到达时,例如 ACK 或 200 OK,ALG 将"From:、To:和 Call-ID:"字段与呼叫表进行比较,以识别消息的呼叫上下文。如果到达的新邀请消息与现有呼叫匹配,ALG 将处理它作为 REINVITE。

当包含 SDP 信息的消息到达时,ALG 将分配端口,NAT SDP 中的端口之间创建一个映射。由于 SDP 需要实时传输协议 (RTP) 和实时控制协议 (RTCP) 通道的连续端口,因此 ALG 提供了连续的偶数端口。如果无法找到一对端口,则丢弃 SIP 消息。

SIP ALG 支持 IPv6 以及 NAT-PT 模式和 NAT64 地址转换。

本主题包含以下章节:

拨出呼叫

当使用从内部到外部网络的 SIP 请求消息启动 SIP 呼叫时,NAT 将替换 SDP 中的 IP 地址和端口号,并且将 IP 地址和端口号绑定至 瞻博网络 防火墙。通过、联系人、路由和记录路由 SIP 标头字段(如果存在)也将绑定到防火墙 IP 地址。ALG 保存这些映射,用于重新传输和 SIP 响应消息。

然后,SIP ALG 在防火墙中打开针孔,允许介质通过动态分配的端口(根据 SDP 中的信息以及"通过、联系"和"记录-路由"标头字段中的信息进行协商)。针孔还允许传入数据包到达接触、通过和记录路由 IP 地址和端口。处理返回信息流时,ALG 将原始联系人(通过、路由和记录路由)字段重新插入数据包中。

来电

从公共网络发起呼入到公共静态NAT地址或连接设备的 IP 地址。静态 NAT 静态配置,指向内部主机的 IP 地址;接口 IP 地址由 ALG 在监控内部主机发送到 SIP 接收器发送的寄存器消息时进行动态记录。当设备收到传入的 SIP 数据包时,它会设置一个会话,并且将数据包的负荷转发至 SIP ALG。

ALG 检查 SIP 请求消息(最初是邀请),基于 SDP 中的信息,开启传出媒体的门。当 200 OK 响应消息到达时,SIP ALG NAT IP 地址和端口上执行操作,在出站方向上打开针孔。(打开的门有一个短的上线时间,如果未快速收到 200 OK 响应消息,门会退出。)

当 200 OK 响应到达时,SIP 代理将检查 SDP 信息,并读取每个媒体会话的 IP 地址和端口号。设备上 SIP ALG 执行NAT和端口号上的操作,为出站流量打开针孔,以及刷新入站方向上门的超时时间。

当 ACK 到达 200 OK 时,也通过 SIP ALG。如果消息包含 SDP 信息,SIP ALG 将确保 IP 地址和端口号不会与上一次邀请更改 — 如果是,ALG 会删除旧针孔并创建新的针孔,使媒体可以通过。ALG 还会监控"通过"、"联系人"和"记录路由"SIP 字段,如果确定这些字段已发生变化,则开启新的针孔。

已转发呼叫

转发呼叫例如,当网络外部的用户 A 在网络内部呼叫用户 B 时,用户 B 将呼叫转发至网络外部的用户 C。SIP ALG 将处理来自用户 A 的邀请作为正常呼入呼叫。但是,当 ALG 检查网络外部从 B 到 C 的转发呼叫时,发现 B 和 C 使用同一接口到达,并且防火墙不会打开引脚孔,因为媒体将直接在用户 A 和用户 C 之间流动。

呼叫终止

BYE 消息将终止呼叫。当设备收到 BYE 消息时,它会像对任何其他消息一样转换标头字段。但由于接收方必须认可 BYE 消息为 200 OK,因此 ALG 会延迟 5 秒,以便允许传输 200 OK。

呼叫再次邀请消息

重新邀请消息将新媒体会话添加到呼叫中,并删除现有媒体会话。将新媒体会话添加到呼叫中时,在防火墙中会打开新针孔,并创建新的地址绑定。该过程与原始呼叫设置相同。当从呼叫中移除所有媒体会话或媒体针孔时,当收到 BYE 消息时,呼叫将被移除。

呼叫会话计时器

作为预防措施,SIP ALG 使用硬超时值设置呼叫可以存在的最大时间量。这样可确保发生以下一个事件时设备得到保护:

  • 通话期间系统崩溃,未收到 BYE 消息。

  • 恶意用户永远不会在尝试攻击 SIP ALG 时发送 BYE。

  • SIP 代理实施不佳,无法处理记录路由,并且从不发送 BYE 消息。

  • 网络故障会阻止接收 BYE 消息。

取消呼叫

任一方可通过发送 CANCEL 消息取消呼叫。收到 CANCEL 消息后,SIP ALG 通过防火墙(如果已打开)锁定针孔,并释放地址绑定。在释放资源之前,ALG 将控制通道的使用时间延迟大约 5 秒,以便允许最后 200 OK 通过。无论 487 还是非 200 响应到达,呼叫在 5 秒超时到期时终止。

分 叉

Forking 允许 SIP 代理同时将单条邀请消息发送到多个目标。当收到多个 200 OK 响应消息到达单个呼叫时,SIP ALG 解析但会使用收到的前 200 OK 消息更新呼叫信息。

SIP 消息

SIP 消息格式由 SIP 标头部分和 SIP 正文组成。在请求消息中,标头部分的第一行是请求行,其中包括方法类型、request-URI 和协议版本。在响应消息中,第一行是状态行,其中包含状态代码。SIP 标头包含 IP 地址和用于信号发送的端口号。由空行分隔的 SIP 正文(从标头部分分隔)保留用于会话说明信息,是可选的。Junos OS目前仅支持 SDP。SIP 正文包含用于传输介质的 IP 地址和端口号。

SIP 标头

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

IP 地址转换的执行方式取决于消息类型和方向。消息可以是以下任何一项:

  • 入站请求

  • 出站响应

  • 出站请求

  • 入站响应

表 1 显示NAT用例中如何执行各个操作。请注意,对于多个报头字段,ALG 的确定不仅仅是消息来自网络内部还是外部。它还必须确定客户端发起呼叫以及消息是请求还是响应。

表 1:请求带表格NAT消息

入站请求

(从公共网络到私有云)

自:

将域替换为本地地址

从:

没有

呼叫 ID:

没有

通过:

没有

请求 URI:

将 ALG 地址替换为本地地址

联系:

没有

记录路由:

没有

路线:

没有

出站响应

(从私有云到公共网络)

自:

将 ALG 地址替换为本地地址

从:

没有

呼叫 ID:

没有

通过:

没有

请求 URI:

N/A

联系:

将本地地址替换为 ALG 地址

记录路由:

将本地地址替换为 ALG 地址

路线:

没有

出站请求

(从私有云到公共网络)

自:

没有

从:

将本地地址替换为 ALG 地址

呼叫 ID:

没有

通过:

将本地地址替换为 ALG 地址

请求 URI:

没有

联系:

将本地地址替换为 ALG 地址

记录路由:

将本地地址替换为 ALG 地址

路线:

将本地地址替换为 ALG 地址

出站响应

(从公共网络到私有云)

自:

没有

从:

将 ALG 地址替换为本地地址

呼叫 ID:

没有

通过:

将 ALG 地址替换为本地地址

请求 URI:

N/A

联系:

没有

记录路由:

将 ALG 地址替换为本地地址

路线:

将 ALG 地址替换为本地地址

SIP 正文

SIP 正文中的 SDP 信息包含 ALG 用于创建媒体流通道的 IP 地址。SDP 部分转换还将分配用于发送和接收介质的端口号资源。

示例 SDP 部分中的以下节选显示要转换用于资源分配的字段。

SIP 消息可以包含多个媒体流。概念类似于将多个文件附加到电子邮件消息。例如,从 SIP 客户端发送至 SIP 服务器的邀请消息可能有以下字段:

Junos OS每个方向协商最多 6 个 SDP 通道,每个呼叫共支持 12 个通道。有关详细信息,请参阅 了解 SIP ALG

SIP NAT情景

图 2图 3 显示 SIP 呼叫邀请和 200 OK。在 图 2中,ph1 会向 ph2 发送 SIP 邀请消息。请注意,设备如何转换标头字段中的 IP 地址(以粗体字体显示)。

邀请消息的 SDP 部分指示呼叫者愿意接收媒体的地方。请注意,Media Pinhole 包含两个端口号,即 52002 和 52003,用于 RTCP 和 RTP。通过/接触针孔为 SIP 信号提供端口号 5060。

观察在图 3中的 200 OK 响应消息中如何反向邀请消息中执行的转换。此消息中的 IP 地址是公共的,不会转换,但会打开门以允许媒体流访问专用网。

图 2:SIP NAT方案 1 SIP NAT Scenario 1
图 3:SIP NAT方案 2 SIP NAT Scenario 2

SIP 响应等级

SIP 响应提供有关 SIP 事务的状态信息,并包括响应代码和原因短语。SIP 响应分组为以下类:

  • 信息(100 到 199)—收到的请求,继续处理请求。

  • 成功(200 至 299)— 成功接收、了解和接受行动。

  • 重定向(300 到 399)— 完成请求所需的进一步操作。

  • 客户端错误(400 到 499)—请求包含错误的语法,或在此服务器上无法执行。

  • 服务器错误(500 到 599)—服务器未满足明显有效的请求。

  • 全局故障(600 到 699)— 请求不能在任何服务器中满足。

表 2 提供了当前 SIP 响应的完整列表。

表 2:SIP响应

信息

100 尝试

180 环城

181 正在转发呼叫

182 个排队

183 会话进度

 

成功

200 OK

接受 202

 

重 定向

300 多种选择

301 永久移动

302 临时移动

305 使用代理

380 替代服务

 

客户端错误

400 错误请求

401 未经授权的

402 需要付款

403 禁止

404 未找到

405 不允许的方法

406 不可接受

需要 407 代理身份验证

408 请求外发

409 冲突

410 已消失

411 所需长度

413 请求实体过大

414 请求 URL 过大

415 不支持的媒体类型

420 错误扩展

480 暂时不可用

481 不存在呼叫段/事务处理

482 已检测到环路

483 跃点过多

484 地址不完整

485 模糊不清

486 在这里忙于

487 请求已取消

488 此处不可接受

 

 

服务器错误

500 服务器内部错误

501 未实施

502 坏网关

502 服务不可用

504 网关省时

不支持 505 SIP 版本

全局故障

600 个"无处不在的忙碌"

603 下降

604 不存在

606 不可接受

 

 

NAT SIP IPv6 ALG 的纯 IPv6 模式 (NAT66) 模式

SIP IPv6 ALG 支持 NAT66,就像 NAT44 一样。NAT66(IPv6 NAT)提供源路由NAT静态路由功能NAT类似于 NAT44 (IPv4 NAT)。

NAT-PT

网络地址转换 协议转换 (NAT-PT) (RFC 2766) 是一种协议转换机制,允许通过 IPv4 和 IPv6 数据报与协议无关转换在 IPv6 和 IPv4 节点之间通信,无需会话状态信息。

NAT-PT 由从 IPv6 NAT到 IPv4 地址的正常地址实施,反之亦然。SIP ALG 处理有效负载中的地址转换,就像地址在正常地址NAT。

NAT-PT 使用 IPv4 网络中的地址绑定 IPv6 网络中的地址,反之亦然,为地址领域之间遍历的数据报提供透明路由。

NAT-PT 的主要优势在于,终端设备和网络可以运行 IPv4 地址或 IPv6 地址,流量可以从任何一端启动。

NAT64

NAT64 是一种允许 IPv6 主机与 IPv4 服务器通信的机制。NAT64 需要保持 IPv6 到 IPv4 地址的映射。此类地址映射要么由系统管理员静态配置(无状态转换),要么更频繁地在 IPv6 网络的第一个数据包到达要转换的 NAT64(有状态)时自动创建。

NAT64 使用永久防火墙在设备上NAT。当第一条 SIP 请求消息(第一个数据包应仅来自 IPv6)转发 DUT 时,将创建地址绑定,然后数据包可朝两个方向流动。

NAT64 机制将 IPv6 数据包转换为 IPv4 数据包,反之亦然,它允许 IPv6 客户端使用单播 UDP、TCP 或 ICMP 与 IPv4 服务器联系。虽然NAT-PT 和 NAT64 行为看起来相似,但这些机制的实施方式有所不同。

实施具有持久 NAT 的 NAT64 时,如果记录地址上配置了 NAT,则支持 IPv6 的 SIP ALG 会将 NAT 转换添加到持久 NAT 绑定表中。由于持久NAT无法复制配置的地址,因此不支持在同一地址上配置的 NAT66 和 NAT64 共存。

只为同一源 IP 地址创建一个绑定。

STUN 和 SIP ALG

会话遍历实用程序 for NAT (STUN) 是让 VoIP 通过防火墙NAT的解决方案。

之前,STUN 在没有 SIP ALG 的情况下工作。这意味着,在配置持久连接时,NAT SIP ALG。

配置持久连接之后,STUN 可以与 SIP ALG 和 SIP ALG NAT共存。

了解使用 SIP 数据处理和接收服务支持的传入 SIP ALG NAT

会话初始化协议 (SIP) 注册提供发现功能,SIP 代理和位置服务器可通过此功能识别用户联系的位置或位置。用户通过向安装中心发送 REGISTER 消息来注册一个或多个联系位置。REGISTER 消息中的 "收件人"和"联系人"字段包含记录统一资源标识符 (URI) 地址以及一个或多个联系人 URL,如图 4 所示。注册在将记录地址与联系人地址关联的位置服务中创建绑定。

设备将监控传出 REGISTER 消息,网络地址转换这些地址NAT (NAT),将信息存储在"传入"NAT表中。然后,当从网络外部接收邀请消息时,设备将使用传入NAT表来确定将邀请消息路由至哪个内部主机。您可以通过在设备出口接口上配置接口源或NAT或NAT端口池,以利用 SIP 代理注册服务来允许呼入呼叫。接口源NAT足以在小型办事处处理呼入的呼叫,而我们建议为较大的网络或NAT环境设置源源设备池。

注意:

只有 SIP 和 H.323 服务NAT或源NAT源源池的传入呼叫支持。对于传入呼叫,Junos OS仅支持 UDP 和 TCP。域名解析目前也不受支持;因此,URL 必须包含 IP 地址,如 图 4 所示

图 4:使用 SIP Using the SIP Registrar 数据

示例:设置 SIP ALG 通话持续时间和超时

此示例显示如何设置呼叫持续时间和媒体非活动超时。

要求

开始之前,请查看用于控制 SIP 呼叫活动的呼叫持续时间和超时功能。请参阅 了解 SIP ALG 通话持续时间和超时

概述

呼叫持续时间和无活动媒体超时功能可帮助您保护网络资源并最大化吞吐量。

参数 maximum-call-duration 设置呼叫可处于活动状态的最大允许时间长度。超过持续时间时,SIP ALG 会缩短通话时间,并释放媒体会话。默认设置为 720 分钟,范围为 3 到 720 分钟。如果呼叫无法正确终止,则此设置还可释放带宽。

参数表示呼叫在组内无媒体(RTP 或 RTPC)信息流的情况下可以保持活动状态的最大 inactive-media-timeout 时间长度(以秒)。每次在呼叫中发生 RTP 或 RTCP 数据包时,此超时重置。当非活动期超过此设置时,防火墙中的介质的 SIP ALG 临时开口(针孔)将关闭。默认设置为 120 秒,范围为 10 到 2550 秒。超时时,当移除介质资源(会话和针孔)时,呼叫不会终止。

在此例中,呼叫持续时间设置为 36000 秒,而媒体非活动超时设置为 90 秒。

配置

程序

GUI 快速配置
逐步过程

要设置 SIP ALG 呼叫持续时间和媒体非活动超时:

  1. 选择 配置 > 安全 > ALG

  2. 选择 SIP 选项卡。

  3. 在"最大呼叫持续时间"字段中,键入 600

  4. 在"无效媒体超时"字段中,输入 90

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

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

逐步过程

要设置 SIP ALG 呼叫持续时间和媒体非活动超时:

  1. 配置 SIP ALG 通话时间。

  2. 配置 SIP ALG 非活动媒体超时。

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

验证

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

示例:配置 SIP ALG DoS攻击防护

此示例说明了如何配置网络DoS保护功能。

要求

开始之前,请查看用于DoS SIP 呼叫活动的攻击防护功能。请参阅 了解 SIP ALG DoS攻击防护

概述

SIP 代理服务器处理呼叫的能力可以通过重复 SIP 邀请请求(最初被服务器拒绝的请求)受到影响。通过DoS保护功能,您可以配置设备以监控邀请请求和代理服务器对请求的回复。

此示例将配置设备以保护单个 SIP 代理服务器 (1.1.1.3) 免遭已被拒绝的服务的重复邀请请求。数据包被丢弃 5 秒,之后设备将继续从这些来源转发邀请请求。

配置

程序

GUI 快速配置
逐步过程

要配置 SIP ALG DoS保护:

  1. 选择 Configure>Security>ALG

  2. 选择 SIP 选项卡。

  3. 在 启用攻击防护 区域中,单击 选择的服务器 选项。

  4. 在 目标 IP 框中,输入 1.1.1.3 并单击 添加

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

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

逐步过程

要配置 SIP ALG DoS保护:

  1. 配置设备以保护单个 SIP 代理服务器。

    注意:

    SIP ALG 支持 IPv6,以及网络地址转换协议转换 (NAT-PT) 模式和 NAT64 地址转换。

    类型 <estation-ip-address>从 IPv4 地址更改为 IP 前缀,支持所有类型的 IP 地址,并相应地支持一个前缀以允许多个 IP 地址。

  2. 为拒绝超时时间配置设备。

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

验证

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

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

此示例显示了如何允许未知消息类型。

要求

开始之前,请查看设备如何处理未识别的 SIP 消息。请参阅 了解 SIP ALG 未知消息类型

概述

此示例将配置设备以在路由模式和路由模式下在 SIP 信息流NAT未知消息类型。默认情况下,会丢弃未知(不支持)消息。

配置

程序

GUI 快速配置
逐步过程

要允许未知 SIP ALG 消息类型:

  1. 选择 Configure>Security>ALG

  2. 选择 SIP 选项卡。

  3. 选择 应用的 Enable Permit NAT 复选框。

  4. 选择 启用允许 路由 复选框。

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

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

逐步过程

要允许未知 SIP ALG 消息类型:

  1. 将设备配置为在 SIP 信息流中允许未知消息类型。

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

验证

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

示例:为传入 SIP 调用NAT接口源地址

此示例演示如何在公共区域NAT一个源规则,NAT用于传入 SIP 调用。

要求

开始之前,请了解NAT SIP ALG 的运行方式。请参阅 了解 SIP ALG 和 NAT

概述

在两区方案中,将 SIP 代理服务器位于外部区域,您可以通过在公共或外部区域接口上配置源 NAT 规则来将 NAT 用于传入呼叫。

在此例中(请参阅 图 5),phone1位于专用区域中的 ge-0/0/0 接口上,而 phone2 和代理服务器位于公共区域 ge-0/0/2 接口上。您可以在公共接口 ge-0/0/2.0 NAT源规则。

拓扑

图 5 显示了用于NAT SIP 调用的源流量。

图 5:用于NAT SIP 呼叫的源流量 Source NAT for Incoming SIP Calls

此示例创建称为私有和公共区域并将其分配给接口之后,您将配置要用于源规则集NAT地址簿。然后,通过定义NAT sip-phone 的规则集和一项称为 phone1 的规则来配置源数据包,该规则与来自源地址 10.1.1.3/32 的任何数据包匹配。

最后,您创建安全策略以允许在专用区域和公共区域之间所有 SIP 流量。

配置

程序

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

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

要配置公共NAT接口上的源规则:

  1. 配置接口。

  2. 配置区域并将其分配给接口。

  3. 配置地址簿和创建地址。

  4. 配置源规则NAT集。

  5. 支持持续的源NAT转换。

  6. 配置安全策略以允许传出 SIP 信息流。

  7. 配置安全策略以允许传入 SIP 信息流。

结果

在配置模式下,输入 、 和 show interfaces 命令 show security zones 以确认 show security policies 您的 show security nat 配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

验证

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

验证源NAT规则使用

目的

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

行动

在操作模式下,输入 show security nat source rule all 命令。查看"转换命中"字段以检查是否与规则匹配的流量。

意义

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

验证 SIP ALG 状态

目的

验证系统中是否启用了 SIP ALG。

行动

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

意义

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

  • 启用 - 显示启用了 SIP ALG。

  • 禁用 - 显示 SIP ALG 已禁用。

示例:通过为传入的 SIP 呼叫配置源NAT池来降低网络复杂性

此示例演示如何在外部接口上配置源 NAT池来降低网络复杂性,NAT SIP 呼叫的配置。

要求

开始之前,请了解NAT SIP ALG 的运行方式。请参阅 了解 SIP ALG 和 NAT

概述

在两区方案中,将 SIP 代理服务器位于外部或公共区域,您可以通过在公共区域接口上配置 NAT 池来将 NAT 用于传入呼叫。

在此例中(请参阅 图 6),phone1位于专用区域,而 phone2 和代理服务器位于公共区域。您可配置源NAT个池,以执行NAT。您也可创建一个策略,允许从专用区域到公共区域进行 SIP 流量。这使专用区域中的 phone1 可以在公共区域中的代理服务器注册,并且还允许从公共区域到专用区域呼入呼叫。

拓扑

图 6 显示了用于NAT的源流量池。

图 6:用于NAT SIP 呼叫的源流量池 Source NAT Pool for Incoming SIP Calls

此示例按如下方式配置NAT源设备:

  • 将NAT称为 sip-nat-pool 的源控制池定义为包含 1.1.1.20/32 到 1.1.1.40/32 的 IP 地址范围。

  • 创建称为 sip-nat NAT的源规则集,使用规则 sip-r1 匹配从专用区域到公共区域与源 IP 地址 10.1.1.3/24 的数据包。为了匹配数据包,源地址将转换为 sip-nat-pool 中的一个 IP 地址。

  • 为接口 ge-0/0/2.0 上的地址 1.1.1.20/32 至 1.1.1.40/32 配置代理 ARP。这使系统能够响应接口上收到的这些地址的 ARP 请求。

配置

程序

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

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

要配置源NAT呼叫池:

  1. 配置接口。

  2. 配置区域并为其分配接口。

  3. 配置地址簿。

  4. 配置源NAT池。

  5. 使用规则NAT配置源规则集。

  6. 支持永久NAT。

  7. 配置代理 ARP。

  8. 配置安全策略以允许传出 SIP 信息流。

  9. 配置安全策略以允许传入 SIP 信息流。

结果

在配置模式下,输入 、 和 show interfaces 命令 show security zones 以确认 show security nat 您的 show security policies 配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

验证

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

验证源NAT池使用情况

目的

验证是否还有使用来自源 ip 地址NAT流量。

行动

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

意义

字段显示来自源服务器池的 IP 地址没有使用 Translation hits NAT流量。

验证源NAT规则使用

目的

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

行动

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

意义

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

验证 SIP ALG 状态

目的

验证系统中是否启用了 SIP ALG。

行动

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

意义

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

  • •启用 - 显示已启用 SIP ALG。

  • •禁用 - 显示 SIP ALG 已禁用。

验证 SIP ALG 的安全策略

目的

验证是否设置公共NAT与专用区域之间的源电源。

行动

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

意义

示例输出显示,已设置公共NAT与专用区域之间的源数据。

示例:为传入的 SIP NAT静态路由

此示例展示如何配置静态路由NAT映射,允许专用区域中的呼叫者注册到公共区域中的代理服务器。

要求

开始之前,请了解NAT SIP ALG 的工作原理。请参阅 了解 SIP ALG 和 NAT

概述

当 SIP 代理服务器位于外部或公共区域时,您可以在公共接口NAT静态路由,以允许专用区域中的呼叫者向代理服务器注册。

在此例中(请参阅 图 7),phone1位于专用区域中的 ge-0/0/0 接口上,而 phone2 和代理服务器位于公共区域 ge-0/0/2 接口上。您可创建称为传入NAT sip 的静态规则集,其规则称为 phone1 ,用于将公共区域中的数据包与目标地址 1.1.1.3/32 匹配。对于匹配数据包,目标 IP 地址将转换为专用地址 10.1.1.3/32。您还可以为接口 ge-0/0/2.0 上的地址 1.1.1.3/32 创建代理 ARP。这使系统能够响应接口上收到的这些地址的 ARP 请求。最后,您将创建一个称为传入的安全策略,允许从公共区域到专用区域进行 SIP 流量。

注意:

为传入 SIP NAT静态地址时,请确保为专用区域中的每个专用地址配置一个公共地址。

拓扑

图 7 显示用于NAT的静态流量。

图 7:用于NAT的静态流量 Static NAT for Incoming Calls

配置

程序

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

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

要配置静态NAT呼叫的静态地址:

  1. 配置接口。

  2. 创建安全区域。

  3. 将地址分配给安全区域。

  4. 使用规则NAT设置静态规则集。

  5. 配置代理 ARP。

  6. 定义安全策略以允许传入 SIP 信息流。

  7. 定义安全策略以允许传出 SIP 信息流。

结果

在配置模式下,输入 、 和 show interfaces 命令 show security zones 以确认 show security nat 您的 show security policies 配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

验证

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

验证静态NAT配置

目的

验证是否有与静态规则集NAT匹配。

行动

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

意义

字段 Translation hits 显示有与静态规则集NAT匹配。

验证 SIP ALG 状态

目的

验证系统中是否启用了 SIP ALG。

行动

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

意义

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

  • •启用 - 显示已启用 SIP ALG。

  • •禁用 - 显示 SIP ALG 已禁用。

验证 SIP ALG 的安全策略

目的

验证公共区域NAT专用区域之间的静态设置。

行动

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

意义

示例输出显示,已设置公共NAT与专用区域之间的静态路由。

示例:在专用区域中配置 SIP 代理,NAT公共区域中的配置

此示例演示如何在专用区域中配置 SIP 代理服务器,在公共NAT配置静态服务器,以便公共区域中的呼叫者向代理服务器注册。

要求

开始之前,请了解NAT SIP ALG 的工作原理。请参阅 了解 SIP ALG 和 NAT

概述

将 SIP 代理服务器配置为专用NAT接口上的静态服务器,以允许公共区域中的呼叫者向代理服务器注册。

在此例中(请参阅 图 8),phone1和 SIP 代理服务器位于专用区域中的 ge-0/0/0 接口上,而 phone2 位于公共区域 ge-0/0/2 接口上。您可为代理服务器配置静态 NAT 规则,以允许 phone2 注册到代理服务器,然后创建一个称为传出的策略,此策略允许公共区域到专用区域发送 SIP 流量,使公共区域中的呼叫者能够向代理服务器注册。您也可配置从专用区域传入到公共区域的策略,以便允许 phone1 呼出。

拓扑

图 8 显示了在专用区域中配置 SIP 代理,NAT公共区域中的配置。

图 8:在专用区域中配置 SIP 代理,NAT公共区域中的配置 Configuring SIP Proxy in the Private Zone and NAT in a Public Zone

此示例将按如下NAT配置策略:

  • NAT 在 ge-0/0/2 接口上为代理服务器配置静态数据包,其规则集称为传入-sip,规则称为代理,用于将公共区域发来的数据包与目标地址 1.1.1.2/32 匹配。对于匹配数据包,目标 IP 地址将转换为专用地址 10.1.1.5/32。

  • 配置称为 sip-phone 的第二个规则集,其规则称为 phone1 ,NAT到 phone2 的通信接口。

配置

程序

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

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

要配置静态NAT呼叫的静态地址:

  1. 配置接口。

  2. 配置安全区域。

  3. 将地址分配给安全区域。

  4. 为静态路由创建NAT集,然后为其分配规则。

  5. 为 1.1.1.2/32 地址配置 proxy-arp。

  6. 配置第二个规则集并为其分配规则。

  7. 为传出信息流配置安全策略。

  8. 为传入流量配置安全策略。

结果

在配置模式下,输入 、 和 show interfaces 命令 show security zones 以确认 show security nat 您的 show security policies 配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

验证

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

验证静态NAT配置

目的

验证是否有与静态规则集NAT匹配。

行动

在操作模式下,输入 show security nat static rule all 命令。查看"转换命中"字段以检查是否与规则匹配的流量。

意义

字段 Translation hits 显示,有 23 个流量与静态规则NAT匹配。

验证 SIP ALG 状态

目的

验证系统中是否启用了 SIP ALG。

行动

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

意义

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

  • 启用 - 显示启用了 SIP ALG。

  • 禁用 - 显示 SIP ALG 已禁用。

验证源NAT规则

目的

验证源规则NAT配置。

行动

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

意义

字段 Translation hits 显示,有 88 个流量与源规则NAT匹配。

验证安全流会话

目的

验证转换NAT 1 到 phone2。

行动

在操作模式下,输入 run show security flow session 命令。

意义

输出显示将 NAT phone1 转换到 phone2。

示例:配置三区 SIP ALG 和NAT方案

此示例演示如何在专用区域中配置 SIP 代理服务器,在公共NAT配置静态服务器,以便公共区域中的呼叫者向代理服务器注册。

要求

开始之前,请了解NAT SIP ALG 的工作原理。请参阅 了解 SIP ALG 和 NAT

概述

在三区 SIP 配置中,SIP 代理服务器通常位于与呼叫和被呼叫系统不同的区域。此类情景需要其他地址和区域配置以及策略,以确保所有系统能够相互访问和访问代理服务器。

在此例中,phone1 位于专用区的 ge-0/0/0.0 接口上,phone2 位于公共区域中的 ge-0/0/2.0 接口上,而代理服务器位于 停火区 的 ge-0/0/1.0 接口上。您可以在专用NAT中为 phone1 配置静态规则。然后,您可为从专用区域到 停火区、从 停火区 到专用区域、从公共区域到 停火区、从 停火区 到公共区域、从专用区域到公共区域的流量创建策略。图 9 中的箭头显示公共区域中的 PHONE2 在专用区域向 phone1 发送呼叫时 SIP 信令信息流。会话启动后,数据流直接在 phone1 和 phone2 之间流动。

图 9:具有代理的三区 SIP 配置停火区 Three-Zone SIP Configuration with Proxy in the DMZ

此示例将按如下NAT配置策略:

  • 使用规则NAT 1 配置一个称为传入 sip 的静态规则集,以将公共区域中的数据包与目标地址 2.2.2.3/32 匹配。对于匹配数据包,目标 IP 地址将转换为专用地址 10.1.1.3/32。

  • 为接口 ge-0/0/1.0 上的地址 2.2.2.3/32 配置代理 ARP,使系统能够响应此地址接口上收到的 ARP 请求。

  • 使用规则 r1 配置称为 sip-phone 的第二个规则集,NAT从 phone1 到代理服务器以及从 phone1 到 phone2 的通信的接口接口。

配置

程序

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

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

要配置公共区域中的专用区域中的 SIP NAT服务器:

  1. 为静态路由创建NAT集,然后为其分配规则。

  2. 配置接口。

  3. 配置安全区域。

  4. 将地址分配给安全区域。

  5. 配置用于NAT 1 到代理通信的接口接口。

  6. 配置安全策略以允许从区域专用到区域流量停火区。

  7. 配置安全策略以允许从区域公共区域到区域流量停火区。

  8. 配置安全策略以允许从区域专用到区域公共组的流量。

  9. 配置安全策略以允许从区域公共区域到区域专用的流量。

  10. 配置安全策略以允许从区域流量停火区到区域专用流量。

  11. 配置安全策略以允许从区域到停火区公共区域的流量。

结果

在配置模式下,输入 、 和 show interfaces 命令 show security zones 以确认 show security nat 您的 show security policies 配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

验证

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

验证源NAT规则使用

目的

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

行动

在操作模式下,输入 show security nat source rule all 命令。查看"转换命中"字段以检查是否与规则匹配的流量。

意义

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

验证静态NAT规则使用

目的

验证是否有与静态路由规则NAT匹配。

行动

在操作模式下,输入 show security nat static rule all 命令。查看"转换命中"字段以检查是否与规则匹配的流量。

意义

字段 Translation hits 显示的是,与静态规则匹配NAT信息流。

验证 SIP ALG 状态

目的

验证系统中是否启用了 SIP ALG。

行动

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

意义

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

  • 启用 - 显示启用了 SIP ALG。

  • 禁用 - 显示 SIP ALG 已禁用。

版本历史记录表
释放
描述
15.1X49-D40
从 Junos OS 版15.1X49-D40和Junos OS版本17.3R1,还支持"IPv6"地址类型。
12.3X48-D25
从 Junos OS 版本12.3X48-D25开始Junos OS,17.3R1 SIP ALG 支持 TCP。
12.3X48-D15
从 Junos OS 12.3X48-D15 Junos OS 版本17.3R1开始,SIP ALG 在 UDP 协议上支持 65,000 字节 SIP 消息。