一、DNS理论知识
1.DNS服务器概念
DNS全称为Domain Name System,即域名系统,其作用就是将域名解析为IP地址。
2.DNS相关概念
分层式管理结构。DNS利用树形目录结构,将主机名的管理分配给不同的层级,这样可以实现更加快速的完成主机名的查找, 修改主机名解析时也更加方便。
域:
TLD:Top Level Domain (顶级域名)
组织域:.com, .org, .net, .edu,.gov,.mil,.cc,…
国家域:.cn, .us, .tw, .iq,…
反向域: .in-addr-arpa
完整的域名 www.baidu.com.
. 根域 全球一共13个根域
.com 超级域,一级域
.baidu 二级域
www 主机名
3.DNS服务器解析
资源记录:rr(resource record)
有类型的概念;用于此记录解析的属性
- SOA记录:起始授权记录,一个区域文件只能有一个
- A记录:用来指定主机名(或域名)对应的IP地址记录。(AAAA ipv6)
- CNAME记录:别名解析(域名)
- NS记录:域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
- MX记录:邮件交换记录,指向邮件服务器
- PTR记录:反向DNS记录,A记录的反向
- TTL值:生存时间,DNS记录在DNS服务器上缓存时间
4.DNS服务器原理
- 客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
- 当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
- 如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
- 本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
- 重复第四步,直到找到正确的纪录。
- 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
DNS的两种查询机制:递归和迭代
5. DNS查询顺序
本地hosts文件
本地DNS缓存
本地DNS服务器
发起迭代查询
6.DNS服务器端口 :53
7.DNS服务器类型
主DNS服务器:为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。
从DNS服务器 :主服务器DNS长期无应答,从服务器也会停止提供服务。
主从区域之间的同步采用周期性检查+通知的机制,从服务器周期性的检查主服务器上的记录情况,一旦发现 修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录。
缓存服务器:服务器本身不提供解析区域,只提供非权威应答。不负责解析,仅为加速,不需要注册
转发服务器:当DNS服务器的解析区域(包括缓存)中无法为当前的请求提供权威应答时,将请求转发至其 它的DNS服务器,此时本地DNS服务器就是转发服务器。
二、实际操作
1.DNS服务器搭建,正反向解析
安装DNS服务器软件:
yum install bind-chroot
分为四步骤:
0)#关闭防火墙和selinux
1)#主配置文件:/etc/named.conf
2)#区域配置文件:/etc//etc/named.rfc1912.zones:用来保存域名和IP地址对应关系
3)#数据配置文件目录/var/named,用来保存域名和IP地址对应关系的所在位置
- 关闭防火墙和selinux
systemctl stop firewalld
setenforce 0 (可用getenforce来查看selinux的状态) - 修改主配置文件
vi /etc/named.conf
options {
#listen-on port 53 { any; }; #服务器上的所有IP地址可提供DNS域名解析
#listen-on-v6 port 53 { ::1; };
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 { any; }; #允许所有人对本服务器发送DNS请求
可以用 named-checkconf 命令检测named.conf文件是否出错
}
- 修改区域配置文件
#用来保存域名和IP地址对应关系的所在位置,在这个文件中,定义了域名与IP地址解析规则保存的文件位置以及服务类 型等内容,而没有包含具体的域名、IP地址对应关系等信息。服务类型有三种,分别为hint(根区域)、master(主区 域)、slave(辅助区域),其中常用的master和slave指的就是主服务器和从服务器。
vi /etc/named..rfc1912.zones
zone "yuan.com" IN {
type master; #服务类型
file "yuan.com.zone"; #域名与IP地址解析规则保存文件
allow-update { none; }; #允许哪些客户机动态更新解析信息
}; #正向解析
zone "192.168.192.in-addr.arpa" IN { #表示为192.168.192.0/24网段的反射解析区域 #此行IP反着写比如原为192.168.1.0>,在这则写为1.168.192
type master;
file "192.168.192.arpa";
allow-update { none; };
}; #反向解析
用 named-checkzone来检测zone文件的配置是否正确
- 数据配置文件目录
从/var/named目录中复制一份正向解析的模板文件(named.localhost),然后把域名和IP地址的对应数据填写数据配置文件中并保存。在复制时记得加上-a参数,这可以保留原始文件的所有者、所属组、权限属性等信息。
- 配置正向解析数据文件
cd /var/named
cp -a named.localhost yuan.com.zone
vi yuan.com.zone
$TTL 1D #生存周期为1天 @
IN SOA yuan.com. root.yuan.com.( #@当前的域名 #授权信息开始 #DNS区域的地址 #域名管理员邮箱不要用@符号
11 ; serial #更新序列号
1D ; refresh #更新时间
1H ; retry #重试延时
1W ; expire #失效时间
3H ) ; minimum #无效解析记录时间
NS ns.yuan.com. #域名服务器记录
ns IN A 192.168.192.133 #地址记录ns.yuan.com.
IN MX 10 mail.yuan.com. #邮箱交换记录
mail IN A 192.168.192.133 #地址记录mail.yuan.com.
www IN A 192.168.192.133 #地址记录www.yuan.com.
news IN A 192.168.192.133 #地址记录news.yuan.com.
- 配置反向解析数据文件
cd /var/named
cp -a named.localhost yuan.com.zone
vi yuan.com.zone
$TTL 1D
@ IN SOA yuan.com. root.yuan.com. (
11 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.yuan.com.
ns A 192.168.192.133
133 PTR ns.yuan.com. #PTR为指针记录,仅用于反向解析中
133 PTR mail.yuan.com.
133 PTR www.yuan.com.
133 PTR news.yuan.com.
- 启动服务及测试
systemctl restart named #重启服务
yum install bind-utils -y #bind-utils为客户端 测试dns使用
接下来修改网络配置文件,配置DNS客户
vi /etc/resolv.conf
search localdomain
nameserver 192.168.192.133
#注意:测试前必须先修改网络配置文件 防止出现如下错误:
测试:
nslookup
> www.yuan.com
Server: 192.168.192.133
Address: 192.168.192.133#53
> news.yuan.com
Server: 192.168.192.133
Address: 192.168.192.133#53
> mail.yuan.com
Server: 192.168.192.133
Address: 192.168.192.133#53
> mail.yuan.com
Server: 192.168.192.133
Address: 192.168.192.133#53
[root@localhost etc]# nslookup
> server 192.168.192.133
Default server: 192.168.192.133
Address: 192.168.192.133#53
2.DNS主从服务器配置
1.Linux从服务器配置
#在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作 用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率
#测试需要两台服务器!主192.168.192.133,从192.168.192.223
- 修改主服务器的区域配置文件
#在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序
vi /etc/named.rfc1912.zones
zone "yuan.com" IN {
type master;
file "yuan.com.zone";
allow-update { 192.168.192.223; };
};
zone "192.168.192.in-addr.arpa" IN {
type master; file "192.168.192.arpa";
allow-update { 192.168.192.223; };
};
systemctl restart name #重启服务
- 修改从服务器的区域配置文件
vi /etc/named.rfc1912.zones
zone "yuan.com" IN {
type slave;
masters { 192.168.192.133; };
file "slave/yuan.com.zone";
};
zone "192.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.192.133; };
file "slave/192.168.192.arpa";
};
systemctl restart name #重启服务
- 检验解析结果
当从服务器的DNS服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。随后修改从服务器的网络数,把DNS地址参数修改成192.168.192.133即可使用从服务器自身提供的DNS域名解析服务。最后就可以使用nslookup命令顺利看到解析结果了。
vi /etc/resolv.conf
search localdomain
nameserver 192.168.192.133
nameserver 192.168.192.223
cd /var/named/slaves/
ls
192.168.192.arpa yuan.com.zone
nslookup
> www.yuan.com
Server: 192.168.192.133
Address: 192.168.163.133#53
> 192.168.192.133
Server: 192.168.192.133
Address: 192.168.192.133#53
133.192.168.192.in-addr.arpa name = www.yuan.com.192.168.192.in-addr.arpa.
133.192.168.192.in-addr.arpa name = ns.yuan.com.
133.192.168.192.in-addr.arpa name = news.yuan.com.
2.Windows从服务器配置
- 修改主服务器的区域配置文件
vi /etc/named.rfc1912.zones
zone"yuan.com" IN {
type master;
file "yuan.com.zone";
allow-update { 192.168.192.223; 192.168.192.129; };
};
zone "192.168.192.in-addr.arpa" IN {
type master;
file "192.168.192.arpa";
allow-update { 192.168.192.223; 192.168.192.129; };
};
- Windows设置
- 安装DNS服务器
“ 开始 ” -->” 管理工具 ” -->“ 服务器管理器 ”–>右击“ 角色 ” -->“ 添加角色 ”–>” 下一步
” -->选择“ DNS服务器 ” - 新建正反向区域
1)正向查找区域
右击“ 正向查找区域 ” --> 新建区域” -->“ 下一步” -->选择“辅助区域 ” -->写入主DNS服务器域名 -->写入主DNS服务器的IP -->完成
2)反向查找区域
右击“ 反向查找区域 ” -->“新建区域 ” -->“ 下一步”选择“ 辅助区域 ” -->选择“IPv4 反向查找区域 ” -->写入主DNS服务器的IP前三部分 -->写入主DNS服务器IP -->完成
- Windows测试
在主DNS服务器中重启服务:systemctl restart named
在Windows中测试:
开始–>cmd
C:\Users\asus>nslookup
>server 192.168.192.133 #设置默认服务器
默认服务器:[192.168.192.133]
Address:192.168.192.133
192.168.192.133
> 192.168.192.133
服务器: [192.168.192.133]
Address: 192.168.192.133
名称: news.yuan.com
Address: 192.168.192.133
> www. yuan.com
服务器: [192.168.192.133]
Address: 192.168.192.133
名称: www.yuan.com
Address: 192.168.192.133
扩展测试:
1.停掉Linux的主从或主服务器
2.停掉Linux的从服务器