CentOS6.7搭建部署DNS服务 (详解主配置文件)
-DNS服务器的基本原理
域名简介:使用tcp/udp协议,默认使用53端口号
默认情况下,客户端发起的查询请求都是用UDP/53查询的。
默认情况下,从从服务器到主服务器传输数据用的是TCP/53。
tcp/953 :rndc监听到这个端口,远程域名服务控制器。
全球唯一的,所有的域名都是以“.”(根)开始的。
顶级域名:
(1) 国家顶级域名(cn—中国、uk—英国、us—美国等) (2) 国际顶级域名(.int)
(3) 通用顶级域名(.com—商业组织、.edu—教育机构、.org—非赢利性组织、.gov—政府部门、.biz—公司或企业)
二级域名:
(1) 类别域名(ac—科研机构、com—商业组织、edu—教育机构、gov—政府部门、net—网络服务机构、org—各 种非赢利组织) (2) 行政域名(bj—北京、sh—上海、nm—内蒙等)
组织内域名:
当一个组织拥有一个域的管理权后,它可以决定是够需要进一步划分层次。例如:CERNET网络中心将“.edu” 域划分为多个三级域,将三级域名分配给各个大学与教育机构。同时某大学也可以决定是否将自己得到的三级域划 分为多个四级域,将四级域分配给下属部门或主机。
在DNS服务器关系方面,只有上层DNS服务器知道下层服务器的位置,下层不知道上层位置。
查询过程:根域名服务器在全球的数量:逻辑上有13台,实际上有386台。
当客户端不知道DNS服务器位置,先查询计算机中的hosts文件,hosts文件中没有,查找本地DNS服务器的缓存(DNS服务器缓存由设置人员设置时间,最多为1天),缓存上没有,查找服务器数据文件,DNS服务器上的数据文件也没有,本地DNS服务器会直接请求根服务器,根服务器告诉你负责这个区域服务器的位置,然后,由请求的那个DNS服务器来查找,根服务器只告诉你该找那台服务器。直到查询到那个位置的DNS服务器,然后那个DNS服务器直接再交给管理查询客户端的那个DNS服务器!所以,配置DNS服务器要配置好根服务器的位置。
两种查询:
递归查询:本地请求,由我们所请求的DNS服务器(本地直接管理)直接返回的答案,叫权威答案。只需发送一次请求得到最终结果!!!
迭代查询:需要自己去发出n次查询才能得到结果的。
dns从数据存储来说是分布式的,从域名本身来说是树状结构。
dns工作在应用层,他是一个服务。
DNS服务器两种功能
正向解析:从FQDN(全称域名)====>IP
一个域名可以有多个IP
反向解析:从IP===>FQDN
一个IP可以有多个域名
注:DNS的高级功能,DNS轮循是指将相同的域名解析到不同的IP,随机使用其中某台主机的技术,该项技术可以智能的调整网站的访问量到不同服务器上,减轻网站服务器的压力,实现负载匀衡。
正反向解析是完全不同的两颗解析树,不必在同一个服务器上,正反向区域记录也没必要完全对应
在DNS服务器的缓存表中,每一个对应关系都称为一个 记录“record”。而记录本身所实现的功能不同,我们称为记录类型,
常用六种资源记录(RR):
1.A(addres)记录:正向解析的记录,将域名转换成IP地址的记录
A资源记录语法格式:完整主机名(FQDN) IN A IP地址
2. 叫指针记录(PTR):反向解析的记录,将IP地址转换成域名的记录
这两类记录水火不相容,它们是不能放在同一个地方的。必须分开存放。
PTR资源记录语法格式: IP地址 IN PTR 主机名(FQDN)
3. SOA(起始授权机构):该记录表明DNS名称服务器是DNS域中的数据表的信息来源,该服务器是主机名字的管理者,创建新区域时,该资源记录自动创建,且是DNS数据库文件中的第一条记录。一个区域解析库有且仅有一个SOA记录,且必须为解析库的第一条记录
SOA资源记录语法格式:
区域名(当前) 记录类型SOA 主域名服务器(FQDN) 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
SOA资源记录字段: 主域名服务器 :区域的主DNS服务器的FQDN
管理员:管理区域的负责人的电子邮件。在该电子邮件名称中使用英文句号“.”代替at符号“@”。
4. NS记录:是用来做授权的,向下授权。用于标识某一个区域内最高长官是谁,长官是谁。
在一个区域内只能有一个soa(最高长官),而ns可以有多个。
NS资源记录语法格式: 区域名 IN NS 完整域名(FQDN)
5.MX记录(邮件交换器):它规定了域名的邮件服务器要么处理,要么向前转发有关该域名的邮件.处理邮件是指将其传送给其地址所关联的个人,向前转发邮件是指通过SMTP协议将其传送给其最终目的地.为了防止邮递路由,MX记录除了邮件交换器的域名外还有一个特殊参数:优先级值.优先级值是个从0 到99的无符号整数,它给出邮件交换器的优先级别.,一般只出现在正向解析记录里面的。(数值越小,优先级越大)
MX记录记录了发送电子邮件时域名对应的服务器地址。电子邮件发送使用的是SMTP应用层协议。
例如要发送邮件到abc@qq.com的时候,其中的域名部分为qq.com,MX记录描述了发送电子邮件时应该发往那个服务器。
可以使用dig命令查询MX记录:dig qq.com mx
MX资源记录语法格式:
区域名 IN MX 优先级(数字) 邮件服务器名称(FQDN)
6.CNME:别名记录,也被称为规范名字:这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“r0WSPFSx58.”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。 这两个别名的全称
CNAME资源记录语法格式: 别名 IN CNAME 主机名
区域与域:
域(domain):逻辑概念: 是一个专业术语 它是用来划分和管理一组客户端的.
区域(zone):物理概念。
子域授权:子域授权:其实就是将一个比较大的域再分割成小区域,每个小区域可以交由一组或多组服务器管理,这些服务器只解析其管辖范围内的域名,超出其范围的解析请求一般会转发给父域或直接转发给根域。
正向区域的子域授权:使用胶水记录(glue record),也就是在父域中添加一条NS记录和一条A记录即可。
DNS服务器类型
主DNS服务器(primary name server):它是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。
辅助DNS服务器(secondary name server):它可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为"区文件复制"。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。
高速缓存服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。
转发服务器:是指当本DNs服务器无法对DNs客户端的解析请求进行本地解析时,可以允许本地DNs服务器转发DNS客户端发送的查询请求到其他的DNs服务器。此时本地DNs服务器又称为转发服务(不缓存数据)。
配置基本DNS服务器
一台域名服务器可以解析多个域名。.
在Linux中用来提供DNS服务的软件包叫"bind"-------名称服务器进程,安装后的这个进程叫'"named",这个进程提供的协议叫"DNS"。
安装DNS需要的软件包-----------前两个是默认安装上的,使用yum安装。
bind-utils------客户端工具
bind-libs-------通用库
bind------主软件包
bind----chroot---伪根目录。
caching-nameserver-----提供主配置文件(named.conf)的模板
DNS文件
/etc/named.conf --->bind进程的工作属性,以及区域定义。
/etc/rndc.key --->远程域名服务控制器,(秘钥文件)
配置信息:/etc/rndc.conf
/var/named/ --->区域数据文件
/etc/rc.d/init.d/named --->脚本文件, 控制服务启动关闭:
start :启动服务
stop :关闭服务
restart :重启服务
reload :重新读取配置文件和数据文件,不用停止服务
configtest :测试配置文件是否有语法错误。
/var/named/ :
named.ca : 存放的是13台根域名服务器
named.localhost : 专门将localhost解析为127.0.0.1
named.loopback : 专门将127.0.01解析为localhost
type字段指定区域的类型,对于区域的管理至关重要,一共分为六种:
Master:主DNS服务器:拥有区域数据文件,并对此区域提供管理数据
Hint:根域名服务器的初始化组指定使用线索区域hint zone,当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表。如果没有指定class IN的线索区域,服务器使用编译时默认的根服务器线索。不是IN的类别没有内置的默认线索服务器。
Slave:辅助DNS服务器:拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据。
Stub:stub区域和slave类似,但其只复制主DNS服务器上的NS记录而不像辅助DNS服务器会复制所有区域数据。
Forward:一个forward zone是每个域的配置转发的主要部分。一个zone语句中的type forward可以包括一个forward和/或forwarders子句,它会在区域名称给定的域中查询。如果没有forwarders语句或者forwarders是空表,那么这个域就不会有转发,消除了options语句中有关转发的配置。
Delegation-only:用于强制区域的delegation .ly状态。
(1.)配置主程序文件------named.conf
/etc/resolv.conf --->配置自己DNS服务器的指向,自己配置后,指向自己的IP地址!!!
bind的主配置文件/etc/named.comf t他的属主为root。属组为named
options {
listen-on port 53 { 127.0.0.1; }; --->监听在那一个端口(0.0.0.0 :53 监听所有IP地址的53端口),
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 { localhost; }; --->定义只允许谁来查询
recursion yes; --->是否给别人递归请求
dnssec-enable yes; --->
dnssec-validation yes; --->
dnssec-lookaside auto; --->
/* Path to ISC DLV key */ --->
bindkeys-file "/etc/named.iscdlv.key"; --->
managed-keys-directory "/var/named/dynamic"; --->
};
手动编辑完配置文件一定要改组:chown :named /etc/named,conf
该权限:chmod 644 文件名
(2.)创建根域名服务器
使用命令:dig -t NS(名称类型) . (根域名服务器)
然后把查询的结果导入到文件中并改名:dig -t NS . >......(文件路径)
改组...chown :named 文件名
(3.)正向解析文件(A记录)
先是宏定义
$TTL 600 (定义生命周期)
$ORIGIN. (定义当前区域的名称,注意要有.)
语法格式:name(()完整域名) TTL(已定义,省略) IN 资源记录类型 对应数值(IP地址)
(4.)反向解析文件(PTR记录)
语法格式:数值(IP地址) TTL IN 资源记录类型 完整域名
(5.)NS记录文件
语法格式: 域名 TTL IN NS 这个域中DNS服务器的名称(可以有多个)
DNS服务器名称 TTL IN A IP地址
例: ss.com. 600 IN NS ns1.ss.com.
ns1.ss.com. 600 IN A 1.1.1.1
ss.com. 600 IN NS ns2.ss.com.
ns2.ss.com. 600 IN A 1.1.1.2
(6.)MX记录文件:一般只出现在正向解析文件中
语法格式:域名 TTL IN MX 优先级(0-99) 主机名
主机名 TTL IN A IP地址
(7.)SOA记录文件
语法格式:域名 TTL IN SOA 主DNS服务器 管理员的邮箱地址
(
20160116----序列号/版本号(主服务器发生改变时,从服务器检查序列号更新数据,一般只有10位)
20M---刷新时间(从服务器多长时间到主服务器上检查一次数据是否更新)
时间表示:M--分钟 D--天 W--周 H--小时
解析域名: dig -t NS ..... 解析IP:dig -x IP地址
显示查询次序:dig +trace -t A 域名
显示解析过程:dig +trace -t A 完整域名 @ 交给谁去解析
区域传送: dig -t axfr(完全区域传送) 域名 --->得到对方区域内的所有数据缓存
IXFR(增量区域传送) 序列号 --->得到变化后的数据文件,查看产生了几条纪录。
验证语法错误命令:service namad configtest
named-checkconf
配置主从DNS服务器
1.修改主服务器配置文件
options {
directory "/var/named";
allow-recursion { 192.168.1.1; }; --->用于定义递归对象,我只给这个地址的主机递归,可以是网段!(前提自己要查询没有缓存)
};
注意!区域传送可以查到你自己服务器的DNS服务器缓存,并且能判断出dns服务器的解耦,所以,不能让别人都能够传送区域文件。
只能允许自己的从服务器传送数据文件,别人不可以!
可以定义全局,对每个区域都生效
options {
directory "/var/named";
allow-transfer { 172.168.1.12; }; --->用于定义允许谁发起递归传送数据请求
allow-recursion { 192.168.0.0; };
};
也可以只定义某个区域(根区域不需要规定!)
zone "sun.com" IN { type master;
file "named.sun";
allow-transfer { 172.168.1.12; }; -->用于定义允许谁发起递归传送数据请求
};
zone "1.168.192.in-addr.arpa" IN { type master;
file "named.1";
allow-transfer { 172.168.1.12; }; -->用于定义允许谁发起递归传送数据请求
};
本地区域不需要传送,所以禁止传送数据(根区域不需要规定!)
zone "localhost" IN { type master;
file "named.localhost";
allow-transfer { none; }; -->本地区域文件不需要传送,所以禁止!
};
2.修改从服务器配置文件
从主dns服务器上复制文件:scp 目标IP地址 : 文件路径 要放到那个地方
1.1 安装bind服务
1.2 /var/named/slaves/ : 同步主dns服务器的文件放在这里
1.3 编辑从服务器主配置文件
zone "sun.com" IN { type slave; --->类型改为从服务器
masters { 192.168.1.1; }; ---> 指向主服务器是哪一个
file "slaves/named.sun"; --->文件路径改为slave目录下的
allow-transfer { none; }; --->不需要别人从我这里请求区域文件传送
};
注意!这里可以正反向都为从服务器,可以正向为主,反向为从,也可以反向为主,正向为从。
DNS视图
智能DNS:能够根据客户端来源所属的网络,进行判断,并且返回给一个我们事先定义好的IP地址。
视图(View):形成脑裂,不同网段IP解析不同的服务器地址!
注意:一旦定义了视图,那么所有区域都必须定义在视图中
根区域只需要定义在需要递归的视图中就可以了
主配置文件格式:
options {
directory "/var/named";
};
view dianxin {
match-clients {192.168.1.2;}; :只要是这个网址的客户端来解析,解析的配置文件是sun1.com
zone "sun.com" IN { type master;
file "sun1.com";
};
};
view wangtong {
match-clients {any;}; :只要不是上面定义的IP地址 ,都给他下面定义的配置文件sun2.com
zone "sun.com" IN {
type master;
file "sun2.com";
};
};
若是想再重新定义一个新的域名,只需要在每个view中再添加记录就可以了。别忘了创建解析文件!
网上免费的智能DNS:www.dns.la DNSPod
CentOS6.7搭建部署DNS服务 (详解主配置文件)的更多相关文章
- CentOS6.7搭建部署FTP服务 (详解主配置文件)
FTP传输 三种解析: username -->UID :/etc/passwd 将用户名转换成UID的库. hostname---> IP :DNS服务,/et ...
- CentOS6.7搭建部署DHCP服务 (详解主配置文件)
DHCP服务 dhcp:动态主机配置协议.从bootp演变而来,引进了租约.续租功能,成为了现在的DHCP. 需要就分配,不需要就回收. 工作过程: 1.当获得地址是,有租约期限,当你关机时,IP地址 ...
- 使用BIND搭建内部DNS服务
...
- DNS服务详解
DNS服务 目录: 一.DNS原理 二.DNS服务的安装与配置 三.DNS信息收集 一.DNS原理 1.hosts文件与DNS服务器 1.1hosts文件 目录:C:\WINDOWS\system32 ...
- DNS解析原理与Bind部署DNS服务
DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...
- 部署DNS服务
DNS,全称Domain Name System,即域名解析系统. DNS帮助用户在互联网上寻找路径.在互联网上的每一个计算机都拥有一个唯一的地址,称作"IP地址"(即互联网协议地 ...
- Centos 搭建named dns服务无法解析外网地址
搭建了DNS服务器来解析自定义的域名,但是在遇到非自定义的域名时,不会去自动解析.使用nslookup 会提示 ** server can't find xxxx: NXDOMAIN 网上找了说要配置 ...
- Linux环境下部署svn服务详解
说明 环境: 操作系统:centos 8.0 IP:39.100.228.13 安装 用ROOT账号登录,在控制台执行以下命令,一直默认安装就好可以了. [root@localhost ~]#yum ...
- CentOS6.7安装部署Nginx(详解主配置文件)
keepalived + nginx :实现高可用 nginx: web服务器 反向代理,也支持缓存(缓存在磁盘上) 支持FastCGI tengine:淘宝官方在nginx原有的代码的基础上对n ...
随机推荐
- elasticsearch 基于 rollover 管理按时间递增的索引 合并 删除
https://www.elastic.co/cn/blog/managing-time-based-indices-efficiently Anybody who uses Elasticsearc ...
- 【Activiti学习之八】Spring整合Activiti
环境 JDK 1.8 MySQL 5.6 Tomcat 8 idea activiti 5.22 activiti-explorer是官方提供的一个演示项目,可以使用页面管理Activiti流程.ac ...
- Docker底层基石namespace与cgroup
Docker底层基石namespace与cgroup 容器本质上是把系统中为同一个业务目标服务的相关进程合成一组,放在一个叫做namespace的空间中,同一个namespace中的进程能够互相通 ...
- jvm jdk jre 关系
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...
- Python【每日一问】26
问: [基础题]:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数 [提高题]:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第 10 次落地时,共经过多 ...
- 连上Microbit板
我们是在自己电脑上,用Mu编程,最终程序要烧录到Microbi板子的控制芯片中去,还记得这款芯片是哪家公司生产的?是多少位的?呵呵. 因此,我们要把板子和电脑连起来,用常见的一大一小的USB线就可以了 ...
- IDEA中Tomcat部署时war和war exploded区别
原理说明 war模式:将WEB工程以包的形式上传到服务器 :war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器: 含义解释 war模式这种可以称之为是发布模式,看名字也知道, ...
- Windows docker k8s asp.net core
在上一篇文章 Ubuntu 18 Kubernetes的Install and Deploy 我们在ubuntu在部署了k8s集群, 今天来看看windows下怎么搞. 主要点有: 1) window ...
- xcode红色文件夹或文件解决方法
文件夹或文件变红是找不到文件导致,解决方法如下: 选中红色的文件或者文件夹,在最右边出现菜单里面有个Location,下一行有个文件夹按钮,点击选择正确的文件路径或者文件就可以了.
- mybatis插入数据后返回自增主键ID详解
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...