我承认爱情是空幻的,只有情感才是真实的,是情感在促使我们去追求,使我们产生爱情的真正的美 —-卢梭《爱弥儿》
写在前面
分享一些通过 Bind9
配置DNS
服务器的笔记
博文内容涉及 一个基本的 DNS 权威服务器
配置流程
理解不足小伙伴帮忙指正
我承认爱情是空幻的,只有情感才是真实的,是情感在促使我们去追求,使我们产生爱情的真正的美 —-卢梭《爱弥儿》
DNS 部署 在 DNS
系统中,权威 DNS 用于存储 DNS 资源记录
,并为其管理的区域
提供权威答案
。
BIND9 (Berkeley Internet Name Domain)
可以实现权威的 DNS 服务器。BIND
允许将 权威服务器
配置为 zone
的 主要
服务器或辅助
服务器
官网地址: http://www.isc.org/bind/
在 DNS 系统中,zone
有且只能有一台主
服务器,但可具有多台辅助
服务器。辅助服务器定期从主服务器下载区域信息的最新版本。它们执行区域传输的频率
以及如何知道其数据是否过时
由区域的SOA资源记录
控制。
SOA 资源记录,也叫做起始授权机构记录
,提供有关 DNS 区域如何运行的信息。每个区域必须有一个 SOA 记录 。
1 2 3 4 5 6 example.com. 86400 IN SOA classroom.example.com. root.classroom.example.com. 2015071700 3600 300 604800 60
MNAME | classroom.example.com.
: 该 DNS 服务器是这个区域
的主要 DNS 服务器
负责维护区域资源记录。
RNAME | root.classroom.example.co :该区域中负责人邮件地址,(@用.代替,例如root@classroom.example.com .
SERIAL | 2015071700 :该区域版本号,随着区域中记录更改而增加。
REFRESH | 3600 : 从 DNS 服务器向主 DNS 服务器更新数据频.单位秒。
RETRY | 300 : 在重试失败的刷新前,应当等待的时间间隔。单位秒。
EXPIRE | 604800 : 如果刷新失败,从服务器在停止其旧的区域副本响应查询之前等待的时间。单位秒。
MINIMUM:| 60 :如果解析器查找某个名称,并且该名称不存在,解析器应将“记录不存在”这一信息缓存的时间。单位秒。
部署 Bind9 权威服务器 基本步骤
安装 bind
软件
修改配置文件 /etc/named.conf
启用并启动服务 named.service
开通防火墙 dns
虽然名字叫 bind
,但主要服务,以及配置文件都是 叫 named
bind9 安装
简单看一下服务文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [Unit] Description=Berkeley Internet Name Domain (DNS) Wants=nss-lookup.target Wants=named-setup-rndc.service Before=nss-lookup.target After=named-setup-rndc.service After=network.target [Service] Type=forking Environment=NAMEDCONF=/etc/named.conf EnvironmentFile=-/etc/sysconfig/named Environment=KRB5_KTNAME=/etc/named.keytab PIDFile=/run/named/named.pid ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi' ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS ExecReload=/bin/sh -c '/usr/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID' ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID' PrivateTmp=true [Install] WantedBy=multi-user.target ~
配置 named
主要配置文件是 /etc/named.conf
,该文件控制 BIND
的基本操作,由 root
用户和 named
组拥有,具有权限 0640
,并且具有named_conf_t
SELinux类型。
配置DNS服务器需要执行以下步骤:
配置地址匹配列表
配置 named
侦听的IP地址
配置 客户端 的访问控制
配置 zone(区域)
编写 区域
文件
默认配置:
将服务配置为基本的递归缓存名称服务器
侦听IPv4和IPV6
环回接口的端口 53 UDP/TCP(127.0.0.1和::1)
上的连接。
每个区域的配置文件保存在 /var/named
中。
1 [student@serverb ~]$ man named.conf
定义地址匹配列表 使用 acl
指令定义地址匹配列表。acl
指令不是用于控制客户端对服务器的访问,而是使用它们来定义IP地址和网络列表。
条目可以是完整的IP地址或网络
,用尾点(192.168.0.)
或CIDR
表示法(192.168.0/24)
,也可以使用先前定义的地址匹配列表的名称。acl语句定义的地址集可以被多个指令引用。
可以单纯的理解为 acl 别名, 示例:
1 2 3 acl trusted { 172.25.250.11; 192.168.0.11; }; acl internal { 172.25.250.0/24; }; acl classroom { 192.168.0.0/24; trusted; };
named
中内置了四个ACL
:
ACL: Description
none :Matches no hosts.
any :Matches all hosts.
localhost :Matches all IP addresses of the DNS server.
localnets :Matches all hosts from the DNS server’s local subnets.
配置客户端的访问控制 options
块中使用以下三个指令配置控制访问:
allow-query
,控制所有查询
默认情况下,allow-query
设置为 localhost
。对于公开权威服务器
必须定义为allow-query{any;};
允许任意客户端查询。
1 allow-query{localhost;172.25.250.254;192.168.0.0/24;};
allow-recursion
,控制递归查询
权威服务器不应允许
递归查询,防止服务器被用于DNS放大分布式拒绝服务攻击
,并更好地保护其免受缓存中毒攻击。配置此功能最简单的方法是完全关闭递归:recursion no
;如果必须允许受信任的客户端执行递归,则可以打开递归并为这些特定主机或网络设置:
1 allow-recursion{trusted-nets;};
allow-transfer
,控制区域转移
区域转移允许客户端获取您 区域中所有数据的转储
。区域转移应该受到限制,以使潜在的攻击者更难执行一个DNS查询来快速获取您区域中的所有资源记录。
主服务器必须配置允许转移
,以允许您的从服务器
执行区域转移。您应该禁止其他主机执行区域传输。您可能允许localhost
执行区域传输以帮助进行故障排除。
1 2 3 4 5 6 zone "example.com" { type master; file "/etc/bind/zones/db.example.com" ; allow-transfer { 192.168.1.1; }; };
配置 zone 默认的 zone
文件
1 2 3 4 [root@serverb named] data named.ca named.localhost slaves dynamic named.empty named.loopback [root@serverb named]
根域服务器的 zone
文件
在 DNS 中,.
表示根域名(root domain),它是所有其他域名的顶级域名。根域名由一组根 DNS 服务器维护,这些服务器存储了所有顶级域名的 DNS 服务器地址。当一个 DNS 客户端需要解析一个域名时,它会向根 DNS 服务器发出查询请求,以获取该域名的顶级域名的 DNS 服务器地址。
1 2 3 4 zone "." IN { type hint; file "named.ca" ; };
type hint
表示该区域是一个提示(hint)区域,它包含了其他 DNS 服务器的地址信息
对应配置文件中 directory "/var/named";
中对应的文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [root@serverb named]# cat named.ca ; <<>> DiG 9.11.3-RedHat-9.11.3-3.fc27 <<>> +bufsize=1200 +norec @a.root-servers.net ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46900 ;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1472 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 518400 IN NS a.root-servers.net. . 518400 IN NS b.root-servers.net. . 518400 IN NS c.root-servers.net. . 518400 IN NS d.root-servers.net. ....... . 518400 IN NS m.root-servers.net. ;; ADDITIONAL SECTION: a.root-servers.net. 518400 IN A 198.41.0.4 b.root-servers.net. 518400 IN A 199.9.14.201 c.root-servers.net. 518400 IN A 192.33.4.12 d.root-servers.net. 518400 IN A 199.7.91.13 ....... m.root-servers.net. 518400 IN A 202.12.27.33 a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30 b.root-servers.net. 518400 IN AAAA 2001:500:200::b c.root-servers.net. 518400 IN AAAA 2001:500:2::c d.root-servers.net. 518400 IN AAAA 2001:500:2d::d e.root-servers.net. 518400 IN AAAA 2001:500:a8::e f.root-servers.net. 518400 IN AAAA 2001:500:2f::f ......... m.root-servers.net. 518400 IN AAAA 2001:dc3::35 ;; Query time: 24 msec ;; SERVER: 198.41.0.4#53(198.41.0.4) ;; WHEN: Thu Apr 05 15:57:34 CEST 2018 ;; MSG SIZE rcvd: 811 [root@serverb named]#
主根域名服务器是 DNS 系统中最高层次的服务器,它们存储着所有顶级域名的 DNS 服务器地址信息。目前,主根域名服务器共有 13 台,它们分别由不同的组织和机构管理,位于世界各地。这些主根域名服务器的名称分别为 a.root-servers.net 到 m.root-servers.net
。
在配置文件中,我们可以看到其他的 zone 文件通过引入的方式实现
1 2 3 include "/etc/named.rfc1912.zones" ; include "/etc/named.root.key" ;
查看 zone
文件信息 "/etc/named.rfc1912.zones";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [root@serverb named] // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind */sample/ for example named configuration files. // // 当前 zone 的为master 服务器,解析由文件 named.localhost 决定 zone "localhost.localdomain" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost" ; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback" ; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty" ; allow-update { none; }; }; [root@serverb named]
zone
解释
zone "localhost.localdomain":
该区域的名称是 localhost.localdomain
,
类型是 master,
使用文件 named.localhost 来存储该区域的数据
该区域不允许更新(allow-update { none; })
zone "1.0.0.127.in-addr.arpa":
该区域的名称是 1.0.0.127.in-addr.arpa
,
类型是 master,使用文件 named.loopback 来存储该区域的数据。
该区域不允许更新(allow-update { none; })。
具体区域数据文件
1 2 3 4 5 6 7 8 9 10 11 12 [root@serverb named]# cat named.localhost $TTL 1D @ IN SOA @ rname.invalid. ( ;@ 是一个特殊的符号,表示当前域名本身 0 ; serial,序列号 1D ; refresh,刷新时间 1H ; retry,重试时间 1W ; expire,过期时间 3H ) ; minimum,最小时间间隔 NS @ ; name server,域名服务器 A 127.0.0.1 ; IPv4 地址 AAAA ::1 ; IPv6 地址 [root@serverb named]#
数据文件包括:
SOA 记录:DNS 区域如何运行的信息
NS 记录: 每个权威 DNS 服务器都必须有其 NS 记录,将域名映射到 DNS 服务器或者权威DNS
A 记录 :IPV4 正向解析
AAAA 记录:ipv6 正向解析
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@serverb named]# cat named.loopback $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 PTR localhost. [root@serverb named]#
除了上面的配置,多了一条 PTR localhost.
,用于 IP 地址 到 域名的反向解析
防火墙放行 配置完对应的 zone
文件,启动 named 之前需要放行防火墙相关配置,然后设置开机自启
1 2 3 4 5 [root@serverb ~] success [root@serverb ~] success [root@serverb ~]
默认配置文件说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 [root@serverb ~] // named.conf // 这是一个 DNS 服务器配置文件,用于配置 ISC BIND named(8) DNS 服务器作为一个只提供缓存服务的本地 DNS 解析器。 // 定义一个名为 trusted 的 ACL,包含两个 IP 地址,用于限制可以访问 DNS 服务器的 IP 地址。 acl trusted { 172.25.250.11; 192.168.0.11; }; // 定义一个名为 internal 的 ACL,包含一个 IP 地址段,用于限制可以访问 DNS 服务器的 IP 地址。 acl internal { 172.25.250.0/24; }; // 定义一个名为 classroom 的 ACL,包含一个 IP 地址段和一个名为 trusted 的 ACL,用于限制可以访问 DNS 服务器的 IP 地址。 acl classroom { 192.168.0.0/24; trusted; }; // 配置选项 options { // 监听任意 IPv4 地址的 53 端口 listen-on port 53 { any; }; // 监听任意 IPv6 地址的 53 端口 listen-on-v6 port 53 { any; }; // 指定 DNS 数据文件的存储目录 directory "/var/named" ; // 指定缓存文件的存储路径 dump-file "/var/named/data/cache_dump.db" ; // 指定统计信息文件的存储路径 statistics-file "/var/named/data/named_stats.txt" ; // 指定内存统计信息文件的存储路径 memstatistics-file "/var/named/data/named_mem_stats.txt" ; // 指定 DNSSEC 安全根密钥文件的存储路径 secroots-file "/var/named/data/named.secroots" ; // 指定递归查询缓存文件的存储路径 recursing-file "/var/named/data/named.recursing" ; // 允许查询 DNS 数据的客户端 IP 地址 allow-query { localhost; classroom; }; /* - 如果你正在构建一个权威 DNS 服务器,请不要启用递归查询。 - 如果你正在构建一个递归查询(缓存)DNS 服务器,请启用递归查询。 - 如果你的递归 DNS 服务器有一个公共 IP 地址,你必须启用访问控制,以限制查询到合法的用户。如果不这样做,你的服务器将成为大规模 DNS 放大攻击的一部分。在你的网络中实施 BCP38 将大大减少这种攻击面。 */ // 禁止递归查询 recursion no; // 启用 DNSSEC 安全根密钥验证 dnssec-enable yes; // 启用 DNSSEC 数据验证 dnssec-validation yes; // 指定动态密钥的存储目录 managed-keys-directory "/var/named/dynamic" ; // 指定 PID 文件的存储路径 pid-file "/run/named/named.pid" ; // 指定会话密钥文件的存储路径 session-keyfile "/run/named/session.key" ; /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */ // 包含加密策略配置文件 include "/etc/crypto-policies/back-ends/bind.config" ; }; // 配置日志记录 logging { // 定义一个名为 default_debug 的日志通道,将日志输出到 data/named.run 文件中 channel default_debug { file "data/named.run" ; // 日志级别为动态调整 severity dynamic; }; }; // 配置根域名服务器 zone "." IN { // 指定该区域为“提示”类型,即提示 DNS 服务器根域名服务器的 IP 地址 type hint; // 指定根域名服务器的数据文件 file "named.ca" ; }; // 包含 RFC1912 中定义的标准 DNS 区域文件配置 include "/etc/named.rfc1912.zones" ; // 包含根域名服务器的公钥 include "/etc/named.root.key" ; [root@serverb ~]
测试 使用 dig
命令在 serverb
上查询 localhost.localdomain
的 DNS
解析结果。
其中 @172.25.250.11
表示使用 IP 地址为 172.25.250.11
的 DNS 服务器进行查询,输出信息中的
status: REFUSED
表示查询被拒绝,
WARNING: recursion requested but not available
表示递归查询不可用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [student@servera ~]$ dig @serverb localhost.localdomain @172.25.250.11 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> @serverb localhost.localdomain @172.25.250.11 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 56767 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: f08d1204f74faabe21d039db63f384b8068d2e4c06fc6f50 (good) ;; QUESTION SECTION: ;localhost.localdomain. IN A ;; Query time: 0 msec ;; SERVER: 172.25.250.11#53(172.25.250.11) ;; WHEN: Mon Feb 20 22:33:28 CST 2023 ;; MSG SIZE rcvd: 78
在 servera
上使用 dig
命令查询 localhost.localdomain
的 DNS 解析结果。
其中 @192.168.0.11
表示使用 IP 地址为 192.168.0.11 的 DNS 服务器进行查询。输出信息中的
status: NOERROR 表示查询成功
flags: qr aa rd 表示查询是一个回答(answer)查询,使用了授权(authoritative)回答和递归(recursion desired)查询。
ANSWER SECTION 中的 127.0.0.1 表示 localhost.localdomain 的 IP 地址为 127.0.0.1。
AUTHORITY SECTION 中的 localhost.localdomain. 表示 localhost.localdomain 的授权 DNS 服务器为本地主机。
ADDITIONAL SECTION 中的 ::1 表示 localhost.localdomain 的 IPv6 地址为 ::1。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [student@servera ~]$ dig localhost.localdomain @192.168.0.11 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> localhost.localdomain @192.168.0.11 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65182 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: efa0893e5d57752d3c67034563f388fb9f496bfc771dadb4 (good) ;; QUESTION SECTION: ;localhost.localdomain. IN A ;; ANSWER SECTION: localhost.localdomain. 86400 IN A 127.0.0.1 ;; AUTHORITY SECTION: localhost.localdomain. 86400 IN NS localhost.localdomain. ;; ADDITIONAL SECTION: localhost.localdomain. 86400 IN AAAA ::1 ;; Query time: 9 msec ;; SERVER: 192.168.0.11#53(192.168.0.11) ;; WHEN: Mon Feb 20 22:51:39 CST 2023 ;; MSG SIZE rcvd: 136 [student@servera ~]$
实战 当前权威服务器添加一个 zone 我们希望配置下面的一个 zone
到当前权威名称服务器
下面为 zone
相关的配置
1 2 3 4 5 zone "blog.liruilong.com" IN { type master; file "blog.liruilong.com.zone" ; forwarders {}; };
添加完,需要检测配置文件是否正确
然后我们编写对应的 zone 数据文件,赋予相关权限,编写完检测 数据文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@serverb ~] [root@serverb ~] [root@serverb ~] zone blog.liruilong.com/IN: has no NS records zone blog.liruilong.com/IN: not loaded due to errors. [root@serverb ~] $TTL 300@ IN SOA serverb.lab.example.com. dnslab.example.com. ( 2023072900 ; serial 1H ; refresh 5M ; retry 1W ; expire 1M ) ; minimum 600 IN NS serverb. serverb IN A 192.168.0.11 servera IN A 192.168.0.10
这里发现有两个报错,提示 NS
记录配置的有问题,修改完配置,重新启动,每个 zone 需要一个 NS 记录,将域名映射到 DNS 服务器或者权威DNS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@serverb ~] [root@serverb ~] zone blog.liruilong.com/IN: loaded serial 2023072900 OK [root@serverb ~] $TTL 300@ IN SOA serverb.blog.liruilong.com. dnslab.example.com. ( 2023072900 ; serial 1H ; refresh 5M ; retry 1W ; expire 1M ) ; minimum 600 IN NS serverb.blog.liruilong.com. serverb IN A 192.168.0.11 servera IN A 192.168.0.10 [root@serverb ~]
使用 dig 命令测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [root@serverb ~] ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> servera.blog.liruilong.com. @serverb ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28751 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: d8a667097d1cbf82e34d02ab64c647d0333415b139a9ef0d (good) ;; QUESTION SECTION: ;servera.blog.liruilong.com. IN A ;; ANSWER SECTION: servera.blog.liruilong.com. 300 IN A 192.168.0.10 ;; AUTHORITY SECTION: blog.liruilong.com. 600 IN NS serverb.blog.liruilong.com. ;; ADDITIONAL SECTION: serverb.blog.liruilong.com. 300 IN A 192.168.0.11 ;; Query time: 0 msec ;; SERVER: 172.25.250.11#53(172.25.250.11) ;; WHEN: Sun Jul 30 19:21:52 CST 2023 ;; MSG SIZE rcvd: 137 [root@serverb ~]#
配置 DNS ipv4 正向反向解析 在serverb
配置主 DNS:
配置正向解析servera
,serverc
地址分别为172.25.250.10
, 172.25.250.12
配置反向解析servera
,serverc
正向解析 1 2 3 4 5 zone "blog.liruilong.com" IN { type master; file "blog.liruilong.com.zone" ; forwarders {}; };
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@serverb ~] $TTL 300@ IN SOA serverb.blog.liruilong.com. dnslab.example.com. ( 2023072900 ; serial 1H ; refresh 5M ; retry 1W ; expire 1M ) ; minimum 600 IN NS serverb.blog.liruilong.com. serverb IN A 172.25.250.11 serverc IN A 172.25.250.12 servera IN A 172.25.250.10 [root@serverb ~]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 [root@serverb ~] [root@serverb ~] zone blog.liruilong.com.zone/IN: loaded serial 2023072900 OK [root@serverb ~] [root@serverb ~] ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> serverc.blog.liruilong.com. @serverb ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9608 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 196c643e805924a3ea772e3264c649cef6a873b5c3803907 (good) ;; QUESTION SECTION: ;serverc.blog.liruilong.com. IN A ;; ANSWER SECTION: serverc.blog.liruilong.com. 300 IN A 172.25.250.12 ;; AUTHORITY SECTION: blog.liruilong.com. 600 IN NS serverb.blog.liruilong.com. ;; ADDITIONAL SECTION: serverb.blog.liruilong.com. 300 IN A 172.25.250.11 ;; Query time: 0 msec ;; SERVER: 172.25.250.11#53(172.25.250.11) ;; WHEN: Sun Jul 30 19:30:22 CST 2023 ;; MSG SIZE rcvd: 137
解析测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [root@serverb ~] ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> servera.blog.liruilong.com. @172.25.250.11 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37549 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7e67c9a9f9d30b3df695a33864c64a1bb0d653a623775fd6 (good) ;; QUESTION SECTION: ;servera.blog.liruilong.com. IN A ;; ANSWER SECTION: servera.blog.liruilong.com. 300 IN A 172.25.250.10 ;; AUTHORITY SECTION: blog.liruilong.com. 600 IN NS serverb.blog.liruilong.com. ;; ADDITIONAL SECTION: serverb.blog.liruilong.com. 300 IN A 172.25.250.11 ;; Query time: 0 msec ;; SERVER: 172.25.250.11#53(172.25.250.11) ;; WHEN: Sun Jul 30 19:31:39 CST 2023 ;; MSG SIZE rcvd: 137 [root@serverb ~]#
反向解析 1 2 3 4 5 6 zone "25.172.in-addr.arpa" IN { type master; file "25.172.loopback" allow-update { none; }; };
1 2 3 4 5 [root@serverb ~] /etc/named.conf:67: missing ';' before 'allow-update' [root@serverb ~] [root@serverb ~] [root@serverb ~]
1 2 3 4 5 6 zone "25.172.in-addr.arpa" IN { type master; file "25.172.loopback" ; allow-update { none; }; };
1 2 3 4 5 6 7 8 9 10 11 12 13 [root@serverb ~] $TTL 1D@ IN SOA serverb.blog.liruilong.com rname.invalid. ( 2023073000 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS serverb.blog.liruilong.com. 10.250 PTR servera.blog.liruilong.com. 11.250 PTR serverb.blog.liruilong.com. 12.250 PTR serverc.blog.liruilong.com. [root@serverb ~]
DNS解析测试工具 除了上面的 dig
命令,这里在分析其他的一些工具。
正反向解析测试,这里我们使用 host 命令,它是 bind-utils
中的一个命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [root@serverb ~] [root@serverb ~] [root@serverb ~] Using domain server: Name: 172.25.250.11 Address: 172.25.250.11 Aliases: serverc.blog.liruilong.com has address 172.25.250.12 [root@serverb ~] Using domain server: Name: 172.25.250.11 Address: 172.25.250.11 Aliases: servera.blog.liruilong.com has address 172.25.250.10 [root@serverb ~] Using domain server: Name: 172.25.250.11 Address: 172.25.250.11 Aliases: 10.250.25.172.in-addr.arpa domain name pointer servera.blog.liruilong.com. [root@serverb ~]
也可以使用 nslookup
,该命令同样适用于 windows
1 2 3 4 5 6 7 8 9 10 11 [root@serverb ~] Server: 172.25.250.11 Address: 172.25.250.11 Name: servera.blog.liruilong.com Address: 172.25.250.10 [root@serverb ~] 10.250.25.172.in-addr.arpa name = servera.blog.liruilong.com. [root@serverb ~]
博文部分内容参考 文中涉及参考链接内容版权归原作者所有,如有侵权请告知
https://www.isc.org/bind/
<RH358 授课课堂笔记>
© 2018-至今 liruilonger@gmail.com , All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)