DNS正向域名解析之bind

本文详细介绍了DNS查询类型和资源记录,重点讲解如何利用BIND搭建正向主服务器,包括配置文件修改、DNS区域数据库设定、TTL设置等。通过四个实验,演示了泛域名解析、缺省域名解析、MX邮件记录和CNAME别名记录的实现,以确保FQDN的正确访问。最后,使用curl和dig命令进行了验证。
摘要由CSDN通过智能技术生成

DNS查询类型

递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,
若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结
果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询

迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对
方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起
进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需
要发起多次查询

完整的查询请求经过的流程

Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递
归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

解析形式

正向:FQDN( Fully Qualified Domain Name) --> IP
反向: IP --> FQDN

各种资源记录

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录

A:internet Address,作用,FQDN --> IP

AAAA:FQDN --> IPv6

PTR:PoinTeR,IP --> FQDN

NS:Name Server,专用于标明当前区域的DNS服务器

CNAME : Canonical Name,别名记录

MX:Mail eXchanger,邮件交换器

TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮件)记录,https验证等,

资源记录定义的

name [TTL] IN rr_type value

注意:

  1. TTL可从全局继承
  2. 使用 “@” 符号可用于引用当前区域的域名
  3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
  4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通
    过多个不同的名字可以找到同一个主机

安装软件

[root@localhost ~]# dnf install -y bind bind-utils

3.2 BIND包相关文件

BIND主程序:/usr/sbin/named
服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且
只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
解析库文件:/var/named/ZONE_NAME.ZONE
注意:
(1) 一台物理服务器可同时为多个区域提供解析
(2) 必须要有根区域文件;named.ca
(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

主配置文件

全局配置:options {};
日志子系统配置:logging {};
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
zone "ZONE_NAME" IN {};
注意:
任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的
IP地址上
缓存名称服务器的配置:监听外部地址即可
dnssec: 建议关闭dnssec,设为no

正向主服务器

搭建DNS正向主服务器,实现web服务器基于FQDN的访问

环境要求

需要三台主机
DNS服务端:172.31.0.38
web服务器:172.31.0.48
DNS客户端:172.31.0.18

前提准备

关闭SElinux
[root@localhost ~]# sed -ri 's/^(SELINUX=).*/\1disabled/' /etc/selinux/config
关闭防火墙
[root@localhost ~]# systemctl disable --now firewalld
时间同步
实现主DNS服务器
[root@localhost ~]# vim /etc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值