DNS服务器
DNS正向解析:根据注册的域名查找其对应的IP地址
DNS反向解析:根据IP地址查找对应的注册域名
DNS服务器资源解析记录有哪些?
NS:声明DNS服务器解析记录
A:正向解析记录
CNAME:解析记录别名
FQDN完全合格的域名:主机头部信息+注册的域名
BIND服务解析
bind-chroot-9.11.4-16.P2.el7_8.6.x86_64 ==>>域名服务包
bind-9.11.4-16.P2.el7_8.6.x86_64 ==>>提供虚拟根支持,牢笼政策
-运行是的虚拟根环境:/var/named/chroot
-系统服务:named
-默认端口:TCP/UDP 53(DNS默认端口号)
-主配置文件:/etc/named.conf ==>>设置本dns服务器负责的域名
-地址库文件:/var/named/ ==>>域名与IP对应关系
1.安装bind-chroot与bind软件
[root@svr7 ~]# yum install -y bind-chroot bind
[root@svr7 ~]# rpm -q bind-chroot bind
2.修改主配置文件
[root@svr7 ~]# cp /etc/named.conf /etc/named.conf.bak ==>>备份配置文件
[root@svr7 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; ==>>指定监听本机所有IP的53端口
directory "/var/named"; ==>>指定地址库文件存放路径
};
zone "tedu.cn" IN { ==>>负责的域名
type master; ==>>dns服务器为主服务器
file "tedu.cn.zone"; ==>>地址库文件名字
};
3.建立新的地址库文件
保证named有文件的读取权限
[root@svr7 named]# cd /var/named/
[root@svr7 named]# ls
chroot dynamic named.empty named.loopback
data named.ca named.localhost slaves
[root@svr7 named]# cp -p named.localhost tedu.cn.zone ==>>拷贝模板文件(-p 文件权限一同拷贝)至新的地址库。(named.localhost地址库的模板文件)
[root@svr7 named]# ls -al
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 152 6月 21 2007 tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7 ==>>声明域名解析的服务器为svr7
svr7 A 192.168.4.7 ==>>声明svr7的ip地址
www A 1.1.1.1 ==>>测试dns
[root@svr7 named]# systemctl restart named
测试时关闭两台机器的防火墙和selinux
[root@pc207 ~]# systemctl stop firewalld
[root@pc207 ~]# setenforce 0
[root@pc207 ~]# yum install -y bind-utils ==>>安装nslookup软件
[root@pc207 ~]# nslookup www.tedu.cn ==>>测试
===============================================================================
多区域dns
[root@svr7 named]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "qq.com" IN { ==>>新增一个区域
type master;
file "qq.com.zone";
};
[root@svr7 named]# cp -p tedu.cn.zone qq.com.zone
[root@svr7 named]# vim qq.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
qq.com. NS svr7
svr7 A 192.168.4.7
www A 3.3.3.3
[root@pc207 ~]# systemctl restart named
===========================================================================
特殊解析
1.DNS轮询(了解)
基于DNS的站点负载均衡
-一个域名-->多个不同IP地址
-每个ip提供镜像内容
2.泛域名解析
[root@svr7 named]# vim tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
* A 10.101.101.10 ==>>添加此行数据
[root@svr7 named]# systemctl restart named
测试
[root@pc207 ~]# nslookup wssssssssww.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: wssssssssww.tedu.cn
Address: 10.101.101.10
3.有规律的泛域名解析
内置函数:$GENERATE 造数工具
[root@svr7 named]# vim tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
* A 10.101.101.10
$GENERATE 1-10 pc$ A 10.0.0.$ ==>>pc1-10.tedu.cn对应10.0.0.1-10
[root@svr7 named]# systemctl restart named
测试
[root@pc207 ~]# nslookup pc1.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: pc1.tedu.cn
Address: 10.0.0.1
[root@pc207 ~]# nslookup pc10.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: pc10.tedu.cn
Address: 10.0.0.10
4.解析记录别名
[root@svr7 named]# vim tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
* A 10.101.101.10
$GENERATE 1-10 pc$ A 10.0.0.$
tts CNAME ftp ==>>ftp与tts的IP相同,设置别名
[root@svr7 named]# systemctl restart named
测试
[root@pc207 ~]# nslookup tts.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
tts.tedu.cn canonical name = ftp.tedu.cn. ==>>别名等于name = ftp.tedu.cn.
Name: ftp.tedu.cn
Address: 2.2.2.2
===============================================================================
DNS子域授权:
父域:qq.com www.qq.com
子域:bj.qq.com
父域解析qq.com子域解析bj.qq.com
上述配置了一台dns服务器,在另一台服务器配置子服务器
[root@pc207 ~]# yum install -y bind-chroot bind
[root@pc207 ~]# cp /etc/named.conf /etc/named.conf.bak
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "bj.qq.com" IN {
type master;
file "bj.qq.com.zone";
};
[root@pc207 ~]# cd /var/named/
[root@pc207 named]# cp -p named.localhost bj.qq.com.zone
[root@pc207 named]# vim bj.qq.com.zone
bj.qq.com. NS pc207
pc207 A 192.168.4.207
www A 20.21.22.23
在主DNS进行授权子域
[root@svr7 named]# vim /var/named/qq.com.zone
qq.com. NS svr7
bj.qq.com. NS pc207 ==>>在此处声明子域dns服务器
svr7 A 192.168.4.7
pc207 A 192.168.4.207 ==>>在此处解析子域dns服务器IP
www A 3.3.3.3
[root@svr7 named]# systemctl restart named
测试
[root@svr10 ~]# 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: 20.21.22.23
递归解析:
主DNS服务器与其他服务器交互,最终将解析的IP带回来
迭代解析:
主DNS服务器解析结果,告诉你下一个DNS服务器的IP,自己去查询
===============================================================================
主/从DNS服务器架构:
解决单点故障,主DNS服务器故障时,从DNS服务继续提供服务
虚拟机svr7:主DNS服务器
虚拟机pc207:从DNS服务器
主DNS服务器:
1.修改主配置文件,授权从服务器的IP地址
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; }; ==>>授权从服务器的IP地址
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
2.修改地址库文件
[root@svr7 ~]# vim /var/named/tedu.cn.zone ==>>一个域名的地址库
tedu.cn. NS svr7
tedu.cn. NS pc207 ==>>添加从服务器的声明
svr7 A 192.168.4.7
pc207 A 192.168.4.207 ==>>添加从服务器的ip
[root@svr7 ~]# systemctl restart named
从服务器:
1.建立一个新的区域:
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type slave; ==>>类型为从服务器
file "/var/named/slaves/tedu.cn.slave"; ==>>从主服务器拷贝地址库文件至本地的文件名(其所在目录,named用户要具备写的权限)
masters { 192.168.4.7; }; ==>>主DNS服务器
};
[root@pc207 ~]# ls -ld /var/named/slaves ==>>默认在此有一个目录named具备写的权限
drwxrwx--- 2 named named 6 6月 1 23:26 /var/named/slaves
[root@pc207 ~]# systemctl restart named
[root@pc207 ~]# ls /var/named/slaves/
tedu.cn.slave
主从数据同步:
只有主DNS能改变数据
当数据修改时,必须由管理员手动修改版本号,版本号数字要越来越大
主服务器
[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020061412 ; serial ==>>数据的版本号,由10位数字组成
1D ; refresh ==>>没隔多久主从同步一次
1H ; retry ==>>重试时间
1W ; expire ==>>失效时间
3H ) ; minimum ==>>失败记录的记忆时间
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
* A 10.101.101.10
$GENERATE 1-10 pc$ A 10.0.0.$
tts CNAME ftp
===============================================================================
缓存DNS:
缓存解析结果,加速解析
虚拟机svr7:真DNS服务器
虚拟机pc207:缓存DNS服务器
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; ==>>转发给真正的DNS服务器
};
[root@pc207 ~]# systemctl restart named
===============================================================================
Split分离解析:
当收到客户机的DNS查询请求的时候
能区分客户机的来源地址
为不同类别的客户机,提供不同的解析结果(IP地址)
为不同类别的客户机,提供最近的服务器资源
BIND的view视图
1)由上到下一次匹配
2)每一个客户端都要找到自己的类
3)所有的zone都在view中
单区域的分离解析:
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; };
};
view "nsd" { ==>>分类的名称
match-clients{ 192.168.4.207; }; ==>>匹配客户机来源地址
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone"; ==>>进入相应的地址库文件
};
};
view "nsd01" {
match-clients{ any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";
};
};
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# vim tedu.cn.zone
[root@svr7 named]# cat tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020061413 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 1.1.1.1
[root@svr7 named]# cp -p tedu.cn.zone tedu.cn.other
[root@svr7 named]# vim tedu.cn.other
$TTL 1D
@ IN SOA @ rname.invalid. (
2020061413 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 2.2.2.2
[root@svr7 named]# systemctl restart named
测试
[root@svr10 ~]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 2.2.2.2
[root@pc207 ~]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
多区域的分离解析:
注意事项:
1)每一个view中,zone的数量必须一致
2)每一个view中,zone负责的域名必须一致
[root@svr7 named]# vim /etc/named.conf
options {
directory "/var/named";
};
view "nsd" {
match-clients{ 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "sina.com" IN {
type master;
file "sina.com.zone";
};
};
view "nsd01" {
match-clients{ any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.other";
};
zone "sina.com" IN {
type master;
file "sina.com.other";
};
------------------------------------------------------------------------------------------------------------------
acl地址列表(选做):
view "nsd" {
match-clients{ 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
可以写成:
acl "abc" = { 192.168.4.207; };
view "nsd" {
match-clients{ abc; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
-------------------------------------------------------------------------------------------------------------------
[root@svr7 named]# cp -p tedu.cn.zone sina.com.zone
[root@svr7 named]# cp -p tedu.cn.other sina.com.other
[root@svr7 named]# vim sina.com.zone
sina.com. NS svr7
svr7 A 192.168.4.7
www A 1.2.3.4
[root@svr7 named]# vim sina.com.other
sina.com. NS svr7
svr7 A 192.168.4.7
www A 2.2.3.4
[root@svr7 named]# systemctl restart named
测试
[root@pc207 ~]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
[root@pc207 ~]# nslookup www.sina.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.sina.com
Address: 1.2.3.4
[root@svr10 ~]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 2.2.2.2
[root@svr10 ~]# nslookup www.sina.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.sina.com
Address: 2.2.3.4