多区域 DNS 服务,子域授权,缓存 DNS及Split 分离解析的原理和实现
DNS 服务器的功能:
正向解析:根据注册的域名查找其对应的 IP 地址
反向解析:根据 IP 地址查找对应的注册域名(不常用)
DNS(域名解析)服务器:解析域名--->将域名解析为 IP 地址
例如:客户端访问 Web 网站:www.qq.com ----> DNS ----> 腾讯的 Web 服务器 Full Qualified Domain Name(FQDN),完全合格主机名,以点结尾
站点名.域名后缀
站点名...二级域.一级域
域名分级:
根域 . 一级域 .com .cn .us .tw .kr .hk
二级域 .com.cn .net.cn .org.cn .edu.cn
三级域 .yid.com.cn .haha.com.cn .xixi.com.cn
常见的顶级(一级域名)
国家/地区域: .cn、.us、.kr、.hk、.tw ...
组织域: .com、.net、.edu、.org、.gov、.mil ...
BIND 域名服务
BIND(Berkeley Internet Name Daemon:伯克利大学 Internet 域名服务)
官方站点:https://www.isc.org/
安装包名称:bind:域名服务包 ;bind-chroot:提供虚拟根支持,笼环境
系统服务:named
默认端口:TCP/UDP 53
运行时的虚拟根环境:/var/named/chroot/ #运行时,所有的操作都在虚拟
根下
主配置文件: /etc/named.conf #设置本机负责解析的域名是什么
地址库文件: /var/named/ #主机名与 ip 地址的对应关系
搭建基本的 DNS 服务
服务端: 1.安装软件包 、
[root@svr7 ~]# yum -y install bind bind-chroot
2.修改配置文件
[root@svr7 ~]# vim /etc/named.conf options { //listen-on port 53 { 127.0.0.1; }; #默认监听 127.0.0.1 的 53 端口,该行删除或注释 directory "/var/named"; #指定地址库文件存放路径 //allow-query { localhost; }; #允许访问的主机,默认为本机,该行删除或注释 }; zone "yid.cn" IN { #指定本机负责解析的域名 type master; #指定本机为权威主 DNS 服务器 file "yid.cn.zone"; #指定地址库文件为 yid.cn.zone }; [root@svr7 ~]# named-checkconf #检查配置是否正确
3.建立地址库文件 yid.cn.zone
DNS 资源记录:
SOA:起始授权
NS:名称服务器 A:将名称解析为 ip 地址
PTR:将 ip 地址解析为名称
MX:邮件交换器
CHAME:设置别名
[root@svr7 ~]# cd /var/named/ [root@svr7 named]# cp -p named.localhost yid.cn.zone #权限属性不变拷贝 [root@svr7 named]# ls -l yid.cn.zone -rw-r----- 1 root named 152 6 月 21 2007 yid.cn.zone #必须保证属组是 named [root@svr7 named]# vim yid.cn.zone $TTL 1D #DNS 解析的有效时间 1 天 @ IN SOA .... #@表示本域名,这段不修改 yid.cn. NS svr7.yid.cn. #声明 yid.cn.域名的 DNS 服务器为 svr7.yid.cn. svr7 A 192.168.4.7 #指定 svr7.yid.cn.的 ip 地址为 192.168.4.7 www A 1.1.1.1 ftp A 2.2.2.2
4.重起 named,设置开机自启动
[root@svr7 named]# systemctl restart named [root@svr7 named]# systemctl enable named
5.客户端访问测试:
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf [root@pc207 ~]# nslookup www.yid.cn
多区域 DNS 服务(多写几个 zone)
配置文件/etc/named.conf 新增如下内容:
zone "qq.com" IN { type master; file "qq.com.zone"; }; [root@svr7 named]# vim qq.com.zone qq.com. NS svr7 svr7 A 192.168.4.7 www A 3.3.3.3 ftp A 4.4.4.4
基于 DNS 域名的负载均衡
[root@svr7 named]# vim qq.com.zone qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 #DNS 服务器会随机从 3 个 IP 中选择一个提供,后面的 域名可以省略 A 192.168.4.12 A 192.168.4.13
泛域名解析:以*匹配所有
[root@svr7 named]# vim qq.com.zone qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 * A 1.2.3.4
有规律的泛域名解析
函数: $GENERATE 生成连续范围的数字
[root@svr7 named]# vim qq.com.zone qq.com. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.11 ftp A 4.4.4.4 * A 1.2.3.4 $GENERATE 1-50 web$ A 192.168.10.$
DNS 的子域授权
父域 :www.yid.cn ,由 svr7 服务器 192.168.4.7 解析
子域 :www.bj.yid.cn ,由 pc207 服务器 192.168.4.207 解析 虚拟机 A:子域授权
[root@svr7 named]# vim yid.cn.zone #指定子域的 DNS 服务器 yid.cn. NS svr7 bj.yid.cn. NS pc207.bj svr7 A 192.168.4.7 pc207.bj A 192.168.4.207 [root@svr7 named]# systemctl restart named
虚拟机 B:搭建子域 DNS 负责解析 bj.yid.cn 域名
修改配置文件/etc/named.conf
options { directory "/var/named"; }; zone "bj.yid.cn" { type master; file "bj.yid.cn.zone"; }; [root@pc207 named]# vim bj.yid.cn.zone bj.yid.cn. NS pc207 pc207 A 192.168.4.207 www A 11.12.13.14
测试:
[root@svr7 named]# nslookup www.bj.yid.cn 192.168.4.7 Server: 192.168.4.7 Address: 192.168.4.7#53 Non-authoritative answer: #非权威解答 Name: www.bj.yid.cn Address: 11.12.13.14
递归查询: 首选 DNS 服务器到相应其他 DNS 服务器上询问,将最终结果带回(客户端与首 选 DNS 服务器交互)
迭代查询: 每一个 DNS 服务器告知首选 DNS 服务器下一个 DNS 服务器地址(首选 DNS 服务 器与其他 DNS 服务器交互)
递归查询是默认开启的
通过设置/etc/named.conf 开关
recursion yes/no;
缓存 DNS
作用:加速解析过程,让客户端最快得到结果
主要适用环境:互联网出口带宽较低的企业局域网;ISP 服务商的公共 DNS 服务器
解析记录来源:
全局转发:将请求转发给指定的公共 DNS(其他缓存 DNS),请求递归服务
根域迭代:依次向根、一级、二级......域的 DNS 服务器迭代
配置:在/etc/named.conf 的 options 下增加 forwarders { 176.19.0.26; }; #添加转发器,176.19.0.26 是公共 DNS 的 IP 地址
Split 分离解析:
当收到客户机的 DNS 查询请求的时候能够区分客户机的来源地址
为不同类别的客户机提供不同的解析结果(IP 地址)
当不同类别的客户机请求解析同一个域名时,得到的解析结果不同
适用场景:
访问压力大的网站,购买 CDN 服务商提供的内容分发服务:
在全国各地、不同网络内部部署大量镜像服务节点
让客户端访问网络中最近/最快的服务器
方法:BIND 的 view 视图
根据源地址集合将客户机分类:
不同客户机获得不同结果
客户机分类得当(所有的客户端都要找到对应的分类:兜底)
由上到下匹配,匹配即停止
所有的 zone 都必须在 view 字段里面
格式:
view "nsd" { match-clients { 192.168.4.207; } #匹配客户端的地址 zone "yid.cn" { ...... 地址库 1; }; }; view "abc" { match-clients { any; } #any 兜底 zone "yid.cn" { ...... 地址库 2; }; };
配置 ACL 队列库:
acl myip { IP1;IP2;... };
修改配置文件:
[root@svr7 /]# vim /etc/named.conf acl myip { 192.168.4.207; 192.168.4.10; 192.168.4.1; 192.168.4.123; }; view "nsd" { match-clients { myip }; zone "yid.cn" { type master; file "yid.cn.nsd"; }; }; view "abc" { match-clients { any; }; zone "yid.cn" { type master; file "yid.cn.abc"; }; };
配置地址库文件
[root@svr7 /]# tail -3 /var/named/yid.cn.nsd yid.cn. NS svr7 svr7 A 192.168.4.7 www A 192.168.4.100 [root@svr7 /]# tail -3 /var/named/yid.cn.abc yid.cn. NS svr7 svr7 A 192.168.4.7 www A 1.2.3.4
- 使用bind自建DNS服务,实现双DNS服务器主从复制、子域授权、转发、智能解析等效果
- DNS服务基础 特殊解析 DNS子域授权 缓存DNS
- 学习笔记之dns正反向解析区域,主从服务,子域授权,安全
- DNS服务正向、反向解析区域,主/从区域数据库复制,子域授权及基本安全控制
- CenOS6服务管理之DNS-子域授权和区域转发及DNS视图功能实现
- DNS的高级使用、DNS子域授权、split分离解析
- DNS服务基础 、 特殊解析 、 DNS子域授权 、 缓存DNS
- 实现DNS子域授权和分离解析
- DNS--bind 实现主从复制、子域授权、反向区域及区域转发
- DNS服务之反向解析&子域&区域转发
- DNS的解析原理,资源记录类型,主从区域名的配置,转发区域的配置,子域名授权等相关操作
- DNS子域授权和分离解析
- 14、DNS正反向解析、主从复制、子域授权、区域转发 学习笔记
- 基于bind工具实现DNS子域授权、子域父域相互解析
- DNS高级配置原理及配置、子域授权、view智能解析(二)
- DNS服务原理及区域解析库文件配置
- DNS子域授权和DNS分离解析
- DNS高级配置原理及配置、子域授权、view智能解析(二)
- Linux实现的ARP缓存老化时间原理解析
- Linux实现ARP缓存老化时间原理问题深入解析