Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DNS ALG

域名系统 (DNS) 应用层网关 (ALG) 服务处理与查找域名并将域名转换为 IP 地址相关的数据。ALG 通常在端口 53 上运行。ALG 将监控 DNS 查询和回复数据包,并且仅支持 UDP 流量。

DNS ALG 概述

DNS 应用层网关 (ALG) 服务提供用于 DNS 客户端的应用程序级网关。DNS ALG 服务允许客户端访问不同网络中的多个 DNS 服务器,并提供与这些服务器之间的路由。它还支持 DNS 查询和响应数据包的灵活地址转换。这些功能允许 DNS 客户端从网络客户端上的单个 DNS 服务器实例查询许多不同的域。

DNS 服务器通过 UDP 端口 53 侦听 DNS 解析器中的传入查询。解析器通过发送 DNS 查询和处理 DNS 响应与 DNS 服务器通信。

注意:

DNS ALG 的默认端口为端口 53。

DNS ALG 执行以下功能:

  • 监控 DNS 查询和回复数据包,当收到 DNS 回复时关闭会话

  • 执行 DNS 操作

  • 执行 IPv4 和 IPv6 地址转换

域名系统 (DNS) 最初设计为支持对静态配置数据库的查询,预计数据会发生变化。

除 DNS 标准外,现在还提供动态 DNS (DDNS) 支持。DNS 和 DDNS 之间的主要差别在于标头部分的消息格式和更新消息。

DDNS 消息与 DNS 消息相比,处理方式各不相同。将重写消息解析以用于 DDNS。DDNS 在NAT的NAT-PT 执行操作,DNS 在消息响应部分执行 NAT 和 NAT-PT 操作。

示例:配置 DNS ALG

此示例展示如何配置 DNS ALG,以使用静态路由池NAT DNS 瞻博网络流量。

要求

开始之前:

  • 配置用于NAT IP 地址的静态路由池。

  • 了解 ALG FOR DNS 背后的概念。请参阅 DNS ALG 概述

概述

此示例将 DNS ALG 配置为监控并允许在客户端与位于设备两侧的服务器之间交换 DNS 瞻博网络流量。

此示例展示如何配置静态NAT池和规则集,并将 DNS ALG 与策略关联。

拓扑

图 1 显示了 DNS ALG 拓扑。

图 1:DNS ALG 拓扑 DNS ALG Topology

配置

配置静态NAT池和规则集

CLI快速配置

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

逐步过程

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

要配置静态路由NAT池:

  1. 创建一NAT静态规则集。

  2. 使用策略关联 DNS 应用程序。

结果

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

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

配置和打印 DNS 跟踪

目的

打印 DNS 跟踪文件。

行动

在配置模式下,输入以下命令。

验证

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

验证 DNS ALG

目的

验证 DNS ALG 是否启用。

行动

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

意义

输出显示启用了 DNS ALG。

验证 DNS ALG 安全流会话

目的

验证 ALG 安全信息流会话已启用。

行动

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

意义

输出显示有一个利用 DNS ALG 的活动流。

了解 DNS 和 DDNS 操作

Junos OS支持 AGS 的域名系统 (DNS)。DNS ALG 将监控 DNS 查询并回复数据包,如果 DNS 标志指示数据包为回复消息,则关闭会话。要配置 DNS ALG,请使用 edit security alg dns 层级的 [edit security alg] 语句。

DNS 在路由类内提供名称到地址映射,而 网络地址转换 (NAT) 会尝试在相同路由类的不同地址领域的主机之间提供透明路由。因此,新NAT可能导致 DNG ALG 必须通过称为 DNS 诊断的流程处理 某些 DNS 问题。

相同的诊断功能适用于动态域名系统 (DDNS)。对于动态NAT DDNS,您还可以在 DDNS 更新中执行 IP 转换。

为了解决 NAT 引入的问题,DNS 和 DDNS ALG 功能已扩展以支持静态 NAT,从而允许通过 DNS 诊断解决问题。

注意:

DNS ALG 必须在设备上启用,才能执行 DNS 医生。默认情况下,SRX3400、SRX3600、SRX4600、SRX5600 和 SRX5800 设备上启用 DNS ALG。(平台支持取决于Junos OS的新版本。)

恢复和修复过程分两个部分执行:

  • Packet sanity check

    对于 DNS 数据包,DNS ALG 检查字段是问题、答案、授权和其他信息。如果问题数量超过 1、域名超过 255 字节或标签长度超过 63 个字节,DNS ALG 会丢弃数据包。

    对于 DDNS 数据包,DNS ALG 检查字段是区域、先决条件、更新和其他数据。如果区域数量超过 1、域名超过 255 字节或标签长度超过 63 个字节,DNS ALG 会丢弃数据包。

    对于 DNS 和 DDNS,DNS ALG 会丢弃不符合标准的数据包。

  • NAT

图 2 显示 DNS 如何将专用地址转换为公共地址。

图 2:DNS地址转换(从专用到公共) DNS Address Translation (Private to Public)

如果 external.com 中的主机 X 想要通过 DNS 解析主机 A 的地址,并且 DNS ALG 不支持 NAT,它将采用 172.19.1.10 等专用地址,对主机 X 无效。专用地址通过 DNS ALG 转换为公共地址 131.108.1.10。

图 3 显示 DNS 如何将公共地址转换为专用地址。

图 3:DNS地址转换(公共到私有) DNS Address Translation (Public to Private)

如果 private.com 中的主机 A 想要通过 DNS 解析主机 B 的地址,并且 DNS ALG 不支持 NAT,它从 external.com 中的 DNS 服务器获得公共地址,例如 131.108.1.8。如果主机 A 将流量发送到公共地址为 131.108.1.8 的主机 B,则对专用域中的主机 B 无效。因此,DNS 查询中的公共地址 A-record 通过 DNS ALG 转换为专用地址 172.19.2.1。

注意:

DNS ALG 可在单个 DNS 回复中转换前 32 条 A 记录。不会处理前 32 条记录后的 A 记录。另请注意,DNS ALG 支持 IPv4 和 IPv6 地址,并且不支持 VPN 隧道。

禁用 DNS 和 DDNS 操作

DNS ALG 必须在设备上启用,才能执行 DNS 和 DDNS 博士。在设备上启用 DNS ALG 后,默认情况下会启用 DNS 和 DDNS 操作功能。您可以使用服务更新禁用 DNS 和 DDNS CLI。

要禁用 DNS 和 DDNS 医生:

  1. 指定配置选项,以禁用所有 none 医生功能。

    此命令禁用所有医生功能。

  2. 指定NAT选项,禁用安全检查功能并保留理智 sanity-check 检查功能。

    此选项将禁用 NAT并保留理智检查功能。

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

  4. 要验证配置,请使用 vty 命令 show usp algs dns stats