DNS服务及BIND基础应用
2017-05-31 20:59
323 查看
DNS服务及BIND基础应用
DNS :Domain Name Service,一种重要的网络基础服务协议,采用C/S架构,属于应用层协议BIND :Berkerley Internet Name Domain,ISC组织负责维护,是DNS协议的一种实现,监听于53/tcp端口,53/udp端口,named是bind程序的运行的服务进程名
DNS协议是基于两个更基础的协议,使用情况为:
使用UDP协议 :主机名称解析过程时使用
使用TCP协议 :区域传输时使用
本地名称解析配置文件:hosts
CentOS系统的位置:/etc/hosts
Windows系统位置 :%WINDOWS%/system32/drivers/etc/hosts
DNS服务器:向客户端提供域名解析服务的服务器·
DNS服务器的类型;
4.1. 主DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;读写操作均可进行;
4.2从DNS服务器:从主DNS服务器或从其他的从DNS服务器那里区域传递(类似“复制”)一份解析库,只能进行读操作
4.3缓存DNS服务器:负责代理客户机的递归查询工作,并且采用迭代查询的服务器
4.4转发器:如果目标域名在本DNS服务器辖区内,直接转发
完整的DNS解析请求经过的流程:
客户端首先检查本机hosts文件中是否对目标域名已经定义,然后对客户端本地的DNS缓存内容检查,不成功后向DNS服务器发出【递归】请求,DNS服务器收到请求后,首先检查目标域名是否为自己辖区内的主机名,如果是直接返回答案,如果不是则检查本服务器自己的缓存信息,不成功则进行【迭代】搜寻。
Client –> 本机hosts文件 –> Local Cache –> DNS Server(recursion,递归) –> Server Cache –> iteration(迭代) –> 根 –> 顶级域 –> 对应的二级域 –> … –> 得出最终解析答案
DNS解析响应生效优先级:从高到低排序为:
客户端的hosts文件 –> 客户端本地的DNS缓存 –> 服务器端DNS缓存 –> 客户端委托的DNS服务器实际查询请求的结解析答案
DNS查询类型
递归查询:只发出一次请求,就可以得到最终答案,过程中要委托服务器完成整个查询过程;一般来说,客户端向DNS服务端发出的都是递归查询请求,该请求只发出一次,就可以静候服务器给出解析答案。
迭代查询:服务器查询目标域名的过程中,需要从根开始,一直到目标域,得出最终结果的过程;DNS服务器端向根服务器询问、向目标域名的对应在根下的顶级域服务器询问,向下一级服务器询问,… ,直至查询到最终精确的解析答案的过程。
区域解析库:由众多RR组成
资源记录:Resource Record,RR,DNS条目,记录类型包括:
SOA :Start Of Authority , 起始授权记录;一个区域解析库有且仅能有一个SOA记录,且必须位于解析库的第一条记录
A :internet Address , FQDN –> IPv4
AAAA :FQDN –> IPv6
PTR :PoinTeR ,指针记录, IP –> FQDN
NS :Name Server , 专用于标明当前区域的DNS服务器
CNAME :Canonical Name , 别名记录
MX :Mail eXchanger , 邮件交换器
注意:
(1) TTL可以从全局继承,TTL : Time to Live,缓存时长,此项内容可省略,如果TTL值未明确单位的话,默认单位为秒
(2) @ 可用于表示当前域名
(3) 相邻的两个资源记录的name相同时,后续的可以省略
(4) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮调方式响应并解析
(5) 同一个值也可能有不同的定义名字,通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机而已,无特殊含义,此种情况也可以写成CNAME格式的条目。
bind配置:
主配置文件:/etc/named.conf
或包含进来其它文件;
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
解析库文件:
/var/named/目录下;
一般名字为:ZONE_NAME.zone
注意:
(1) 一台DNS服务器可同时为多个区域提供解析;
(2) 必须要有根区域解析库文件: named.ca;
(3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;
正向:named.localhost
反向:named.loopback
DNS服务配置实例
准备两台虚拟机A,B(以CentOS6为例),分别安装bind程序包,进行如下操作1.配置主DNS服务器(A号虚拟机):
service named start;ss -tnl
2.设置服务主配置文件
vim /etc/named.conf #修改以下内容 options { #监听能与外部主机通信的地址; listen-on port 53 { 172.16.254.22;127.0.0.1; }; //listen-on-v6 port 53 { ::1; }; allow-query { any; }; recursion yes; #学习时,建议关闭dnssec dnssec-enable no; dnssec-validation no;
3.检查配置文件语法错误:
named-checkconf [/etc/named.conf]
4.修改域配置文件,包含正反解
vim /etc/named.rfc1912.zones #增加以下内容 zone "main.cjl.io" IN { type master; file "main.cjl.com.zone"; }; zone "16.172.in-addr.arpa" IN { type master; file "16.172.zone"; };
5.配置正解的解析库文件cjl.io.zone
cd /var/named/;ls vim cjl.io.zone $TTL 86400 $ORIGIN cjl.io. @ IN SOA ns.cjl.io.nsadmin.cjl.io. ( 20170523 4000 05 ;serial number 1H ;refresh 5M ;retry 1W ;deadline 1D ) ;neagtive TTL IN NS ns1.cjl.io. IN NS ns2.cjl.io. ns1.cjl.io. IN A 172.16.254.22 ns2.cjl.io. IN A 172.16.253.30 www.cjl.io. IN A 172.16.254.1 web IN CNAME www bbs IN A 172.16.254.2
6.配置反解的解析库文件16.172.zone
$TTL 86400 $ORIGIN 16.172.in-addr.arpa. @ IN SOA ns1.cjl.com. admin.cjl.com. ( 2017052901 1H 10M 1W 1D ) IN NS ns1.cjl.com. 22.254 IN PTR ns1.cjl.com. 30.253 IN PTR ns2.cjl.com. 1.254 IN PTR www.cjl.com. 2.254 IN PTR bbs.cjl.com.
注意
(1)” com “后面的 ” . “符号为必须,不可省略; 分号 ; “后为注释内容
(2) TTL可以从全局继承,TTL : Time to Live,缓存时长,此项内容可省略,如果TTL值未明确单位的话,默认单位为秒
(3) @ 可用于表示当前域名
(4) 相邻的两个资源记录的name相同时,后续的可以省略
(5) 同一个名字可以通过多条记录定义多个不同的值,此时DNS服务器会以轮调方式响应并解析
(6)对SOA记录而言:
当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字:@ 符号
当前区域管理员的邮箱地址,地址中不能使用@符号,一般用 ” . “符号替换,例如:linuxedu.magedu.com.
括号内的内容:(主从服务器协调属性的定义以及否定答案统一的TTL值)
(7)对NS记录而言:
任何一个NS记录后面的服务器名字都应该在后续有一个A记录
(8)对MX记录而言:
一个区域内,MX记录可以有多个,但每个value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小表示优先级越高
(9)对A或AAAA记录而言:
为了避免用户写错名称而无法得到正确答案,可通过泛域名解析进行解析至某特定地址,如:
*.achudk.com. IN A 1.1.1.4
achudk.com. IN A 1.1.1.4
(10)对PTR记录而言:
正解与反解是两个不同的解析库文件,所以二者没有任何关系,这里将正解的一级域设置为.io. ,反解的一级域设置为.com. ,以示区分。网络地址和后缀可省略,但主机地址不可省且需要反过来写。
权限及属组修改:
chgrp named /var/named/cjl.io.zone chmod o= /var/named/cjl.io.zone
7.检查语法错误:
named-checkzone ZONE_NAME ZONE_FILE named-checkconf
8.让服务器重载配置文件和区域数据文件
rndc reload #或 systemctl reload named.service
9.测试A号DNS服务器的解析功能是否实现:
测试正解
dig www.cjl.io #查看解析结果,以下为成功示例 ;; ANSWER SECTION: www.cjl.io. 86400 IN A 172.16.254.1
dig bbs.cjl.io #查看解析结果,以下为成功示例 ;; ANSWER SECTION: bbs.cjl.io. 86400 IN A 172.16.254.1
测试反解
dig -x 172.16.254.1 #查看解析结果,以下为成功示例 ;; ANSWER SECTION: 1.254.16.172.in-addr.arpa. 86400 IN PTR www.cjl.com.
dig -x 172.16.254.2 #查看解析结果,以下为成功示例 ;; ANSWER SECTION: 1.254.16.172.in-addr.arpa. 86400 IN PTR bbs.cjl.com.
相关文章推荐
- BIND服务基础及DNS Master服务器配置步骤
- DNS服务原理及bind98的应用
- DNS服务器之BIND基础服务部署
- DNS服务之bind安装配置与应用
- 【Linux】DNS服务-BIND基础配置(二)
- DNS服务基础(二)之Bind
- BIND服务基础及DNS Master服务器配置步骤
- 基础服务---BIND10 安装
- DNS服务在企业网络中的应用(二)
- 移植DNS服务bind到MPC8377E开发板
- 应用基础架构虚拟化实现公安系统服务优化
- DNS域名服务 BIND (中)——BIND配置文件
- linux通过内部DNS为外网用户提供服务在企业中的应用
- Bind9的dns解析服务
- Windows Server 2003 服务应用大全之DNS服务使用详解
- 在CentOS6.2下安装DNS服务软件Bind并快速配置简单实例
- DNS服务在企业网络中的应用(三)
- DNS服务(bind9)配置过程(经典)
- DNS服务Bind 9再出状况 全球网络面临威胁
- 系统架构师-基础到企业应用架构-服务层