首页 > 其他分享 >DNS服务Unbound部署于使用

DNS服务Unbound部署于使用

时间:2023-04-20 16:34:49浏览次数:53  
标签:baidu 缓存 unbound 配置文件 部署 com DNS Unbound local

Unbound

官网地址:https://nlnetlabs.nl/projects/unbound/about/

详细文档:https://unbound.docs.nlnetlabs.nl/en/latest/index.html

安装

Centos

yum install -y unbound

ubuntu

apt install unbound -y

管理

unbound-checkconf

检查配置文件

unbound-checkconf /etc/unbound/unbound.conf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

unbound-control

远程管理服务

格式

unbound-control [-h] [-c cfgfile] [-s server] command

  • -h 显示版本和命令行选项帮助。
  • -c <配置文件> 所要使用的配置文件。/usr/local/etc/unbound/unbound.conf如果未给出,则使用默认配置文件 。
  • -s <服务器[@端口]> 要联系的服务器的 IPv4 或 IPv6 地址。如果未给出,则从配置文件中读取地址。

command部分

  • start 使用-c指定的配置文件启动服务,如果没指定,则使用默认配置文件

  • stop 停止服务

  • reload 重新加载配置文件,未指定则重新加载默认配置文件

  • status 显示服务状态。退出代码 3 如果没有运行(端口连接被拒绝),错误为 1,如果运行为 0。

  • reload_keep_cache 重新加载服务器,但如果(重新)配置允许,请尝试保留 RRset 和消息缓存。 这意味着缓存大小和线程数在重新加载之间不得更改。

  • verbosity <number> 设置日志等级,与配置文件中的verbosity字段等同

  • stats 打印统计数据。将内部计数器重置为零,这可以使用 statistics-cumulative: config 语句进行控制。每行打印一个统计信息。[name]: [value]

  • stats_noreset 查看统计数据。像 stats 命令一样打印它们,但不会将内部计数器重置为零。

  • local_zone <name> <type> 添加具有名称和类型的新本地区域。像本地区域配置语句。如果区域已经存在,则类型更改为给定的参数。

  • local_zone_remove <name> 删除具有给定名称的本地区域。删除其中的所有本地数据。如果该区域不存在,则命令成功。

  • local_data <RR data...> 添加新的本地数据,给定的资源记录。类似于local-data:关键字,除非不存在覆盖区域。在这种情况下,此远程控制命令会创建一个与此记录同名的透明区域。

  • local_data_remove <name> 从本地名称中删除所有 RR 数据。如果该名称已经没有项目,则什么也不会发生。通常会导致名称的 NXDOMAIN(在静态区域中),但如果名称已变为空的非终结符(已删除名称下方的域名中仍有数据),则 NOERROR 无数据答案是该名称的结果。

  • local_zones, local_zones_remove, local_datas, local_datas_remove 这些跟上面的相同,只是批量添加,从标准输入中读取 每行一条

  • dump_cache 缓存的内容以文本格式打印到标准输出。您可以将其重定向到文件以将缓存存储在文件中。

  • load_cache 缓存的内容是从标准输入加载的。使用与 dump_cache 相同的格式。用旧的或错误的数据加载缓存可能会导致将旧的或错误的数据返回给客户端。支持以这种方式将数据加载到缓存中以帮助调试。

  • lookup <name> 将用于查找指定名称的名称服务器打印到标准输出。

  • flush <name> 刷新缓存,从缓存中删除名称。删除类型 A、AAAA、NS、SOA、CNAME、DNAME、MX、PTR、SRV、NAPTR、SVCB 和 HTTPS。因为这样做很快。可以使用flush_typeflush_zone删除其他记录类型。

  • flush_type <name> <type> 从缓存中删除名称、类型信息。

  • flush_zone <name> 从缓存中删除名称处或名称下方的所有信息。删除 rrsets 和键条目,以便执行新的查找。这需要遍历和检查整个缓存,并且是一个缓慢的操作。条目在该命令的实现中被设置为过期(因此,启用服务过期后,它将提供该信息但安排预取新信息)。

  • flush_stats 缓存计数清零

  • flush_requestlist 刷新请求列表

  • dump_requestlist 显示正在处理的内容。打印服务器当前正在处理的所有查询。打印用户等待的时间。对于内部请求,不会打印时间。然后打印出模块状态。这将打印来自第一个线程的查询,而不是正在从其他线程提供服务的查询。

  • flush_infra [all | ip] 如果是all,则整个基础设施缓存被清空。如果是特定 IP 地址,则该地址的条目将从缓存中删除。它包含 EDNS、ping 和跛行数据。

  • list_stubs 列出正在使用的根区域。这些被一一打印到输出中。这包括正在使用的根提示。

  • list_forwards 列出正在使用转发的区域。这些按区域打印到输出。

  • list_insecure 列出不安全的区域。

  • list_local_zones 列出正在使用的本地区域。这些以区域类型每行打印一个。

  • list_local_data 列出正在使用的本地数据 RR。打印资源记录。

  • list_auth_zones 列出配置的授权区域。每行打印一个状态,指示区域是否过期和当前序列号。包括已配置的 RPZ 区域。

  • forward_add [+i] zone addr.. 添加一个新的前向区域以运行 Unbound。With+i选项还为该区域添加了一个不安全的域(因此如果您为其他名称配置了 DNSSEC 根信任锚,它可以不安全地解析)。地址可以是 IP4、IP6 或名称服务器名称,如 unbound.conf 中的 forward-zone 配置。

  • forward [off | addr ...] 设置转发模式。配置服务器是否应该询问其他上游名称服务器,应该去互联网根名称服务器本身,还是显示当前配置。您可以在 DHCP 更新后传递名称服务器。

    如果没有参数,则打印用于将所有查询转发到的当前地址列表。在启动时,这是来自前向区"."配置。之后它显示状态。当没有使用转发时,它会打印出来。

    如果传递了 off,则禁用转发并使用根名称服务器。这可用于避免错误或非 DNSSEC 支持从 DHCP 返回的名称服务器。但可能不适用于酒店或热点。

    如果给出了一个或多个 IPv4 或 IPv6 地址,则这些地址将用于转发查询。地址必须用空格分隔。可以显'@port'式设置端口号(默认端口为 53 (DNS))。

    "."默认情况下,使用根配置文件中的转发器信息 。配置文件未更改,因此重新加载后这些更改将消失。配置文件中的其他转发区域不受此命令的影响

