示例:配置 DNS 侦听
阅读本主题,了解如何在 SRX 系列防火墙上配置 DNS 侦听,以使用 FQDN 和 IP 地址的映射更新 DNS 缓存。
SRX 系列防火墙支持 DNS 侦听功能。DNS 侦听功能提供了一种实时动态检查和缓存 DNS 响应的机制。启用 DNS 侦听后,系统会在流量遍历网络时捕获 DNS 响应数据包,提取相关 DNS 记录,并在本地缓存中构建 FQDN 和 IP 地址的映射。此缓存通过确保与完全限定域名 (FQDN) 关联的 IP 地址保持最新,从而提供准确、及时的 DNS 映射。
| 阅读时间 |
15 分钟 |
| 配置时间 |
30 分钟 |
先决条件示例
表 2 列出了支持该配置的硬件和软件组件。
| 硬件要求 |
SRX 系列防火墙和 vSRX 虚拟防火墙 |
| 软件要求 |
从 Junos OS 25.2R1 版开始,所有 SRX 系列都支持此功能。我们使用 vSRX 实例对此示例进行了测试。 安装并配置应用标识。有关详细信息,请参阅 用于应用程序识别的预定义应用程序签名。 |
功能概述
表 3 简要总结了此示例中部署的配置组件。
| 使用的技术 |
|
| 主要验证任务 |
|
拓扑图示
下图显示了此配置示例中使用的拓扑。
在此示例中,接口 ge-0/0/0 位于信任区域中并连接到客户端设备 (10.1.1.1)。ge-0/0/1 位于非信任区域,通过互联网网关 (10.102.70.245) 连接到 DNS 服务器。您可以在 SRX 系列防火墙上配置 DNS 侦听。
在此示例中,您启用 DNS 侦听并创建具有 FQDN 名称的通讯簿。然后创建安全策略并将地址簿(FQDN 名称)添加为目标地址。当流量与安全策略匹配时,系统会在流量遍历网络时捕获 DNS 响应数据包,提取相关 DNS 记录,并在本地缓存中构建 FQDN 和 IP 地址的映射。此缓存通过确保与 FQDN 关联的 IP 地址始终保持最新来提供 DNS 映射。
拓扑概述
表 4 显示了此示例中使用的配置的详细信息。
| 设备 | 接口 | IP 地址 | 区域 | 配置为 |
|---|---|---|---|---|
| SRX 系列防火墙 | ge-0/0/0.0 |
10.1.1.122/24 |
信任 |
连接到内部客户端设备 (10.1.1.1) |
| ge-0/0/0.1 |
10.102.70.240/24 |
不信任 | 连接到互联网网关 (10.102.70.254) |
配置
要配置 DNS 侦听,请使用以下步骤:
验证
使用此 show 命令验证此示例中的功能。
| 命令 | 验证任务 |
|---|---|
|
|
显示 DNS 侦听计数器详细信息。 |
show services dns-snooping counters |
显示 DNS 侦听缓存信息,以查看与全限定域名 (FQDN) 关联的 IP 地址的映射。 |
检查 DNS 侦听缓存
目的
查看并验证 DNS 侦听缓存的详细信息。
行动
在操作模式下,运行以下命令:
user@host> show services dns-snooping cache DNS-Snooping cache on FPC: master FQDN IP TTL www.google.com 142.251.46.228 242 www.google.com 2607:f8b0:4005:813::2004 275
意义
输出显示 IP 地址和 FQDN 的映射。您还可以在输出中查看生存时间 (TTL) 数据。
检查 DNS 侦听计数器
目的
查看并验证 DNS 侦听计数器的详细信息。
行动
在操作模式下,运行以下命令:
user@host> show services dns-snooping counters
DNS-Snooping counters on FPC:master
Sessions ignored: 213
Sessions interested: 85
Sessions created: 85
Sessions destroyed: 85
Session dns contexts: 94
Cache fqdn inserted: 0
Cache fqdn deleted: 0
Cache ip inserted: 4
Cache ip deleted: 2
Reports Generated: 4
Reports Sent: 4
Memory allocated: 102
Memory allocation failed: 0
Memory freed: 98
Memory free errors: 0
Appid errors: 0
意义
输出显示 DNS 侦听计数器详细信息,包括已处理、分配和可用内存的会话数,以及 AppID 错误(如果有)。
在所有设备上设置命令
在 SRX 系列防火墙上设置命令
set services dns-snooping set security address-book global address addr1 dns-name www.google.com set security policies from-zone trust to-zone untrust policy p1 match source-address any set security policies from-zone trust to-zone untrust policy p1 match destination-address addr1 set security policies from-zone trust to-zone untrust policy p1 match application any set security policies from-zone trust to-zone untrust policy p1 then permit set security policies from-zone trust to-zone untrust policy default-permit match source-address any set security policies from-zone trust to-zone untrust policy default-permit match destination-address any set security policies from-zone trust to-zone untrust policy default-permit match application any set security policies from-zone trust to-zone untrust policy default-permit then permit set security policies from-zone trust to-zone untrust application-services dns-snooping set security policies pre-id-default-policy then log session-close set security zones security-zone trust host-inbound-traffic system-services all set security zones security-zone trust host-inbound-traffic protocols all set security zones security-zone trust interfaces ge-0/0/0.0 set security zones security-zone untrust screen untrust-screen set security zones security-zone untrust host-inbound-traffic system-services all set security zones security-zone untrust host-inbound-traffic protocols all set security zones security-zone untrust interfaces ge-0/0/1.0 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.122/24 set interfaces ge-0/0/1 unit 0 family inet address 10.102.70.240/24
Show Configuration Output
在配置模式下,输入 show 、 和其他详细信息以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
全局地址簿
[edit]
user@host# show security address-book
global {
address addr1 {
dns-name www.google.com;
}
}
服务
[edit] user@host# show services dns-snooping;
安全性策略
[edit]
user@host# show security policies
from-zone trust to-zone untrust {
policy p1 {
match {
source-address any;
destination-address addr1;
application any;
}
then {
permit;
}
}
policy default-permit {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
application-services {
dns-snooping;
}
}
pre-id-default-policy {
then {
log {
session-close;
}
}
}
安全性区域
[edit]
user@host# show security zones
security-zone trust {
tcp-rst;
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
ge-0/0/0.0;
}
}
security-zone untrust {
screen untrust-screen;
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
interfaces {
ge-0/0/1.0;
}
}
接口
[edit]
user@host# show interfaces
ge-0/0/0 {
unit 0 {
family inet {
address 10.1.1.122/24;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 10.102.70.240/24;
}
}
}
}