DNS工作原理
DNS服务器的功能
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据IP地址查找相对应的注册域名
DNS服务器的分类
根域名服务器 一级DNS服务器 二级DNS服务器 三级DNS服务器 缓存DNS
所有的域名都要以点作为结尾
.com结尾是国际商业组织
根域名: 点 .
一级域名: .cn .us .tw .hk .jp .kr …
二级域名: .com.cn .net.cn .org.cn …
三级域名: nb.com.cn xxx.com.cn …
完全合格的主机名(FQDN):主机头部+合法的域名
DNS默认端口号:53
系统服务:named
主要执行程序:/usr/sbin/named
主配置文件:/etc/named.conf #设置本DNS服务器负责接解析的域名
地址库文件:/var/named #完全合格的主机名与IP地址对应关系
构建DNS服务
DNS运行身份默认是普通用户named
虚拟机A:
1.装包
[root@svr7 ~]# yum -y install bind bind-chroot #下载bind和bind-chroot软件包
运行时的虚拟根环境:/var/named/chroot
bind-chroot:实现牢笼政策
bind:主程序
2.主配置文件的修改
// # /* */ 都是表示注释的意思
#127.0.0.1永远代表本机
[root@svr7 ~]# cp /etc/named.conf /etc/name.bak #拷贝一份主配置文件做备份
[root@svr7 ~]# vim /etc/named.conf #修改默认的主配置文件
options {
directory "/var/named"; #指定地址库文件存放路径
};
zone "tedu.cn" IN { #设置本机负责解析的域名
type master;(主DNS服务器)或salve(副DNS服务器) #设置本机为主DNS服务器
file "tedu.cn.zone"; #设置地址库文件路径,文件名字必须要和地址库的名字一模一样(可以自己起名)
};
3.建立新的地址库文件
必须保证named用户对该文件具备读取权限
cp -p:保持权限不变进行复制
所有的域名必须要以点结尾!!!
如果没有以点结尾,则默认补全地址库文件负责的域名
[root@svr7 ~]# 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 #复制源地址库文件,保持其原有权限不变
[root@svr7 named]# ls
chroot dynamic named.empty named.loopback tedu.cn.zone
data named.ca named.localhost slaves
[root@svr7 ~]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7 #声明DNS服务器
svr7 A 192.168.4.7 #指定DNS服务器IP地址
www A 1.1.1.1 #正向解析记录
ftp A 2.2.2.2 #正向解析记录
abc A 3.3.3.3 #正向解析记录
[root@svr7 ~]# named-checkconf /etc/named.conf #查看主配置文件是否有问题
[root@svr7 ~]# named-checkzone tedu.cn /var/named/tedu.cn.zone #查看地址库文件是否有问题
[root@svr7 ~]# systemctl restart named #重起服务
虚拟机B客户端验证:
1.指定虚拟机B的DNS服务器的地址
[root@pc207 ~]# echo nameserver 192.168.4.7 >/etc/resolv.conf
[root@pc207 ~]# cat /etc/resolv.conf
nameserver 192.168.4.7
2.测试域名解析
[root@pc207 ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
多区域的DNS服务器
虚拟机A:
[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 ~]# cd /var/named
[root@svr7 named]# cp -p named.localhost 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
aaa A 198.168.2.0
xxx A 1.1.1.1
[root@svr7 named]# systemctl restart named
虚拟机B:
[root@pc207 ~]# echo nameserver 192.168.4.7 >/etc/resolv.conf
[root@pc207 ~]# nslookup aaa.qq.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: aaa.qq.com
Address: 198.168.2.0
特殊解析
DNS轮询
基于DNS站点负载均衡
一个域名---->多个不同IP地址
每个IP提供镜像服务内容
虚拟机A:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.11.1
www A 192.168.10.10
www A 192.168.1.125
www A 1.1.1.1
ftp A 2.2.2.2
abc A 3.3.3.3
[root@svr7 ~]# systemctl restart named
虚拟机B:
[root@pc207 ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 192.168.1.125
Name: www.tedu.cn
Address: 192.168.10.10
Name: www.tedu.cn
Address: 1.1.1.1
Name: www.tedu.cn
Address: 192.168.11.1
泛域名解析
虚拟机A:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.11.1
www A 192.168.10.10
www A 192.168.1.125
www A 1.1.1.1
ftp A 2.2.2.2
abc A 3.3.3.3
* A 10.20.30.40
tedu.cn. A 5.6.10.20
[root@svr7 ~]# systemctl restart named
虚拟机B:
[root@pc207 ~]# nslookup dhgs.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: dhgs.tedu.cn
Address: 10.20.30.40
[root@pc207 ~]# nslookup tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: tedu.cn
Address: 5.6.10.20
解析记录的别名
[root@svr7 ~]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.11.1
www A 192.168.10.10
www A 192.168.1.125
www A 1.1.1.1
ftp A 2.2.2.2
abc A 3.3.3.3
* A 10.20.30.40
tedu.cn. A 5.6.10.20
tts CNAME ftp
[root@svr7 ~]# systemctl restart named
虚拟机B:
[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
Address: 2.2.2.2
DNS资源解析记录都有哪些
NS记录:服务器声明记录
A记录:正向解析记录
CNAME记录:解析记录别名
主机名映射文件 /etc/hosts
1.可以直接达到解析域名的作用
2.只能为本机提供解析
3.nslookup不读/etc/hosts文件!
[root@svr7 ~]# vim /etc/hosts
[root@svr7 ~]# ping www.360.com #只要可以ping就说明可以解析!
子域授权
首先准备一台全新的虚拟机,手动配置IP地址为192.168.4.10/24 主机名为C.tedu.cn 查看本机是否有yum源,如果没有则配置yum源
虚拟机A:DNS服务器,负责解析qq.com
虚拟机B:DNS服务器,负责解析bj.qq.com
虚拟机C:客户端
子域授权:让虚拟机A解析bj.qq.com
只能让父域声明子域,不能让子域去声明父域
虚拟机B:
[root@pc207 ~]# yum -y install bind-chroot bind #装包
[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]# ls
chroot data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@pc207 named]# cp -p named.localhost bj.qq.com.zone
[root@pc207 named]# vim bj.qq.com.zone #修改调用配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
bj.qq.com. NS pc207
pc207 A 192.168.4.207
www A 1.2.3.40
[root@pc207 named]# systemctl restart named #重起服务
客户端C:
[root@C ~]# nslookup www.bj.qq.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Name: www.bj.qq.com
Address: 1.2.3.40
子域授权
虚拟机A:声明虚拟机B ,DNS服务器
[root@svr7 ~]# vim /var/named/qq.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
qq.com. NS svr7
bj.qq.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
aaa A 198.168.2.0
xxx A 1.1.1.1
[root@svr7 ~]# vim /var/named/qq.com.zone
客户端C:
[root@C ~]# 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: 1.2.3.40
递归解析:
将首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程
迭代解析:
将首选DNS服务器与其他DNS服务器交互,最终指引下一个DNS服务器地址
专用于解析DNS域名测试的命令
[root@C ~]# dig www.bj.qq.com 192.168.4.7
缓存DNS服务器,缓存解析结果,加快访问
虚拟机A:真DNS服务器
虚拟机B:缓存DNS服务器
虚拟机C:客户端
在虚拟机B:
1.修改主配置文件
[root@pc207 ~]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; #当收到域名解析时直接转发给虚拟机A,让虚拟机A去解析域名
};
[root@C ~]# nslookup www.qq.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Non-authoritative answer:
Name: www.qq.com.tedu.cn
Address: 10.20.30.40