DNS服务器
1、环境准备:
(1)搭建A服务端
要求:配置永久主机名svr7.tedu.cn
配置eth0永久 IP地址:192.168.4.7/24
使用真机Web服务器作为Yum源
(2)搭建B客户端
要求:配置永久主机名pc207.tedu.cn
配置eth0永久 IP地址:192.168.4.207/24
使用真机Web服务器作为Yum源
2、DNS服务器的功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名,不常用
-
所有 的域名都要点" . "结尾
根域 .
一级域名: .cn .us .kr .jp .tw .hk .......
二级域名: .com.cn .net.cn .org.cn .edu.cn .gov.cn ..
三级域名: .abc.com.cn .nb.com.cn .haxi.com.cn ......
具体的主机名: www.abc.com.cn tts.abc.com.cn ftp.abc.com.cn
- Full Qualified Domain Name,完全合格主机名(FQDN)
由合法的域名与主机名组成
– 系统服务: named
– 默认端口: 53
--软件包 bind //域名服务包 bind-chroot //提供虚拟根支持,牢笼政策
3、安装软件包yum install -y bind bind-chroot
4、修改配置文件:/etc/named.confmv /etc/named.conf /etc/named.conf.bak //备份原始配置文件 vim /etc/named.conf options { directory "/var/named"; #指定地址库文件的位置 }; zone "tedu.cn" IN { #指定本地负责解析的域名 type master; #指定本机为主DNS服务器 file "tedu.cn.zone"; #指定地址库文件名称 };
5、建立地址库文件:/var/named/tedu.cn.zone
注意 文件权限,named用户要有r
cp -p 保持源文件属性不变进行复制
本文件域名没有点结尾,默认补全本文件负责的域名cd /var/named/ #进入到地址库目录 cp -p named.localhost tedu.cn.zone #复制模板文件 ls -l tedu.cn.zone #查看权限 vim tedu.cn.zone #文件开头可保持不变 tedu.cn. NS svr7 #证明DNS服务器主机名 svr7 A 192.168.4.7 #解析DNS服务器主机名对应IP www A 192.168.4.8 ftp A 192.168.4.9
6、重启服务
systemctl restart named
7、修改客户端DNS服务器并测试
echo nameserver 192.168.4.7 >/etc/resolv.conf nslookup www.tedu.cn
8、DNS的特殊解析记录
- 轮询解析:
vim /var/named/tedu.cn.zone www A 192.168.4.11 www A 192.168.4.20 www A 192.168.4.21
- 泛域名解析
vim /var/named/tedu.cn.zone .. .. * A 119.75.217.56
-
特殊的泛域名解析:
stu1.tedu.cn ------》192.168.10.1 stu2.tedu.cn ------》192.168.10.2 stu3.tedu.cn ------》192.168.10.3 stu4.tedu.cn ------》192.168.10.4 ...... stu50.tedu.cn ------》192.168.10.50 内置函数 可以产生连续的数字 $GENERATE vim /var/named/tedu.cn.zone $GENERATE 1-50 stu$ A 192.168.10.$
9、DNS子域授权
父域 www.qq.com
子域 www.bj.qq.com
将客户端B搭建DNS服务,负责bj.qq.com
yum install -y bind bind-chroot
vim /etc/name.conf #建立新配置
options {
directory "/var/named"; #配置文件要以;号结尾
};
zone "bj.qq.com" {
type master;
file "bj.qq.com.zone";
};
vim /var/named/bj.qq.com.zone
.. .. #文件开头不变
bj.qq.com. NS pc207 #本区域负责的FQDN
pc207 A 192.168.4.207
www A 200.0.0.1
重启服务 测试子域
10、在父域上配置子域授权
vim /var/named/qq.com.zone
qq.com. NS svr7
bj.qq.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.2.3.4
重启服务 测试子域授权
nslookup www.bj.qq.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威解答
Name: www.bj.qq.com
Address: 200.0.0.1
* 子域转发:子域可以解析父域
`vim /etc/named.conf #追加写入
zone "qq.com" IN {
type forward; #类型为转发
forwarders { 192.168.4.7; }; #转发给父域的IP地址
};`
11、递归查询:
客户端请求DNS服务器解析域名,DNS服务器与其他DNS服务器询问,最终将查询结果带回来过程
options {
directory "/var/named";
recursion no; #是否启用递归查询
};
迭代查询:
DNS服务器与其他DNS服务器询问过程
12、
缓存DNS服务器,缓存解析记录,加快解析速度
• 方式1:全局转发
– 将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务
• 方式2:根域迭代
– 依次向根、一级、二级......域的DNS服务器迭代
* 配置:
C 主机安装 dns服务 IP 192.168.4.254
cat /etc/resolv.conf
nameserver 202.106.196.115
vim /etc/named.conf
options {
directory "/var/named";
forwarders { 202.106.196.115; };
};
重启服务,测试
在A主机上验证
echo nameserver 192.168.4.254 >/etc/resolv.conf
nslookup www.qq.com
13、DNS分离解析(视图解析)
* 能够区分客户机的来源地址
* 为不同类别的客户机提供不同的解析结果(IP地址)
* 当不同的客户端解析同一域名,得到的结果不同
* 为客户端提供网络最近的资源
1、环境及需求
– 权威DNS:svr7.tedu.cn 192.168.4.7
– 负责区域:tedu.cn
– A记录分离解析 —— 以 www.tedu.cn 为例
* 客户机来自解析结果
192.168.4.207---------->192.168.4.100
其他地址 ----------> 1.2.3.4
在配置文件中,通过view视图设置来区分不同客户机,不同地址库
view “视图1” {
match-clients { 客户机地址1; .. ..;}; #匹配第一类客户
zone "tedu.cn" IN {
type master;
file 地址库1;
};
};
view "视图2" {
match-clients { 客户机地址2; .. ..;}; #匹配第二类客户
zone "tedu.cn" IN {
type master;
file 地址库2;
};
};
.. ..
view "视图n" {
match-clients { any; }; //匹配任意地址
zone "目标域名" IN { //同一个DNS区域
type master;
file "地址库n"; //第n份地址库
};
};
注意:
1.所有的客户端到要匹配分类成功
2.由上及下,匹配及停止
3.所有的zone都要在view中
4.view中所有的zone数量必须保持一致
2.建立两个地址库文件tedu.cn.zone与tedu.cn.other写入不同的解析结果
• 环境及需求
– 权威DNS:svr7.tedu.cn 192.168.4.7
– 负责区域:tedu.cn qq.com
– A记录分离解析 —— 以 www.tedu.cn 为例 以 www.qq.com 为例
客户机来自解析结果
192.168.4.207---------->192.168.4.100
其他地址 ----------> 1.2.3.4
options {
directory "/var/named";
};
view "联通" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
};
view "other" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";
};
zone "qq.com" IN {
type master;
file "qq.com.other";
};
};
-----