SERVICE02 - DNS服务基础 特殊解析 DNS子域授权 缓存DNS

搭建DNS服务器的基本步骤 

1. 装包
# yum  -y  install   bind   bind-chroot

2. 配置
主配置文件 /etc/named.conf 【管理哪些区域、地址库文件在哪】
# cat  /etc/named.conf 
options { directory  "/var/named"; };
zone  "tedu.cn"  {
type  master;           
file  "tedu.cn.zone";
};

# named-checkconf 【若配置正确,无任何输出】

 

地址库(区域数据)文件: /var/named/自定义文件名

# vim  /var/named/tedu.cn.zone 【XX站点的IP地址是多少】
.... // 文件头参考 named.localhost 文件的内容复制过来
@          NS svr7.tedu.cn.  (本DNS服务器的FQDN)
www   A 192.168.4.100 (站点的IP地址)
svr7   A 192.168.4.7
pc207   A 192.168.4.207

# named-checkzone  tedu.cn   /var/named/tedu.cn.zone
zone tedu.cn/IN: loaded serial 0
OK

chroot 切换根目录(提供一个伪造的根)【笼环境】
==》把 /var/named/chroot/ 目录当成 / 根目录

一个服务器的IP地址,为它注册多个域名

3. 起服务(在svr7上,!!! 关闭防火墙)
# systemctl  restart  named
客户机测试(在pc207主机上查询DNS ——
1)为客户机指定默认DNS
# nmcli  con  mod  eth0  ipv4.dns  192.168.4.7

# nmcli  con  up  eth0                                    【永久配置】

 

#vim /etc/resolv.conf

nameserver DNS服务器的IP地址                      【临时配置】

2)测试DNS查询结果
# host   www.tedu.cn
www.tedu.cn has address 192.168.4.100       //地址库里有记录的可以查到结果

 

互联网网站访问 www.tedu.cn 场景:
1)浏览器(客户机)—— 192.168.4.7
a. 输入 http://www.teud.cn/ 并回车
b. 浏览器向DNS查询“www.tedu.cn 的IP地址是多少?”
c. 封装一个HTTP访问请求发给目标IP地址 192.168.4.100
d. 收到来自网站服务器提供的网页


2)DNS服务器(新网)—— 192.168.4.7
a. 收到来自客户机的查询请求
b. 检查客户机的问题是否属于自己管理的DNS区域(地址库内查找是否有一条 www 的A类型的记录)
c. 告诉客户机 www.tedu.cn 的IP地址(192.168.4.100)

3)网站服务器  —— 192.168.4.100
付费注册DNS域名  —— 让DNS服务器告诉其他任何客户机“www.tedu.cn 的IP地址是 192.168.4.100”

a. 收到来自浏览器提交的HTTP访问请求
b. 由本机的Web服务程序来处理这个HTTP访问请求
c. 按照浏览器的请求提供相应的网页

DNS轮询(负载均衡) —— 比如百度、网易、……
特点:同一个域名 --> 多个IP地址

SERVICE02 - DNS服务基础 特殊解析 DNS子域授权 缓存DNS
www.tedu.cn  --> 
192.168.4.100 可以承受 10000个用户同时访问
192.168.4.110  +10000并发负载能力
192.168.4.120  +10000并发负载能力

实现DNS轮询的关键:修改所在地址库的解析记录
www   A 192.168.4.100
www   A 192.168.4.110
www   A 192.168.4.120

泛域名解析 
特点:多个域名(后缀相同) --> 同一个IP地址
www.jd.com
或者 jd.com
3w.jd.com

sanw.jd.com

当用户访问一个域名时,只要后缀是正确的,都能够找到正确的网站

实现泛域名解析的关键:修改所在地址库的解析记录
*   A 192.168.4.100  

DNS服务器 :. 根域(上级域)
DNS服务器 :.cn 一级(上级域)
DNS服务器 svr7:tedu.cn 二级(上级域)
www.tedu.cn 192.168.4.100
DNS服务器 pc207:bj.tedu.cn 三级(下级域)
www.bj.tedu.cn 1.2.3.4

亲密/疏远:
属于同一个机构管理的上下级区域,一般称为 父子域

子域授权配置关键(修改父区域地址库)
子域域名.            NS 子DNS的FQDN.  (Fully Qualified Domain Name      完全合格的域名)

子DNS的FQDN.  A 子DNS的IP地址

@       NS      svr7.tedu.cn.
bj.tedu.cn.      NS      pc207.bj.tedu.cn.
pc207.bj.tedu.cn.        A       192.168.4.207


当一台DNS服务器(tedu.cn)收到一个查询非本DNS管辖的域名(www.bj.tedu.cn)的请求时 ——
情况1:未配置子域授权,告诉客户机“not found”
情况2-父子域(递归查询):配置了子域授权,愿意为客户机查询非本机管理的域名  (缓存DNS服务器)

情况3-上下级域(迭代查询):配置了子域授权,不愿意为客户机查询非本机管理的域名,但是会告知客户机应该去问另一个DNS服务器  (有下级子域的权威DNS)

由这个参数决定       recursion  yes | no;     是否是缓存DNS

 

递归查询和迭代查询的区别
(1)递归查询
递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
(2)迭代查询
DNS 服务器另外一种查询方式为迭代查询,DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台DNS 服务器地址,客户机再向这台DNS 服务器提交请求,依次循环直到返回查询的结果为止。

两种过程的示意图:

SERVICE02 - DNS服务基础 特殊解析 DNS子域授权 缓存DNS

缓存DNS服务器 (比如教学环境CentOS真机 192.168.4.254)
1)能正常上网(至少能查询各种域名)
2)客户机(比如pc207)必须能正常访问本DNS

实现过程 —— 
0)简单准备工作
停用与DNS服务冲突的其他服务(dnsmasq)
# pkill  -9  dnsmasq
1)装包 bind  bind-chroot
2)配置(指向可用的公共DNS服务器地址)
# vim  /etc/named.conf
options {  forwarders {  172.40.1.10;  }; };
3)起服务 named

客户机测试:

# host  www.qq.com   192.168.4.254

 

今日重点:
1)理解DNS的作用
2)搭建基本的DNS服务器
3)客户机如何使用指定的DNS
4)缓存DNS怎么部署