DNS服务的原理、配置、和实验教程


前言:本章主要学习DNS的概念,基本原理,配置域名和相关实验

一、什么是DNS?

DNS (Domain Name Service,域名服务 ) ,是Internet中比较基础且重要的一项服务,它提供了网络访问中的域名和IP地址的相互转换。

DNS服务对于互联网的稳定性至关重要,它将域名解析为IP地址,实现网络资源定位。

二、域名空间结构

DNS是一个分布式数据库,命名系统采用层次的逻辑结构,逻辑结构如同一棵树,采用树形结构为域名空间,各分支机构构成了DNS的信息。
例如:

域名空间:www.baidu.com

顶级域:com

二级域:baidu

主机名:www
在这里插入图片描述

三、DNS服务器类型

  1. 主域名服务器(Primary DNS Server)
    • 负责维护特定区域(Zone)的域名信息,是该区域内域名数据的权威来源。
    • 管理员在主域名服务器上直接进行域名记录的添加、修改和删除等操作,这些操作会被记录在本地的区域文件中。
    • 当客户端发起域名查询请求时,主域名服务器会根据本地存储的域名信息进行响应。
  2. 从域名服务器(Secondary DNS Server)
    • 从主域名服务器复制域名信息,作为主域名服务器的备份。
    • 定期与主域名服务器进行数据同步,以确保其保存的域名信息与主域名服务器一致。
    • 当主域名服务器出现故障时,从域名服务器可以接替主域名服务器的工作,继续为客户端提供域名解析服务,从而提高了DNS系统的可靠性和容错能力。
  3. 缓存域名服务器(Caching DNS Server)
    • 本身并不维护任何域名区域的权威数据,主要功能是缓存先前查询过的域名解析结果。
    • 当客户端向缓存域名服务器发起域名查询请求时,它首先会检查本地缓存中是否有对应的解析记录。如果有,则直接返回缓存中的结果,从而加快域名解析速度;如果没有,则会向其他权威域名服务器发送查询请求,并在收到响应后将结果缓存起来,以便下次有相同查询时可以直接使用。

四、查询方式

递归:客户端只发一次请求,要求对方给出最终结果。

迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,

​ 客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
在这里插入图片描述

五、缓存机制

为了提升域名查询效率,设计了域名缓存机制,当访问过某个网站并得到其IP后,会将其域名和IP缓存下来,下一次访问的时候,就不需要再请求域名服务器获取IP,直接使用缓存中的IP,提高了响应的速度。当然缓存是有有效时间(即TTL值)的,当过了有效时间后,再次请求网站,还是需要先请求域名解析。

六、DNS服务的配置文件

配置文件存放位置
主配置文件/etc/named.conf
区域配置文件/etc/named.rfc.1912.zones
数据文件/var/named/
客户机配置文件/etc/resolv.conf
正向解析文件/var/named/named.localhost
反向解析文件/var/named/named.empty

七、如何搭建DNS服务?

服务器规划:

服务器IP地址
DNS服务器192.168.91.128/24
客户端192.168.168.91.129/24

操作系统:red hat 9.5
网卡环境:

vim /etc/NetworkManager/system-connections/ens160.nmconnection 
[ipv4]
address1=192.168.91.128/24     #配置静态IP
dns1=192.168.91.128
method=manual


nmcli connection reload ens160    #重载网卡

关闭防火墙:服务端和客户端都要关闭

systemctl stop firewalld
setenforce 0
iptables -F

服务端配置

第一步:安装DNS服务

yum -y install bind

第二步:配置主配置文件

vim /etc/named.conf
options {
	listen-on port 53 {192.168.91.128;};    #ipv4监听端口和地址
	allow-query {192.168.91.0/24;};          #允许使用的网段
}

第三步:配置区域配置文件

vim /etc/named.rfc1912.zones
zone "bdqn.com" IN {
        type master;
        file "bdqn.localhost";
        allow-update { none; };
};

zone ".168.192.in-addr.arpa" IN {
        type master;
        file "bdqn.empty";
        allow-update { none; };
};

第四步:配置数据文件

cd /var/named/
cp -p named.localhost    bdqn.localhost
cp -p named.empty        bdqn.empty

第五步:配置正向解析文件

 vim bdqn.localhost
$TTL 1D
@	IN SOA	bdqn.com. rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	dns.bdqn.com.
dns	A	192.168.91.128

第六步:配置反向解析文件

 vim bdqn.empty