配置

配置的格式是以键值对的形式配置

注释以 # 开头,一直到行尾。 空行和行首的空格一样被忽略。

下面是一个最小的配置文件。源代码分发包含一个example.conf包含所有选项的扩展文件。

# unbound.conf(5) config file for unbound(8).
server:
directory: "/etc/unbound"
username: unbound
# make sure unbound can access entropy from inside the chroot.
# e.g. on linux the use these commands (on BSD, devfs(8) is used):
#      mount --bind -n /dev/urandom /etc/unbound/dev/urandom
# and  mount --bind -n /dev/log /etc/unbound/dev/log
chroot: "/etc/unbound"
# logfile: "/etc/unbound/unbound.log"  #uncomment to use logfile.
pidfile: "/etc/unbound/unbound.pid"
# verbosity: 1      # uncomment and increase to get more logging.
# listen on all interfaces, answer queries from the local subnet.
interface: 0.0.0.0
interface: ::0
access-control: 10.0.0.0/8 allow
access-control: 2001:DB8::/64 allow

可以使用include:来导入配置文件,也可以使用通配符

配置范例

server:
   # 设置监听所有本地网络地址
   interface: 0.0.0.0
   # 限制只允许哪些地址可以使用该DNS服务
   access-control: 127.0.0.0/8 allow       # 允许本地访问
   access-control: 0.0.0.0/0 allow # 允许指定网段访问
   module-config: "iterator"       # 禁用DNSSEC的校验功能, 否则后面的转发会失败
   #log-identity: "hxg"  #设置日志的标识符
   #use-syslog: no # 关闭系统级的日志输出, 使用journalctl就看不到了
   log-queries: yes        # 日志中记录详细的查询记录
   #log-replies: yes      #记录结果
   verbosity: 2    # 日志记录的详细程度, 0代表不记录详细信息, 范围1-5越高越啰嗦
   
   #解析baidu.com 域名
   local-zone: "baidu.com" static
   local-data: "baidu.com. 86400 IN SOA ns1.baidu.com. root 1 1D 1H 1W 1D"
   #local-data: "baidu.com. NS ns1.baidu.com"
   local-data: "ns1.baidu.com. A 10.0.0.101"
   local-data: "www.baidu.com. A 3.3.3.3"
   local-data: "www.baidu.com. A 4.4.4.4"
   
   
   #反向解析  域名后面不用带.
   local-data-ptr: "10.0.0.101 ns1.baidu.com"

转发配置

