前言
互联网的访问依靠IP地址。但IP地址不好记。
所以使用域名服务(DNS,好记名),来替代访问的地址。
基本概念
专业术语1
hosts文件(老的)
一、hosts文件
作用: 实现名字解析,主要为本地主机名、集群节点提供快速解析
数据库: 平面式结构,集中式数据库
缺点:不便于查询,更新
windows
C:\Windows\System32\drivers\etc
Linux
/etc/hosts
NetBios(windows)
DNS
DNS(Domain Name System,域名系统)(分布式,层次性)
DNS区域文件
DNS服务器,存储某个命名空间的域名记录文件。
域名记录:IP 和 域名的对应关系。
专业术语2
权威名称服务器:
权威名称服务器:
x.x.x.x
y.y.y.y
权威名称服务器类型包括:
Master: 主DNS服务器,包含原始区域的数据
Slave: 备份DNS服务器,通过(区域传输)从Master服务器获得区域数据的副本
非权威名称服务器:
非权威名称服务器: 不存储某个区域的实际数据,仅缓存DNS服务器,虽然可以提供查询,但查询的内容不具有权威性
DNS解析流程:
例如客户端解析
1. 客户端查询自己的缓存(包含hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器
2. 如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。
3. 否则(不具有权威性),如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端
4. 如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息:
a. 从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案
DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一个副本,以备以后查找。
b. 转发到其它DNS服务器
递归/迭代
服务器类型
缓存服务器
主服务器(正向/反向)
从服务器(不维护区域文件)
转发服务器
正向解析/反向解析
DNS服务主要起到两个作用:
1)可以把相对应的域名解析为对应的IP地址,这叫正向解析。
2)可以把相对应的IP地址解析为对应的域名,这叫反向解析。(反垃圾邮件)
DNS服务器基本配置
缓存DNS服务器/转发器
环境
DNS服务器1:10.18.41.251
DNS客户机:10.18.41.8
部署DNS服务器
1 安装伯克利域名服务
[root@aliyun ~]# yum -y install bind bind-chroot
2 观察域名服务设置,启动查询功能
[root@aliyun ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; //改或者删除
listen-on-v6 port 53 { any; }; //改或者删除
allow-query { any; }; //改或者删除
3 启动DNS服务器
[root@aliyun ~]# systemctl start named
[root@aliyun ~]# systemctl enable named
4 观察是否启动DNS,查询到DNS53号端口即开启成功,否则失败。
[root@aliyun ~]# ss -tuln |grep :53 |column -t //以列规整显示
udp UNCONN 0 0 :::53 :::*
tcp LISTEN 0 10 :::53 :::*
5 防火墙firewalld
[root@aliyun ~]# firewall-cmd --permanent --add-service=dns
[root@aliyun ~]# firewall-cmd --reload
options {
listen-on port 53 { any; }; //改或者删除
listen-on-v6 port 53 { any; }; //改或者删除
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; //改或者删除
客户端测试DNS解析1
- 客户端测试DNS解析
[root@yang ~]# cat /etc/resolv.conf
nameserver 上一台服务器的IP地址
;; SERVER: 上一台服务器的IP #53(上一台服务器的IP)
解析原理(根提示)
查看DNS服务主配置文件
[root@aliyun ~]# vim /etc/named.conf
根提示区域 [默认]
vim /var/named/named.ca
#是单行注释 /*是多行注释
或者使用DNS转发器
DNS转发Forward [通常转发到上一级的DNS服务器]
options {
...
forward first;
forwarders { 114.114.114.114; 202.106.0.20; };
};
主DNS服务器配置/正向区解析配置
功能
==正向区: 提供正向解析,即将域名解析为IP
==反向区: 提供反向解析,即将IP解析为域名 [了解]
环境
10.18.41.251--DNS服务器
10.18.41.252-DNS客户机
案例1
1. 主配置文件 相当于在域名服务商申请域名
[root@localhost ~]# vim /etc/named.conf
zone {
type master;
file
};
2. 数据库文件(区域文件) 在域名服务提供的页面上做解析
[root@localshost ~]# vim
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W
@ IN NS dns
dns IN A 114.215.71.214 //DNS服务器本机IP
IN A 119.75.218.70 //网站服务器IP
SOA和NS是强制要写的。
区域文件中参数详解
$TTL 600
@ IN SOA @ root ( 2017033100 1H 15M 1W 1D )
@服务的域名
IN
SOA授权
@服务器的域名
(版本号时间戳 1小时同步 15分钟重试 1周过期 1天的缓存)
3 重启DNS,使配置生效
[root@localhost ~]#systemctl restart named
案例2
1. 主配置文件
[root@yangs ~]# vim /etc/named.conf
zone {
type master;
file
};
2. 数据库文件(区域文件)
[root@yangs ~]# vim
$TTL 600
@ IN SOA @ root (
2017033100
1H
15M
1W
1D )
IN NS dns //注意域名的位置是空的,可以写@,也可以空。
dns IN A 114.215.71.214
IN A 1.1.1.1 //地址是多少,不重要。
bbs IN A 1.1.1.2
oa IN A 1.1.1.3
数据库文件:
@ 表示当前域名
=
第一个字段继承
SOA: 起始授权记录 强制
NS: DNS服务器记录 强制
A: 主机记录
CNAME: 别名记录
#客户端查询
lINUX工具
1.客户端指定本地DNS
[root@tianyun ~]# cat /etc/resolv.conf
nameserver 192.168.2.115
2.客户端解析域名
工具1
[root@tianyun ~]# dig
权威服务器
[root@tianyun ~]# dig //使用/etc/resolv.conf设置的DNS
flags:qr rd ra 非权威答案
flags:qr aa rd 权威答案
指定DNS服务器
[root@tianyun ~]# dig @192.168.2.168 //使用指定的DNS
[root@tianyun ~]# dig @192.168.2.100 //使用指定的DNS
工具2
[root@tianyun ~]# nslookup
工具3
[root@tianyun ~]# host
[root@tianyun ~]# host -t A //正向解析,查询A记录
[root@tianyun ~]# host 192.168.5.100 //反向解析,查询PTR记录
[root@tianyun ~]# host 192.168.5.240 //使用DNS服务器192.168.5.240解析
[root@tianyun ~]# host -t SOA //查询某个域的SOA
has SOA record 2013081303 3600 900 604800 86400
[root@tianyun ~]# host -t NS //查询某个域的NS
name server
name server
[root@tianyun ~]# host -t MX //查询某个域的邮件服务器
mail is handled by 10
Windows工具/Linux工具
[root@tianyun ~]# nslookup
ipconfig /displaydns 查看DNS缓存
#ipconfig /flushdns 擦除DNS缓存
ISP(阿里)域名申请及解析
1.搜索万网或域名注册,访问阿里云网站。
2.登录阿里云网站。
3.通过控制台找到域名注册服务。
4.输入新域名,根据需要选购合适域名。
5.选择购买。
6.选择绑定支付宝账号。
7.邮箱验证。
8.支付。
9.返回域名控制面板,绑定IP地址。
10.域名备案。
ISP(Godaddy)域名申请