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 之间的主要区别在于标头部分的消息格式和更新消息。

与 DNS 消息相比,DDNS 消息的处理方式不同。消息解析为 DDNS 重写。DDNS 在消息的查询部分中执行 NAT 和 NAT-PT,DNS 在消息的响应部分执行 NAT 和 NAT-PT。

示例:配置 DNS ALG

此示例说明如何配置 DNS ALG,以使用瞻博网络设备上的静态 NAT 池通过 DNS 流量。

要求

开始之前:

  • 为所有 IP 地址配置静态 NAT 池。

  • 了解 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 支持用于 ALG 的域名系统 (DNS)。如果 DNS 标志指示数据包是回复消息,则 DNS ALG 会监控 DNS 查询和回复数据包,并关闭会话。要配置 DNS ALG,请在 edit security alg dns 层级使用语句 [edit security alg]

DNS 在路由类中提供名称到地址的映射,而网络地址转换 (NAT) 则尝试在同一路由类不同地址域内的主机之间提供透明路由。因此,NAT 可能会引发一些 DNS 问题,DNG ALG 必须通过称为 DNS 修正的过程来处理。

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

为了解决 NAT 引发的问题,DNS 和 DDNS ALG 功能已得到扩展,以支持静态 NAT,从而可以通过 DNS 修复解决问题。

注意:

必须在设备上启用 DNS ALG,才能执行 DNS 诊断。在 SRX3400、SRX3600、SRX4600、SRX5600 和 SRX5800 设备上启用 DNS ALG 后,DNS 博士默认处于启用状态。(平台是否支持取决于安装中的 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 转换为公共地址 10,131.108.10。

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

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

当 private.com 中的主机 A 希望通过 DNS 解析主机 B 的地址时,如果 DNS ALG 不支持 NAT,它会从 external.com DNS 服务器获取一个公共地址,例如 10.131.108.8。如果主机 A 将流量发送至公共地址为 10.131.108.8 的主机 B,这对专用域中的主机 B 无效。因此,DNS 查询 A-记录中的公共地址将通过 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 医生功能默认处于启用状态。您可以使用 CLI 禁用 DNS 和 DDNS 诊断。

要禁用 DNS 和 DDNS 诊断:

  1. 通过指定 none 配置选项禁用所有诊断功能。

    此命令将禁用所有诊断功能。

  2. 禁用 NAT 功能,并通过指定 sanity-check 配置选项保留健全性检查功能。

    此选项将禁用 NAT 功能并保留健全性检查功能。

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

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