DNS原理与部署-Bind

一、DNS概述与原理

1、概述

DNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。把ip地址解析为域名为正向解析,把域名解析为ip地址为反向解析。
• 递归DNS服务器:从根域一层一层找到权威DNS服务器 eg:114.114.114.114/61.139.2.69 /8.8.8.8/8.8.4.4
• 权威DNS服务器:直接负责某些特定域名的解析
• 转发DNS服务器

2、DNS查询过程

DNS查询过程:从"根域名服务器"查到"顶级域名服务器"的NS记录和A记录(IP地址);从"顶级域名服务器"查到"次级域名服务器"的NS记录和A记录(IP地址);从"次级域名服务器"查出"主机名"的IP地址。

主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
 本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

 3、DNS记录类型

SOA:起始授权记录
NS:域名服务器记录
A, AAAA:解析IPv4,IPv6地址
CNAME:别名记录
PTR:IP反向解析为域名
MX:邮件记录

SRV:(Service record),指明某域名下提供的服务,即,主机名和端口号。zone文件编写格式如下:

_prometheus._tcp.cmxu.com.   1H IN SRV 10 10 9100 node1.cmxu.com.
依次代表的含义是:
service,所需服务器的符号。(_prometheus)
proto,所需服务的传输协议,通常是 TCP 或 UDP。(_tcp)
name,此记录有效的域名,以 . 结束。(cmxu.com.)
TTL,标准 DNS TTL 字段。(1H)
class,标准 DNS class 字段,如:IN。(IN)
priority,目标主机的优先级,值低的优先。(10)。
weight,具有相同优先级的记录的相对权重,值高的优先。(10)
port,该服务的 TCP 或 UDP 端口。(9100)
target,提供服务的机器的规范主机名,以 . 结束。(node1.cmxu.com.)

注:只有A,AAAA记录后面能够写IP地址。

二、搭建DNS服务器

1、权威dns服务器

[root@master ~]# yum -y install bind
[root@master ~]# vim /etc/named.conf  #修改监控地址和允许查询的地址
listen-on port 53 { any; };
allow-query     { any; };
[root@master ~]# vim /etc/named.rfc1912.zones
zone "cmxu.com." IN {
type master;
file "cmxu.com.zones";
allow-update { none; };
};
[root@master
~]# vim /var/named/cmxu.com.zones #编写区域文件 @ SOA ns1 ns1.cmxu.com. ( 1234132 6H 1H 4D 1H) NS ns1 ns1 IN A 192.168.42.128 node1 IN A 192.168.42.133 master IN A 192.168.42.128 _prometheus._tcp.cmxu.com. 1H IN SRV 10 10 9100 node1.cmxu.com. _prometheus._tcp.cmxu.com. 1H IN SRV 10 10 9100 master.cmxu.com.

[root@master ~]# chown named.named /var/named/ -R

[root@master ~]# systemctl restart named
[root@master ~]# systemctl enable named

至此,权威dns服务器搭建完成,解析域名为cmxu.com,仅配置A记录与SRV记录。

注:编写dns配置文件时一定要注意域名末尾"."。

验证解析如下:

[root@node1 prometheus]# nslookup 
> set type=srv
> _prometheus._tcp.cmxu.com
Server:         192.168.42.128
Address:        192.168.42.128#53

_prometheus._tcp.cmxu.com       service = 10 10 9100 node1.cmxu.com.
_prometheus._tcp.cmxu.com       service = 10 10 9100 master.cmxu.com.
> set type=a
> node1.cmxu.com
Server:         192.168.42.128
Address:        192.168.42.128#53

Name:   node1.cmxu.com
Address: 192.168.42.133
> quit
Server:         192.168.42.128
Address:        192.168.42.128#53

2、递归DNS服务器

[root@master ~]# vim /etc/named.conf   # man named.conf
allow-query     { any; };

3.转发DNS服务器

把请求转发给其他的dns服务器
[root@master ~]#vim /etc/named.conf # man named.conf
forward first|only #first先转发,再递归 only 只转发
forwarders { 61.139.2.69; };
dnssec-validation no;
 --
posted @ 2020-02-07 15:13  _幸会  阅读(507)  评论(0编辑  收藏  举报