DNS域名解析

发布于:2025-02-26 ⋅ 阅读:(11) ⋅ 点赞:(0)

目录

一、域名服务器类型

三、DNS相关配置

3.1、/etc/hosts

3.2、本地DNS缓存文件

四、DNS正向解析

4.1、bind域名解析和管理软件

4.2、常见的DNS记录类型

4.3、配置DNS正向解析

4.3.1、安装bind软件包

4.3.2、修改DNS主机网络配置

4.3.3、修改主配置文件

4.3.4、修改局域配置文件

4.3.5、新建数据库文件,并修改配置

4.3.6、验证DNS解析


DNS(Domain Name System,域名系统) 是一种用于将域名解析为 IP 地址的系统。人类可以轻松记住域名(例如www.jd.com),而计算机则通过 IP 地址(如192.168.1.1)进行通信。DNS 的作用就是将域名转换为机器可理解的 IP 地址。

一、域名服务器类型

  • 根DNS服务器(Root DNS Servers):根 DNS 服务器是 DNS 系统的顶级服务器,负责处理对域名根级别(如.com,.org等)的查询。
  • 顶级域名服务器(TLD Servers):管理顶级域名的 DNS 服务器。
  • 权威DNS服务器(Authoritative DNS Servers):这些服务器存储有关于某个域名的最终信息,如域名到 IP 地址的映射。如果查询的域名有结果,权威 DNS 服务器将直接提供该域名的解析结果。
  • 递归 DNS 服务器(Recursive DNS Servers):递归服务器接受 DNS 查询请求并负责将查询请求发送到其他 DNS 服务器,直到获取到域名的 IP 地址。

二、DNS解析过程

  • 浏览器查询本地缓存:浏览器会首先查看本地缓存,检查是否有该域名的解析结果。
  • 操作系统查询本地DNS缓存:操作系统也会缓存DNS解析的结果,如果缓存中有该域名的解析结果,直接返回。
  • 查询本地 DNS 服务器:如果本地没有缓存,系统会将查询请求发送到本地 DNS 服务器(通常由 ISP 提供)。
  • 递归查询过程:本地 DNS 服务器可能需要进一步向其他 DNS 服务器查询来解析域名,通常是从根 DNS 服务器开始,逐步查询下去,直到返回域名的 IP 地址。
  • 返回结果:最终,IP 地址返回给用户的计算机,计算机与目标服务器建立连接。

三、DNS相关配置

3.1、/etc/hosts
[root@padoru ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.153.23 test        //新增一条DNS解析规则

[root@padoru ~]# ping test        //可以通过test成功解析IP地址
PING test (192.168.153.23) 56(84) bytes of data.
64 bytes from test (192.168.153.23): icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from test (192.168.153.23): icmp_seq=2 ttl=64 time=0.038 ms
3.2、本地DNS缓存文件
[root@padoru ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 144.144.144.144
nameserver 8.8.8.8

四、DNS正向解析

4.1、bind域名解析和管理软件

bind是一个开源软件,支持多种DNS功能,包括递归查询、权威解析、DNS 负载均衡、缓存等。它是大多数 Linux 系统中的默认 DNS 服务器软件。

bind软件种类:

  • bind:服务器
  • bind-libs:相关库
  • bind-utils:客户端
  • bind-chroot:安全包

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 rndc reload systemctl reload named
  • 解析库文件:/var/named/ZONE_NAME.ZONE
4.2、常见的DNS记录类型
  • A 记录(Address Record):将域名映射到 IPv4 地址。
  • AAAA 记录:将域名映射到 IPv6 地址。
  • CNAME 记录(Canonical Name Record):将一个域名指向另一个域名。
  • MX 记录(Mail Exchange Record):定义邮件交换服务器的地址,用于电子邮件的路由。
  • NS 记录(Name Server Record):指定负责该域名的 DNS 服务器。
  • PTR 记录(Pointer Record):将 IP 地址映射回域名,用于反向 DNS 查询。
  • TXT 记录:可以存储任意文本数据,通常用于 SPF(Sender Policy Framework)和验证等功能。
4.3、配置DNS正向解析
4.3.1、安装bind软件包
[root@localhost ~]#systemctl stop firewalld.service    //关闭防火墙
[root@localhost ~]#setenforce 0                        //关闭selinux
[root@localhost ~]#yum  install bind bind-utils -y     //安装主软件和配置包管理软件
[root@localhost ~]#systemctl start named               //开启bind服务
[root@padoru ~]# netstat -natp |grep named
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      12047/named         
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      12047/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      12047/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      12047/named    
4.3.2、修改DNS主机网络配置
[root@padoru ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

IPADDR=192.168.153.23
NETMASK=255.255.255.0
GATEWAY=192.168.153.2
DNS1=192.168.153.23                //将DNS地址指向本机IP

[root@padoru ~]# systemctl restart network        //重启服务,刷新配置
[root@padoru ~]# cat /etc/resolv.conf             //查看DNS配置情况
# Generated by NetworkManager
nameserver 192.168.153.23
4.3.3、修改主配置文件
[root@padoru ~]# vim /etc/named.conf 

 13         listen-on port 53 { any; };    //将括号内字符改为any,或者注释,删除

 21         allow-query     { any; };      //将括号内字符改为any,或者注释,删除
4.3.4、修改局域配置文件
[root@padoru ~]# vim /etc/named.rfc1912.zones 

13 zone "padoru.com" IN {                        //修改为自定的正向解析域名
 14         type master;
 15         file "padoru.com.zone";              //指定数据库文件名
 16 };      
4.3.5、新建数据库文件,并修改配置
[root@padoru ~]# cd /var/named
[root@padoru named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@padoru named]# cp -a named.localhost  padoru.com.zone
[root@padoru named]# vim padoru.com.zone 

  1 $TTL 1D
  2 @       IN SOA  master.padoru.com admin.padoru.com (     //本行也可不修改
//@:区域的根,即域名本身。 
//IN SOA:定义区域的起始授权记录,包含主DNS服务器、管理员邮箱地址等信息
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      master
  9 master  A       192.168.153.23                //添加解析域名
 10 wwww    A       192.168.153.23                //添加解析域名
 11 ftp     A       192.168.153.23                //添加解析域名

[root@padoru named]# systemctl start named        //重启服务
4.3.6、验证DNS解析
[root@padoru named]# nslookup www.padoru.com
Server:		192.168.153.23
Address:	192.168.153.238#53