转发的意思是:能本地解析的就本地解析,不能本地解析的就转发到目标服务器

forward-zone:
        name: .
        forward-first: yes
        forward-addr: 114.114.114.114
        forward-addr: 8.8.8.8

测试

dig www.baidu.com @10.0.0.101

; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3015
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		3600	IN	A	4.4.4.4
www.baidu.com.		3600	IN	A	3.3.3.3

;; Query time: 0 msec
;; SERVER: 10.0.0.101#53(10.0.0.101) (UDP)
;; WHEN: Thu Apr 20 08:26:04 UTC 2023
;; MSG SIZE  rcvd: 74

标签:baidu,缓存,unbound,配置文件,部署,com,DNS,Unbound,local
From: https://www.cnblogs.com/guangdelw/p/17337301.html

相关文章

  • CentOS7 云服务器搭建及部署SpringBoot+vue项目
    CentOS7云服务器搭建及部署SpringBoot+vue项目1)云服务器配置以及环境搭建1.1JDK安装卸载现有环境(有则卸载)使用rpm命令查询相关java套件rpm-qa|grepjava如果存在,通过命令删除对应版本的JDKrpm-e--nodepsjava-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64rpm-e......
  • Kubuesphere部署Ruoyi(三):持久化存储配置
    按照如下教程配置NFS先服务器:https://kubesphere.io/zh/docs/v3.3/reference/storage-system-installation/nfs-server/后客户端:https://kubesphere.io/zh/docs/v3.3/installing-on-linux/persistent-storage-configurations/install-nfs-client/按照链接操作以后,在客户端上......
  • Ubuntu部署FastApi项目
    环境介绍系统:Ubuntu22.04Pyhton版本:3.8.10Fastapi版本:0.95.0Gunicorn版本:20.1.0准备工作1.ssh连接工具(本例使用基于Windows的Linux子系统中的ssh工具)2.配置nginx代理服务器3.配置GunicornWSGIHTTP服务器一、SSH连接Ubuntu服务器sshusername@hostusername......
  • obd自动化部署单副本集群
    1.环境介绍centos7.6可用内存不少于8G根目录可用空间不少于30G 2.介绍obd针对不同部署场景提供不同配置文件谷歌浏览器:https://github.com/oceanbase/obdeploy/tree/master/examplemini-single-example.yaml:observer单节点配置文件(最小资源配置)mini-single-with-ob......
  • k8s deployment资源部署java以及skywalking agent示例
    catdeploy.ymlapiVersion:apps/v1kind:Deploymentmetadata:name:app-namenamespace:your-namespaceannotations:kubernetes.io/change-cause:2.11.0-SNAPSHOT-20230420-46#版本说明-用于回滚等labels:app:app-namespec:replicas:1sel......
  • apisix网关安装部署文档
    apisix网关安装部署文档1. apisix网关简介及官方文档apisix简介:Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以使......
  • 部署kubernetes-dashboard顺便搞懂kubernetes中的ServiceAccount和RBAC
    "种草"kubernetes-dashboard安装部署dashboard创建用于登录面板的ServiceAccount权限控制"种草"kubernetes-dashboardKubernetesDashboard是通用的用于管理Kubernetes集群的WebUI面板kubernetes-dashboard代码库readme中对自己的介绍:KubernetesDashboardi......
  • vue项目部署后 nginx配置重定向 大文件报错问题
      删除Nginx缓存文件试试?#rm-rf/usr/local/nginx/proxy_temp  注意proxy_busy_buffers_size是proxy_buffers的两倍,proxy_temp_file_write_size也要比proxy_buffers大。  ......
  • javasec(五)URLDNS反序列化分析
    这篇文章介绍URLDNS就是ysoserial中⼀个利⽤链的名字,但准确来说,这个其实不能称作“利⽤链”。因为其参数不是⼀个可以“利⽤”的命令,⽽仅为⼀个URL,其能触发的结果也不是命令执⾏,⽽是⼀次DNS请求。ysoserial打包成jar命令mvncleanpackage-DskipTests,刚刚入门所以用这条链作......
  • Kubuesphere部署Ruoyi(二):部署kubesphere
    先决条件:更换DNS更换apt的镜像源Ubuntu下永久性修改DNSvi/etc/systemd/resolved.confDNS字段取消注释,并修改DNS为223.5.5.5223.5.5.5是一个IP地址,是AlibabaCloud提供的免费DNS服务器的IP地址。修改后保存。systemctlrestartsystemd-resolved清华镜像源https://m......