Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

SQLNET ALG

Oracle SQL 服务器使用 SQLNET 协议从客户端执行 SQL 命令,包括负载平衡和特定于应用程序的服务。对有状态防火墙和 NAT 服务的支持要求您为 TCP 端口 1521 配置 SQLNET ALG。ALG 监控控制数据包,动态打开流量流量,并执行 NAT 地址和端口重写。

了解 SQLNET ALG

SQLNET 应用层网关 (ALG) 处理透明网络基板 (TNS) 重定向数据包,以获取 IP 地址和端口信息。SQLNET ALG 对 TNS 重定向数据包的有效负载执行网络地址转换 (NAT),为从客户端到服务器的新连接打开针孔,并在客户端和位于瞻博网络设备两侧的服务器之间传输数据。

SQLNET ALG 支持以下类型的数据传输模式:

  • 重定向模式 — 连接重定向类型

  • 交错模式 — 连接-接受类型

  • 负载平衡 — 连接-重定向-连接-重定向类型

SQLNET 允许在应用程序和 Oracle 数据库之间或多个 Oracle 数据库之间进行远程数据访问。SQLNET 主要在客户端应用程序与 Oracle 数据库服务器之间建立和维护连接。SQLNET 具有多个通信层,使客户端和数据库服务器能够共享、修改和操作数据。

Oracle SQL 服务器使用 SQLNET 协议从客户端执行 SQL 命令,包括负载平衡和特定于应用程序的服务。SQLNET 协议使用 TNS 作为其网络体系结构,所有 SQLNET 流量都封装为 TNS 数据包格式。

SQLNET ALG 监控控制数据包,为数据流量打开针孔,并执行 NAT 和端口重写。要为 TCP 端口 1521 配置 SQLNET ALG,需要支持有状态防火墙和 NAT 服务。

示例:配置 SQLNET ALG

SQLNET ALG 处理 TNS 重定向数据包,执行 NAT,并为从客户端到服务器的新连接打开针孔。

此示例说明如何在路由或 NAT 模式下配置 SQLNET ALG,允许 SQLNET 流量通过设备,以及在客户端和位于瞻博网络设备两侧的服务器之间传输数据。

要求

此示例使用以下硬件和软件组件:

  • SRX 系列防火墙

  • 两台电脑(客户端和服务器)

准备工作:

概述

在此示例中,首先在设备上配置网络接口。创建安全区域并将接口分配给区域,并配置策略以允许 SQLNET 流量通过 SRX 系列防火墙。

然后,使用与目标地址 40.0.172.10/32 匹配的规则 r1 创建静态 NAT 规则集 rs1,并创建地址为 40.0.172.45/32 的静态 NAT 前缀。

接下来,使用源规则集 src-rs1 创建源 NAT 池 src-p1,以将数据包从接口 fe-3/0/0.0 转换为接口 fe-3/0/1.0。对于匹配的数据包,源地址将转换为 src-p1 池中的 IP 地址。

然后,使用目标规则集 des-rs1 创建目标 NAT 池 des-p1,以将数据包从区域信任转换为目标地址 40.0.172.10/32。对于匹配的数据包,目标地址将转换为 des-p1 池中的 IP 地址。最后,启用 SQLNET ALG 跟踪选项。

拓扑

图 1 显示了 SQLNET ALG 拓扑。

图 1:SQLNET ALG 拓扑 SQLNET ALG Topology

配置

要配置 SQLNET ALG,请执行以下任务:

配置路由模式

CLI 快速配置

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

分步过程

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

要配置路由模式:

  1. 配置接口。

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

  3. 配置允许从信任区域到不信任区域的 SQL 流量的 SQL 策略。

结果

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

为简洁起见,此 show 输出仅包含与此示例相关的配置。系统上的任何其他配置都已替换为省略号 (...)。

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

配置静态 NAT 规则集

CLI 快速配置

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

分步过程

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

要配置静态 NAT 规则集,请执行以下操作:

  1. 创建静态 NAT 规则集。

  2. 定义与目标地址匹配的规则。

  3. 为设备定义静态 NAT 前缀。

结果

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

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

配置源 NAT 池和规则集

CLI 快速配置

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

分步过程

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

要配置源 NAT 池和规则集,请执行以下操作:

  1. 创建源 NAT 池。

  2. 创建源 NAT 规则集。

  3. 配置匹配数据包并将源地址转换为源池中的地址的规则。

  4. 配置匹配数据包并将目标地址转换为源池中的地址的规则。

  5. 在规则中配置源 NAT 池。

结果

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

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

配置目标 NAT 池和规则集

CLI 快速配置

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

分步过程

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

要配置目标 NAT 池和规则集,请执行以下操作:

  1. 创建目标 NAT 池。

  2. 创建目标 NAT 规则集。

  3. 配置匹配数据包并将源地址转换为池中地址的规则。

  4. 配置匹配数据包并将目标地址转换为池中地址的规则。

  5. 在规则中配置源 NAT 池。

结果

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

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

启用 SQLNET ALG

CLI 快速配置
注意:

从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,默认情况下启用 SQLNET 应用层网关。

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

分步过程

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

要启用 SQLNET ALG,请执行以下操作:

  1. 启用 SQLNET ALG。

启用 SQLNET ALG 跟踪选项

CLI 快速配置

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

分步过程

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

要启用 SQLNET ALG 跟踪选项,请执行以下操作:

  1. 启用 SQLNET ALG 跟踪选项。

  2. 配置文件名以接收跟踪操作的输出。

  3. 指定最大跟踪文件大小。

  4. 指定跟踪输出的级别。

结果

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

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

验证

确认配置工作正常。

验证 SQLNET ALG 控制会话

目的

验证是否已执行 SQL 命令,以及是否已创建所有 SQL 控件和数据会话。

行动

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

意义
  • Session ID- 标识会话的编号。使用此 ID 可获取有关会话的更多信息,例如策略名称、传入和传出的数据包数。

  • Policy name- 允许流量的策略名称。

  • In—传入流(源和目标 IP 地址及其各自的源和目标端口号,会话为 TCP,此会话的源接口为 fe-3/0/0.0)。

  • Out—反向流(源和目标 IP 地址及其各自的源和目标端口号,会话为 TCP,此会话的目标接口为 fe-3/0/1.0)。

验证 SQLNET ALG

目的

验证是否启用了 SQLNET ALG。

行动

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

意义

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

  • 已启用 — 显示已启用 SQLNET ALG

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

验证 SQLNET ALG 资源管理器组

目的

验证 SQLNET ALG 使用的资源管理器组和活动组的总数。

行动

在操作模式下,输入 show security resource-manager group active 命令。

验证 SQLNET ALG 资源信息

目的

验证 SQLNET ALG 使用的资源和活动资源的总数。

行动

在操作模式下,输入 show security resource-manager resource active 命令。

版本历史记录表
释放
描述
15.1X49-D10
从 Junos OS 15.1X49-D10 版和 Junos OS 17.3R1 版开始,默认情况下启用 SQLNET 应用层网关。