一、DNS原理

1、dns的定义是将域名和ip地址相互映射的一个分布式数据库,能够使客户端更方便的进行访问。
tcp链接 udp解析 53号端口
2、dns类似为树状结构,最顶层为根域,"."来表示,相应服务器为跟服务器,整个域名空间解析权都归
跟服务器所有。
但跟服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不通顶级域
的解析权分别委派给相应的顶级域服务器,同样的道理,为减轻顶级域的压力,又下了若干个二级域,二级域
下面又设置三级域。
3、dns的解析顺序为: 读取本地缓存 etc hosts etc resolv
(1)递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。
如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
(2)迭代查询
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,
当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS
服务器提交请求,依次循环直到返回查询的结果为止。
二、正向解析
-------------------------------------------DNS正向解析-----------------------------
----准备--
rpm -qc bind #查询bind软件配置文件所在路径
/etc/named.conf #主配置文件
/etc/named/rfc1912.zonrs #区域配置文件
/var/named/named.localhost #区域数据配置文件
--------------------------------------------
1、vim /etc/named.conf
options {
listen-on-v6 poet 53 { 192.168.184.10; }; #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
# listen-on-v6 port 53 { : :1; }; #ipv6行如不使用可以注释掉或者删除
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"; #内存统计文件的位置
allow-query
{ any; }; #允许使用本DNS解析服务的网段,也可用any代表所有
zone "." IN { #正向解析“. "根区域
type hint; #类型为根区域
file "named.ca"; #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones";
wq保存并退出
2、vim /etc/ named. rfc1912. zone #可在文件里有模版,可复制粘贴后修改
zone "lic. com" IN { #正向解析"lic.com"区域
type master; #类型为主区域
file "lic. com. zone"; ●指定区域数据文件为lic. com. zone
allow-update { none; };
};
wq
3、cd /var/named/
cp -p named.localhost lic.com.zone #保留源文件的权限和属主的属性复制
vim /var/named/lic.com.zone
$TTL 1D #设置缓存解析结果的有效时间
@ IN SOA lic.com. admin.lic.com. (
0; serial .
1D; refresh
1H; retry
1W; expire
3H ) ; minimum
NS lic.com. #记录当前区域的DNS服务器的名称
A 192.168.150.100 #记录主机IP地址
IN MX 10 mail.lic.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.150.100 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.150.100
ftp IN CNAME www #CNAME使用别名,ftp是www的别名
* IN A 192.168.150.100 #泛域名解析,“*"代表任意主机名
----测试----
systemctl start named
systemctl stop firewalld
setenforce 0
tail -f /var/log/ messages #如果服务启动失败,可以查看日志文件来排查错误
rndc-confgen -r /dev/urandom -
host www.kgc.com
nslookup www.kgc.com
三、反向解析
---------------------------------------------DNS反向解析----------------------------------------------
1、vim /etc/named.conf
options {
listen-on-v6 poet 53 { 192.168.184.10; }; #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
# listen-on-v6 port 53 { : :1; }; #ipv6行如不使用可以注释掉或者删除
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"; #内存统计文件的位置
allow-query { any; }; #允许使用本DNS解析服务的网段,也
2、vim /etc/named. rfc1912. zone #文件里有模版,可复制粘贴后修改
zone "80.168.192. in-addr.arpa" IN { #反向解析的地址倒过来写,代表解析192.168.80段的地址
type master;
file "benet. com. zone. local"; #指定区域数据文件为benet.com.zone.local
allow-update { none; } ;
3、cd /var/ named/
cp -p named. localhost benet. com. zone. local
vim /var/ named/ benet. com. zone. local
$TTL 1D
@ IN SOA benet. com. admin. benet. com. ( #这里的“@"代表192.168.80段地
0 ; serial
1D ; refresh
1H ; retry
1W ; expi re
3H ) ; minimum
NS benet. com.
A 192.168.80.10
200 IN PTR WWW . benet. com. #PTR为反向指针,反向解析192.168.80.200地址结果为www . benet. com.
验证
systemctl restart named
host 192.168.80.200
ns1ookup 192.168.80. 200
版权声明:本文为m0_55614372原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。