DNS解析的作用
#为什么需要DNS系统
– www.baidu.com 与 119.75.217.56,哪个更好记?
– 互联网中的114查号台/导航员
#DNS服务器功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名,不常用
DNS服务器的分类:
根域名服务器
一级DNS服务器
二级DNS服务器
三级DNS服务器
缓存DNS
所有的域名都要以点作为结尾
www.baidu.com.
根域名:.(点)
一级域名: .cn .us .tw .hk .jp .kr …
二级域名: .com.cn .net.cn .org.cn …
三级域名: .nb.com.cn .dc.com.cn .tc.com.cn …
完全合格的主机名(FQDN): 主机头部+合法的域名
Full Qualified Domain Name
DNS域名管理:
• IANA,互联网数字分配机构
– Internet Assigned Numbers Authority,
– 整个域名系统的最高权威机构
– 主管DNS根、.int、.arpa等国际化域名资源
• CNNIC,中国互联网络信息中心
– China Internet Network Information Center
– 主管国家顶级域 .cn
• BIND服务器端程序
– 主要执行程序:/usr/sbin/named
– 系统服务:named
– 默认端口:TCP/UDP 53
– 运行时的虚拟根环境:/var/named/chroot/
• 主配置文件:/etc/named.conf 设置本DNS服务器负责解析的域名
• 地址库文件:/var/named/ 完全合格的主机名与IP地址对应关系
一、构建基本的DNS服务器
构建DNS服务
虚拟机A:
1.装包:
[root@svr7 ~]# yum -y install bind-chroot bind
运行时的虚拟根环境:/var/name/chroot
bind-chroot:实现牢笼政策
bind:主程序
2.主配置文件的修改:
// # /* */ 都是表示注释的意思
#127.0.0.1永远代表主机
虚拟机A:
[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"; #设置地址库文件的路径
};
3.建立新的地址库文件:
必须保证named用户对该文件具备读取权限
-p:保持权限不变进行复制
所有的域名都必须以点结尾
如果没有以点作为结尾,默认补全地址库文件负责的域名
虚拟机A;
[root@svr7 ~]# cd /var/named
[root@svr7 named]# cp -p named.localhost tedu.cn.zone
[root@svr7 named]# ls -l tedu.cn.zone
-rw-r----- 1 root root 152 12月 19 10:33 tedu.cn.zone
[root@svr7 named]# ls -l named.localhost
-rw-r----- 1 root named 152 6月 21 2007 named.localhost
[root@svr7 named]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7 #声明DNS服务器
svr 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]# systemctl restart named
虚拟机B客户端验证:
1.指定虚拟机B的DNS服务器地址
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/reslo.conf
[root@pc207 ~]# cat /etc/reslo.conf
nameserver 192.168.4.7
2.测试域名解析
虚拟机A:
[root@svr7 named]# nslookup www.tedu.cn
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.tedu.cn
Address: 1.1.1.1
多区域的DNS服务器
虚拟机A:
[root@svr7 ~]# 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 tedu.cn.zone qq.com.zone
qq.com. NS svr7
svr7 A 192.168.4.7
www A 1.1.1.1
[root@svr7 named]# systemctl restart named
特殊解析
DNS轮询
• 基于DNS的站点负载均衡
– 一个域名 —> 多个不同IP地址
– 每个IP提供镜像服务内容
虚拟机A:
[root@svr7 named]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.100
www A 192.168.4.200
www A 192.168.4.10
ftp A 2.2.2.2
abc A 3.3.3.3
[root@svr7 ~]# systemctl restart named
泛域名解析
虚拟机A:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
ftp A 2.2.2.2
abc A 3.3.3.3
* A 10.20.30.40
tedu.cn. A 50.60.70.80
[root@svr7 ~]# systemctl restart named
虚拟机B:
[root@pc207 ~]# nslookup wwww.tedu.cn
[root@pc207 ~]# nslookup tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: tedu.cn
Address: 50.60.70.80
解析记录的别名
虚拟机A:
[root@svr7 ~]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.10
ftp A 2.2.2.2
abc A 3.3.3.3
* A 10.20.30.40
tedu.cn. A 50.60.70.80
tts CNAME ftp
[root@svr7 ~]# systemctl restart named
虚拟机B:
[root@pc207 ~]# nslookup tts.tedu.cn
DNS资源解析记录都有哪些?
NS记录:DNS服务器声明记录
A记录:正向解析记录
CNAME记录:解析记录别名
主机名映射文件 /etc/hosts
1.可以直接达到解析域名
2.只能为本机提供解析
3.nslookup不读/etc/hosts文件!
虚拟机A:
[root@svr7 ~]# vim /etc/hosts
192.168.4.222 www.360.com
[root@svr7 ~]# ping www.360.com #只要可以ping就说明可以解析!
DNS子域授权
父域:qq.com
子域:bj.qq.com
虚拟机A:DNS服务器负责解析qq.com
虚拟机B:DNS服务器负责解析bj.qq.com
子域授权:让虚拟机A可以解析bj.qq.com域名
只能让父域声明子域,不能让子域去声明父域
准备一台全新的虚拟机C,查看本机是否有yum源,如果没有则配置yum源
1.配置IP地址:192.168.4.10/24
2.配置主机名:C.tedu.cn
真机:
[student@room9pc01 ~]$ clone-vm7
Enter VM number: 6
虚拟机A:DNS服务器
虚拟机B:DNS服务器
虚拟机C:客户端
虚拟机B:DNS服务器,负责解析bj.qq.com域名
[root@pc207 ~]# yum -y install bind bind-chroot #装包
[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 4.5.6.7
[root@pc207 named]# systemctl restart named #重起服务
虚拟机A:声明虚拟机B,DNS服务器
[root@svr7 ~]# vim /var/named/qq.com.zone
qq.com. NS svr7
bj.qq.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 1.2.3.4
[root@svr7 ~]# systemctl restart named
客户端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: 4.5.6.7
递归解析:
将首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来过程
虚拟机A:
[root@svr7 ~]# vim /etc/named.conf
options {
directory "/var/named";
recursion no; #关闭递归解析
};
迭代解析:
首选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
[root@pc207 /]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; #当收到域名解析时直接转发给虚拟机A,让虚拟机A去解析域名
};
[root@pc207 /]# !sys #重起服务
systemctl restart named
[root@pc207 /]#
客户端:
[root@C ~]# nslookup www.qq.com 192.168.4.207