DNS and Bind

Sockets:

C/S:

Client:发起应用请求的程序

Server:响应请求(提供服务)的程序

LISTEN:Sockets

DNS :Domain Name Server, 应用层协议

C/S

53/tcp , 53/udp      

DNS查询类型:

递归查询

迭代查询

DNS服务器类型:

负责解析至少一个域:

主名称服务器

辅助名称服务器

不负责解析:

缓存名称服务器

 

一次完整的查询请求经过的流程:

Client > hosts文件 > DNS Local Cache > DNS Server

自己负责解析的域:直接查询数据库并返回答案

不是自己负责解析的域:Server Cache > iteration(迭代查询)

主从DNS服务器:   

DNS服务器:维护所负责解析的域数据库的服务器,读写操作均可执行

DNS服务器:从主DNS服务器同步(即复制)一份解析库,只能进行读操作

 

区域数据库文件:

资源记录:Resource Record

记录类型:A , AAAA , SOA , NS , CNAME , MX

SOA: Start Of Authority 起始授权记录:一个区域解析库有且只能有一个SOA记录且为第一条

NS: Name Server ,域名服务记录:一个区域解析库可以有多个NS记录,一个为主

AAddress ,地址记录,FQDN > IPV4

AAAA: 地址记录:FQDN > IPV6

CNAME: Canonical Name :别名记录

PTR: Pointer IP > FQDN

MX: Mail Exchanger 邮件交换器:

优先级:0-99.数字越小优先级越高

 

        Bind 的安装配置:

        BIND: Berkeley Internet Name Domain

        DNS:协议

        Binddns协议的一种

Bind

主配置文件: /etc/named.conf

或包含进来其他文件:

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

解析库文件:

/var/named/*  一般名为ZONE_NAME.zone

 

Attention:        (1)    一台DNS服务器可以同时为多个域提供解析

(2)  必须要有根区域解析库文件:named.ca ;

(3)  两个区域解析库文件:localhost127.0.0.1的正反向解析库

Rndc: remote name domain contoller

953/tcp , 但是默认监听于127.0.0.1 地址,因此仅允许本地使用

Bind程序安装完成后,默认即可做缓存名称服务器使用,如果没有专门负责解析的区域,         直接可以启动服务

CentOS 6 service named start

CentOS 7 systemctl start named.service

Attintion : 每一个配置语句必须以分号结尾

主配置文件格式:

全局配置段:

Options{......}

日志配置段:

Logging{......}

区域配置段:

Zone{......}

缓存名称服务器的配置:

监听能与外界主机通信的地址:

 listen-on port 53 { 127.0.0.1; };

检查配置文件语法错误:

Named-checkconf NAMED.CONF

测试工具:

Dighostnslookuprndc

 配置解析一个正向区域:

www.baidu.com域为例

(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现:/etc/named.rfc1912.zones || /etc/named.conf

Zone “ZONE_NAME” IN {

Type {master|slave|hint|forward};

File “ZONE_NAME.zone”;

};

(2) 建立区域数据文件

/var/named目录下建立区域数据文件  

文件名为:/var/named/baidu.com.zone

配置示例:

 

$TTL 3600

$ORIGIN baidu.com

@     IN     SOA          ns1.baidu.com.       Dnsadmin.baidu.com.(

20180411

1H

10M

3D

1D )

IN     NS    ns1

IN     MX  10 mx1

IN     MX  20 mx2

ns1   IN     A      172.18.0.2

mx1 IN     A      172.18.0.3

mx2 IN     A      172.18.0.4

www IN  A      172.18.0.5

web IN     CNAME   172.18.0.6

bbs  IN     A      172.18.0.7

bbss IN     A      172.18.0.7

 

检查语法错误:

# named-checkzone ZONE_NAME  ZONE_FILE

# named-checkconf

(3)  让服务器重载配置文件和区域数据文件

# rndc reload 或者 systemctl reload named.service

      配置解析一个反向区域:

(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现

zone “ZONE_NAME” IN {

Type {master|slave|hint|forward};

File “ZONE_NAME.zone”;

};

(2) 定义区域解析库文件(主要记录为PTR

 

示例:

 

$TTL 3600

$ORIGIN 0.18.172.in-addr.arpa.

@     IN     SOA          ns1.baidu.com.       Nsadmin.baidu.com.(

20180411

1H

10M

3D

12H )

IN     NS             ns1.baidu.com.

2       IN     PTR          ns1.baidu.com.

3       IN     PTR          mx1.baidu.com.

4       IN     PTR          mx2.baidu.com.

5       IN     PTR          www.baidu.com.

7       IN     PTR          bbs.baidu.com.

7       IN     PTR          bbss.baidu.com.

 

权限以及属性修改:

# chgrp named /var/named/172/18.0.zone

# chmod o= /var/named/172.18.0.zone

检查语法错误:   

# named-checkzone ZONE_NAME  ZONE_FILE

# named-checkconf

(3) 让服务器重载配置文件和区域数据文件

# rndc reload 或者 systemctl reload named.service

    最后dig -x IP地址 就可以解析了