$TTL 3H
@	IN SOA	bdqn.com. rname.invalid. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	dns.bdqn.com.
128	PTR	dns.bdqn.com.

第七步:配置客户机配置文件

 vim /etc/resolv.conf  
 nameserver=192.168.91.128

第八步:启动服务

systemctl start named

客户端配置

网卡环境

 vim /etc/NetworkManager/system-connections/ens160.nmconnection
[ipv4]
address1=192.168.91.129/24
dns=192.168.91.128;
method=manual

nmcli connection reload ens160

第一步:配置服务器文件

vim /etc/resolv.conf
nameserver 192.168.91.128

第二步:解析域名

nslookup www.bdqn.com            #反向解析
Server:		192.168.91.128
Address:	192.168.91.128#53

Name:	www.bdqn.com
Address: 192.168.91.128

nslookup 192.168.91.128         #正向解析
128.91.168.192.in-addr.arpa    name = dns.bdqn.com.

八、DNS实验

实验一:主从DNS服务器实现跨网段实现域名解析

服务器规划:

角色IP地址网卡模式
主DNS服务器192.168.91.128/24仅主机模式
从DNS服务器192.168.91.129/24仅主机模式
客户端192.168.91.130/24仅主机模式

准备工作:
步骤一:关闭防火墙

systemctl stop firewalld
setenforce 0
iptables -F

步骤二:配置网卡

vim /etc/NetworkManager/system-connections/ens160.nmconnection 
[ipv4]
address1=192.168.91.128/24     #配置静态IP
dns1=192.168.91.128
method=manual


nmcli connection reload ens160    #重载网卡

步骤三:安装DNS服务器

rpm -q bind

yum -y install bind

主服务器:
步骤一:编辑主配置文件

vim    /etc/named.conf
liten -on port 53 { 192.168.91.128; };
allow-query  { 192.168.91.0/24; }
allow-transfer   { 192.168.91.129; }      #从服务器IP地址

步骤二:编辑区域配置文件

vim   /etc/named.rfc1912.zones

zone "lc160.com" IN {
        type master;
        file "lc160.localhost";
        allow-update { none; };
};


zone "91.168.192.in-addr.arpa" IN {        #声明91网段
        type master;
        file "lc160.empty";
        allow-update { none; };
};

zone "100.168.192.in-addr.arpa" IN {       #声明100网段
        type master;
        file "lc160.empty2";
        allow-update { none; };
};

步骤三:配置数据文件

cp -p named.localhost   lc160.localhost 
cp -p named.empty   lc160.empty
cp -p named.empty   lc160.empty2

vim lc160.lcoalhost
.$TTL 1D
@       IN SOA  lc160.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.lc160.com.
www     A       192.168.91.128     #解析不同网段
dns     A       192.168.100.128                                                 

  

vim lc160.empty
TTL 3H
@       IN SOA  lc160.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lc160.com.
128     PTR     www.lc160.com.


vim lc160.empty2
$TTL 3H
@       IN SOA  lc160.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lc160.com.
128     PTR     dns.lc160.com.


步骤四:检查语法错误

named-checkconf -z 

journalctl  -xe   查看日志

步骤五:启动服务

systemctl start named

从服务器:
步骤一:安装DNS

dnf -y install bind

步骤二:修改区域配置文件

vim   /etc/named.rfc1912.zones

zone "lc160.com" IN {
        type slave;
        file "slave/lc160.localhost";
         masters {192.168.91.128;};
};


zone "91.168.192.in-addr.arpa" IN {        #声明91网段
        type slave;
        file "slave/lc160.empty";
        masters {192.168.91.128;};
};

zone "100.168.192.in-addr.arpa" IN {       #声明100网段
        type slave;
        file "slave/lc160.empty2";
        masters {192.168.91.128;};
};

步骤三:启动从DNS服务

systemctl start named

客户端:

步骤一:反向解析

nslookup www.lc160.com
server:          192.168.91.128
Address:         192.168.91.128#53

Name:      www.lc160.com
Address:   192.168.91.128


nslookup dns.lc160.com
server:          192.168.91.128
Address:         192.168.91.128#53

Name:      dns.lc160.com
Address:   192.168.100.128

步骤二:正向解析

nslookup 192.168.91.128
128.91.168.192.in-addr.arpa     name = www.lc160.com.
129.91.168.192.in-addr.arpa     name = dns.lc160.com.

nslookup 192.168.100.128
128.100.168.192.in-addr.arpa     name = www.lc160.com.
129.100.168.192.in-addr.arpa     name = dns.lc160.com.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值