• DNS服务器的功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名,不常用
DNS域名的分布式结构 树型结构
所有域名:必须以点结尾 点(根域)
www.qq.com. www.baidu.com.
根域: .
一级域名: .cn .us .kr .hk .tw .jp ......
二级域名: .edu.cn .com.cn .org.cn .net.cn ......
三级域名: NB.com.cn haxi.com.cn xixi.com.cn ......
完全合格的主机名(FQDN): 主机头.域名= www.nb.com.cn
Full Qualified Domain Name
– 主要执行程序:/usr/sbin/named
– 系统服务:named
– 默认端口:TCP/UDP 53
– 运行时的虚拟根环境:/var/named/chroot/
• 主配置文件:/etc/named.conf #主要 设置负责解析的域名
tedu.cn
• 地址库文件:/var/named/ #完整的主机名与IP地址对应关系
www.tedu.cn----->1.2.3.4
构建DNS服务器:
虚拟机A:
1.安装软件包
[root@svr7 ~]# yum -y install bind-chroot bind
bind //域名服务包
bind-chroot //提供虚拟根支持
2.修改主配置/etc/named.conf
[root@svr7 ~]# cp /etc/named.conf /etc/named.bak #先备份,以防改错
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件位置
};
zone "tedu.cn" IN { #指定本机负责解析的域名
type master; #指定本机为主DNS服务器
file "tedu.cn.zone"; #指定地址库文件名称
};注释方法:
1. # 注释一行或行内部分的文字
2. // 注释一行或行内部分的文字
3. /* */ 可连续注释多行文字
]# named-checkconf /etc/nsmed.conf 检查配置语法,无错误无输出
3.建立地址库文件tedu.cn.zone
cp -p:保持权限不变进行复制
原理:让named用户对地址库文件有权限
$TTL 生存时间
SOA 授权信息开始
分号表示部分注释
(本区域名简写)@ IN SOA 区域名。 区域管理邮箱。(
)
NS 域名服务器记录
A 地址记录。仅用于正向解析区域
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# ls
[root@svr7 named]# cp -p named.localhost tedu.cn.zone
[root@svr7 named]# ls -l tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
所有的域名都要写 点 作为结尾
没有点作为结尾,默认补全本地址库负责的域名
tedu.cn. NS svr7 #声明维护tedu.cn.域名服务器叫什么名称
svr7 A 192.168.4.7 #指定DNS服务IP地址
www A 192.168.4.100
ftp A 1.2.3.4
]# named-checkzone 区域名tedu.cn 配置文件tedu.cn.zone #检查配置语法
4.重起named服务
[root@svr7 named]# systemctl restart named
虚拟机B,客户端验证:
1.指定DNS服务器地址
]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试DNS域名解析
]# nslookup www.tedu.cn
#####################################################
访问过程:
客户端---->nslookup www.tedu.cn--->/etc/resolv.conf--->192.168.4.7:53---->named服务----->/etc/named.conf zone "tedu.cn" -----> file "tedu.cn.zone" ----》/var/named/tedu.cn.zone-----》 www A 192.168.4.100
#####################################################
搭建多区域的DNS服务器
在虚拟机A实现DNS服务器构建,负责解析sina.com域名
最终实现客户端解析 www.sina.com----->10.11.12.13
虚拟机A:
1.修改配置文件,添加zone配置
[root@svr7 /]# vim /etc/named.conf
zone "sina.com" IN {
type master;
file "sina.com.zone";
};
2.建立新的地址库文件
[root@svr7 /]# cd /var/named
[root@svr7 named]# cp -p tedu.cn.zone sina.com.zone
[root@svr7 named]# vim sina.com.zone
sina.com. NS svr7
svr7 A 192.168.4.7
www A 10.11.12.13
[root@svr7 named]# systemctl restart named
######################################################
特殊的解析记录
一个域名 ----》 多个不同IP地址
[root@svr7 /]# vim /var/named/sina.com.zone
sina.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.11
www A 192.168.4.12
www A 192.168.4.13
[root@svr7 /]# systemctl restart named
[root@pc207 ~]# ping www.sina.com
[root@pc207 ~]# ping www.sina.com
[root@pc207 ~]# ping www.sina.com
直接以*条目匹配,一般只用在正向区域文件中
[root@svr7 /]# vim /var/named/sina.com.zone
sina.com. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.11
* A 192.168.10.100
sina.com. A 192.168.10.200
[root@svr7 /]# systemctl restart named
客户端验证:
[root@pc207 ~]# nslookup sina.com
[root@pc207 ~]# nslookup www.sina.com
[root@pc207 ~]# nslookup wwwww.sina.com
pc1.sina.com -------> 192.168.20.1
pc2.sina.com -------> 192.168.20.2
pc3.sina.com -------> 192.168.20.3
pc4.sina.com -------> 192.168.20.4
........
pc50.sina.com -------> 192.168.20.50
内置函数:$GENERATE 造数功能:制造连续的数字
[root@svr7 /]# vim /var/named/sina.com.zone
......
$GENERATE 1-50 pc$ A 192.168.20.$
[root@svr7 /]# systemctl restart named
客户端验证:
[root@pc207 ~]# nslookup pc22.sina.com
[root@pc207 ~]# nslookup pc28.sina.com
[root@svr7 /]# vim /var/named/sina.com.zone
sina.com. NS svr7
svr7 A 192.168.4.7
ftp A 192.168.4.110
www A 192.168.4.11
* A 192.168.10.100
sina.com. A 192.168.10.200
$GENERATE 1-50 pc$ A 192.168.20.$
tts CNAME www
[root@svr7 /]# systemctl restart named
客户端测试:
[root@pc207 ~]# nslookup tts.sina.com
#####################################################
DNS资源解析记录类型有哪些?
NS(声明DNS服务器记录)
A (正向解析记录)
CNAME(解析记录别名)
###################################################
主机名映射记录配置文件:/etc/hosts
1.只为本机提供解析
2.解析域名写入/etc/hosts文件立即生效
3.本机解析域名过程中,具有最高优先级
[root@pc207 ~]# vim /etc/hosts
192.168.4.120 www.360.com
[root@pc207 ~]# ping www.360.com
PING www.360.com (192.168.4.120) 56(84) bytes of data.
www.360.com ---》/etc/hosts ---》/etc/resolv.conf
######################################################
DNS子域授权
父域:www.tedu.cn
子域:www.bj.tedu.cn
父域 www.tedu.cn由虚拟机A,可以解析
子域 www.bj.tedu.cn由虚拟机B,可以解析
虚拟机B:构建DNS服务器负责解析bj.tedu.cn域名
1.安装软件包 bind-chroot bind
2.修改主配置/etc/named.conf
[root@pc207 ~]# cp /etc/named.conf /etc/named.bak
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件位置
};
zone "bj.tedu.cn" IN { #指定本机负责解析的域名
type master; #指定本机为主DNS服务器
file "bj.tedu.cn.zone"; #指定地址库文件名称
};
3.建立地址库文件bj.tedu.cn.zone
[root@pc207 named]# cp -p named.localhost bj.tedu.cn.zone
[root@pc207 named]# vim bj.tedu.cn.zone
bj.tedu.cn. NS pc207
pc207 A 192.168.4.207
www A 192.168.4.150
4.重起named服务
[root@pc207 named]# systemctl restart named
[root@pc207 named]# nslookup www.bj.tedu.cn 192.168.4.207
#######################################################
配置子域授权
客户端解析www.bj.tedu.cn请求发送给虚拟机A,可以获得最终解析结果
虚拟机A:
[root@svr7 /]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
bj.tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 192.168.4.100
ftp A 1.2.3.4
[root@svr7 /]# systemctl restart named
[root@svr7 /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威解答
Name: www.bj.tedu.cn
Address: 192.168.4.150
######################################################
递归解析:
客户端寻求DNS服务器解析,DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程
options {
directory "/var/named";
recursion yes; #是否允许递归解析
};
迭代解析:
客户端寻求DNS服务器解析,DNS服务器与其他DNS服务器交互过程
######################################################
客户端解析域名:
1.查看本机/etc/hosts
2.查看本机/etc/resolv.conf----》DNS服务器地址
3.将解析请求发给DNS服务器地址
4.DNS服务器进行递归查询
5.DNS服务器与其他DNS服务器进行迭代查询
6.获得解析结果
###################################################
验证迭代查询
• dig命令,更专业的DNS测试工具
[root@pc207 /]# dig www.bj.tedu.cn 192.168.4.7
##################################################
缓存DNS服务器
作用:缓存解析记录,提高解析速度,多用于企业内网
1.全局转发: 将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务
2.根域迭代: 依次向根、一级、二级....域的DNS服务器迭代
真机上操作:
1.真机搭建本地Yum仓库
[root@room9pc01 /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@room9pc01 /]# ls /iso/
]# mkdir /dvd/
]# mount /iso/CentOS-7-x86_64-DVD-1708.iso /dvd/
[root@room9pc01 /]# cd /etc/yum.repos.d
[root@room9pc01 yum.repos.d]# mkdir repo
[root@room9pc01 yum.repos.d]# mv *.repo repo
[root@room9pc01 yum.repos.d]# vim dvd.repo
[dvd]
name=CentOS 7.4
baseurl=file:///dvd
enabled=1
gpgcheck=0
]# yum -y install bind bind-chroot
2.搭建缓存DNS服务器
[root@room9pc01 /]# cat /etc/resolv.conf #查看DNS服务器地址
# Generated by NetworkManager
search tedu.cn
nameserver 172.40.92.6
[root@room9pc01 /]# cp /etc/named.conf /etc/named.bak
[root@room9pc01 /]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 172.40.92.6; }; #将请求转发给谁
};
[root@room9pc01 /]# systemctl restart named
虚拟机A测试:
[root@svr7 /]# nslookup www.qq.com 192.168.4.254
什么是分离解析
• 当收到客户机的DNS查询请求的时候
– 能够区分客户机的来源地址
– 为不同类别的客户机提供不同的解析结果(IP地址)
– 不同类别的客户机,在解析相同的一个域名,得到的解析结果不同
------>A类客户端-------》192.168.1.1
www.qq.com
------>B类客户端-------》10.11.12.13
------>网通的客户端-------》网通机房的服务器地址
www.qq.com
------>电信的客户端-------》电信机房的服务器地址
– 为客户端提供最近的资源服务器
BIND的view视图
• 根据源地址集合将客户机分类
– 不同客户机获得不同结果(待遇有差别)
– view分类,客户端匹配由上及下进行匹配, 匹配及停止
– view分类要合理,所有客户端都必须找到自己的类别
– 所有的zone都必须在view大括号中
view "a" {
match-clients { 192.168.4.1; 192.168.4.2; }
zone "12306.cn" IN {
...... 12306.cn.zone;--->1.2.3.4
};
};
客户端:192.168.4.3
view "b" {
match-clients { 192.168.4.207; }
zone "12306.cn" IN {
...... 12306.cn.nsd;---->4.3.2.1
};
};
view "c" {
match-clients { any; }
zone "12306.cn" IN {
...... 12306.cn.other;---->1.1.1.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
options {
directory "/var/named";
};
view "nsd" { #设置分类名称
match-clients { 192.168.4.207; }; #匹配客户端来源
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone"; ----》解析结果192.168.4.100
};
};
view "other" { #设置分类名称
match-clients { any; }; #匹配客户端来源
zone "tedu.cn" IN {
type master;
file "tedu.cn.other"; ----》解析结果1.2.3.4
};
};
#####################################################
多区域的分离解析
每一个view中zone的个数要一致
每一个view中zone负责的域名也要一致
• 环境及需求
– 权威DNS:svr7.tedu.cn
– 负责区域:tedu.cn
– A记录分离解析 —— 以 tedu.cn 和 qq.com
客户机来自 解析结果
192.168.4.207 ---www.tedu.cn-----> 192.168.4.100
其他地址 ---www.tedu.cn-----> 1.2.3.4
192.168.4.207 ---www.qq.com-----> 192.168.4.110
其他地址 ---www.qq.com-----> 10.20.30.40
view "nsd" { #设置分类名称
match-clients { 192.168.4.207; }; #匹配客户端来源
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone"; ----》解析结果192.168.4.100
};
zone "qq.com" IN {
type master;
file "qq.com.zone"; ----》解析结果192.168.4.110
};
};
view "other" { #设置分类名称
match-clients { any; }; #匹配客户端来源
zone "tedu.cn" IN {
type master;
file "tedu.cn.other"; ----》解析结果1.2.3.4
};
zone "qq.com" IN {
type master;
file "qq.com.other"; ----》解析结果10.20.30.40
};
};
############################################################
补充内容:
acl地址列表
• 为大批量的客户机地址建立列表
acl test { 192.168.4.207; 192.168.4.1; 192.168.4.2; 192.168.4.3; };
view "nsd" {
match-clients { test; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN {
type master;
file "qq.com.zone";
};
};