DNS

DNS:Domain Name System 应用层协议;C/S,53/udp, 53/tcp
BIND:Bekerley Internat Name Domain 
ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
 
本地名称解析配置文件:hosts
DNS域名
根域
一级域名:Top Level Domain: tld
  com, edu, mil, gov, net, org, int,arpa
  三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
二级域名
三级域名
最多127级域
 

DNS服务器类型

 
主DNS服务器:管理和维护所负责解析的域内解析库的服务器
从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本
缓存DNS服务器(转发器)

DNS数据库的记录:正向解析、反向解析、zone的意义

正向解析:冲主机名查询到IP的流程
反向解析:从ip解析到主机名的流程
zone:不管是正解还时反解,每个域的记录都是一个区域

资源记录类型

资源记录:Resource Record, RR
记录类型: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,别名记录 。以淘宝网为例www.taobao.com,宝网站是由N多主机的集群。用CNAME可以实现将www.taobao.com。别名为a.taobao.com......x.taobao.com。每个别名对应一个IP,通过DNS将不同访问分别解析到不同的别名主机上。
MX:Mail eXchanger,邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:
SPF(反垃圾邮件)记录,https验证等
  示例:_dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x

SOA记录

name: 当前区域的名字,例如“magedu.com.”
 value: 有多部分组成
 (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
 (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换例如:admin.test.com。
 (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
test.com.  86400  IN  SOA  master.test.com.  nsadmin.magedu.com.
(
2015042201 ;序列号
2H;刷新时间
10M;重试时间
1W;过期时间
1D;否定答案的TTL值
 )

NS记录

name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.
注意:一个区域可以有多个NS记录
例如:
test.com.     IN  NS   ns1.test.com.
test.com.  IN   NS     ns2.test.com.

注意:

(1) 相邻的两个资源记录的name相同时,后续的可省略
(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
  ns1 in A 192.168.0.1
  ns2 in A 192.168.0.2

MX记录

name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
例如:
test.com.  IN MX 10 mx1.test.com.
      IN MX 20 mx2.test..com.
注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

A记录

name: 某主机的FQDN,例如:www.test.com.
value: 主机名对应主机的IP地址
例如:
www.test.com   IN   A  1.1.1.1
www.test.com.     IN   A  2.2.2.2
mx1.test.com.   IN   A  3.3.3.3
mx2.test.com.   IN   A  4.4.4.4
$GENERATE 1-254 HOST$  IN  A   1.2.3.$ #比如说有server{1-99}.test.com,此时可以使用这种表达方式,而不是添加server1.test.com~ser99.test.com这99条记录。
*.test.com.      IN   A5.5.5.5  ##当有人输入wwwwwww.test.com时,会被*.test.com匹配到。
test.com.      IN   A6.6.6.6
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址

AAAA

name: FQDN
value: IPv6

PTR

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1。有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
 
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
如1.2.3为网络地址,可简写成:
4  IN PTR  www.magedu.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写

CNAME

name: 别名的FQDN
value: 真正名字的FQDN
例如:
 www.test.com. IN CNAME websrv1.test.com.
 www.test.com. IN CNAME websrv2.test.com.

DNS安装和配置

DNS服务器软件:

bind,powerdns,unbound

BIND相关程序包:

yum list all bind*
  bind:服务器
  bind-libs:相关库
  bind-utils:客户端
  bind-chroot: /var/named/chroot/

BIND程序名:named

安装

yum –y install bind

重新加载配置

  rndc reload rndc

    remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程提供辅助性的管理功能;953/tcp

  systemctl reload named

配置文件

服务脚本和名称:/etc/rc.d/init.d/named /usr/lib/systemd/system/named.service

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

解析库文件:/var/named/ZONE_NAME.ZONE

注意:

(1) 一台物理服务器可同时为多个区域提供解析

(2) 必须要有根区域文件;named.ca
主配置文件语法检查:
  named-checkconf
解析库文件语法检查:
  named-checkzone "magedu.com" /var/named/magedu.com.zone
配置生效:
  rndc reload 或 service named reload

主配置文件

全局配置:options {};
日志子系统配置:logging {};
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
zone "ZONE_NAME" IN {};
一般配置以下三项就可以
listen-on port 53 { localhost; }   默认只监听127.0.0.1所以不对外提供服务。listen-on port 53 { localhost; }。为什么建议配置为localhost,因为localhost代表本机上的所有IP,这样可以再改IP的情况下不该配置文件。 allow-query { any; } any|netip|ip ##允许哪些主机使用dns查询服务
 zone "ZONE_NAME" IN {     ##本机能够为哪些zone进行解析
  type {master|slave|hint|forward};
  file "ZONE_NAME.zone";
 };
 include "/etc/named.rfc1912.zones"; ##上边的zone "ZONE_NAME" IN {};最好配置在此文件中,这是一个专门存放zone的问价。
 include "/etc/named.root.key";

实验一:配置一个正向解析区域"test.com" 

/etc/named.conf
options {
    listen-on port 53 { localhost; };
        allow-query     { any; };
}


/etc/named.rfc1912.zones
zone "test.com" IN {
    type master;
    file "test.com.zone";
};

/var/named/test.com.zone   ###注意此配置文件的数组要配置成named,且最少有r权限。
$TTL 1D
@    IN SOA    dns.test.com.  mail.test.com. (
                    0    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
    IN NS dns
dns IN A 192.168.206.15
www IN CNAME websrv
websrv IN A 192.168.206.11
wensrv IN A 192.168.206.12

反向区域

 
区域名称:网络地址反写.in-addr.arpa.
  172.16.100. --> 100.16.172.in-addr.arpa.
(1) 定义区域
zone "ZONE_NAME" IN {
type {master|slave|forward};
file "网络地址.zone"
};
(2) 定义区域解析库文件
注意:不需要MX,以PTR记录为主

实验二:配置一个反向解析区域

/etc/named.rfc1912.zones
zone "206.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.206.zone";
};


more /var/named/192.168.206.zone 
$TTL 1D
@    IN SOA    @ mail.test.com. (
                    0    ; serial 
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
    IN NS dns

dns IN A 192.168.206.15
11 IN PTR websrv.test.come

 测试命令

  dig -x 192.168.206.11 @192.168.206.15

  

  dig -t ptr 11.206.168.192.in-addr.arpa  @192.168.206.15

DNS从服务器配置 

各种类型的主从服务器的搭建,都有共性,第一主从服务器得知道彼此的位置;第二必须有一个标识,来区分master和slave;第三主从之间有一定的数据传输机制。

1、应该为一台独立的名称服务器
2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
4、主服务器得允许从服务器作区域传送
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低
定义从区域的方法:
zone "ZONE_NAME" IN {
type slave;
masters { MASTER_IP; };
file "slaves/ZONE_NAME.zone";
};

实验三配置一个主从dns

主服务器192.168.206.15

/etc/named.conf
allow-tranfwer { 192.268.206.20; };##只允许从服务器从主节点抓取数据。可使用dig -t axfr test.com @192.168.206.15验证。
  

/var/named/test.com.zone ###注意此配置文件的数组要配置成named,且最少有r权限。 $TTL 1D @ IN SOA dns.test.com. mail.test.com. ( 0 ; serial###当主节点更改了数据库文件时一定要手动更改serial,否则不会同步到从服务器 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS dns IN NS dns2 dns IN A 192.168.206.15 dns2 IN A 192.168.206.20 www IN CNAME websrv websrv IN A 192.168.206.11 wensrv IN A 192.168.206.12

 

主服务器需要添加一个NS记录,目的时让主节点知道除了自己外还有其他的dns服务器

从服务器192.168.206.20

/etc/named.conf
allow-tranfwer { none; };##从服务器不允许任何人抓取数据。可使用dig -t axfr test.com @192.168.206.20验证。

/etc/named.rfc1912.zones zone "test.com" IN { type slave; masters {192.168.206.15;}; ##主dnsIP file "slaves/test.com.zone"; }; options { listen-on port 53 { localhost; }; allow-query { any; }; }

测试

查看slaves下是否有同步的文件

 

dig命令测试

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

posted on 2020-08-16 17:09  HowOldAreYou  阅读(280)  评论(0编辑  收藏  举报

导航