域名服务
基本概念
hosts文件
实现名字解析,主要为本地主机名、集群节点提供快速解析,平面式结构,集中式数据库。缺点是不便于查询,更新。
DNS
DNS(Domain Name System,域名系统)(分布式,层次性)
实现名字解析(例如将主机名解析为IP)
FQDN
FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名
www . music . baidu . com .
主机名 . 二级域 . 顶级域.(根域)
命名空间
根域 .
/ / \ \
顶级域 .net .com .cn .org
/ \ \
二级域 baidu taobao kernel
/ \
主机名 www mail
DNS区域文件
DNS服务器存储某个命名空间的域名记录文件。
域名记录:IP 和域名的对应关系。
DNS解析流程
客户端查询自己的缓存(包含hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器
如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。
否则(不具有权威性),如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端
如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息:
a. 从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案
DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找。
b. 转发到其它DNS服务器
服务器类型
- 缓存服务器
- 主服务器(正向/反向)
- 从服务器(不维护区域文件)
- 转发服务器
解析(正向/反向)
- 正向:可以把相对应的域名解析为对应的IP地址
- 反向:主要用来反垃圾邮件,可以把相对应的IP地址解析为对应的域名。
DNS服务器基本配置
DNS缓存服务器
服务端
1.安装伯克利域名服务
# yum -y install bind bind-chroot
2.修改配置文件启动查询功能
# vim /etc/named.conf
options {
listen-on port 53 { any; }; //改或者删除
listen-on-v6 port 53 { any; }; //改或者删除
allow-query { any; }; //改或者删除
3.启动
# systemctl start named
# systemctl enable named
4.查询
DNS 53号端口
# ss -tuln |grep :53 |column -t //以列规整显示
5.防火墙
# firewall-cmd --permanent --add-service=dns
# firewall-cmd --reload
客户端
1.测试DNS解析
# /etc/resolv.conf
nameserver 上一台服务器的IP地址
2.通信
# ping www.baidu.com
主DNS服务器配置
举个栗子(正向区解析配置)
功能
正向区: 提供正向解析,即将域名解析为IP
环境
- 服务器 192.168.182.111
- 客户端 192.168.182.112
配置
1.主配置文件
(相当于在域名服务商申请域名)
# vim /etc/named.conf
zone "test.com" IN {
type master;
file "xulei.com.zone";
};
2.数据库文件
(相当于在域名服务上提供的页面做解析)
# vim /var/named/test.com.zone
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@ IN NS dns
dns IN A 114.215.71.214 //DNS服务器本机IP
www IN A 119.75.218.70 //网站服务器IP
SOA和NS 必须写。
^注:参数对照表
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@服务的域名
IN
SOA授权
@服务器的域名
root.test.com管理员邮箱
(版本号时间戳 1小时同步 15分钟重试 1周过期 1天的缓存)
3.重启DNS
# systemctl restart named
测试
# ping www.test.com