1、DNS简介
DNS(Domain Name Systern) 域名系统,应用层协议,是互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机。这种由文字组成的名称,显而易见更容易记忆
它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构服务器端:53/udp, 53/tcp。实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为zone(区域〉。根据地址解析的方向不同,DNS区域相应地分为正向区域(包含域名到IP地址的解析记录)和反向区域(包含IP地址到域名的解析记录)。
简单来说DNS服务是ip地址与域名一一对应的解析服务。
2、DNS系统的分布式数据结构
2.1 域名结构解析(简版)
根域:一般用"."表示,可省略不写
一级(顶级)DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
二级DNS服务器:专门负责二级域名的解析
子域名(三级域名)DNS服务器:专门负责子域名的解析
例如:http://www .baidu.com. cn. /
http://主机名.子域.二级域.顶级域 根域/
2.2 域名结构解析(详细)
大型、分布式的互联网DNS解析库
(1)根.根域名DNS服务器:专门负责根域名;处于域名结构的最顶端,一般用一个“ . ” 表示;
(2)顶级域(一级)DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商企业)
.net(网络供应商)
.org(团体组织)
.edu(教育机构)
.gov(政府部门)
.cn(中国国家域名)
. jp (日本)
. hk (香港)
.uk (英国)
(3)二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,顶级域名下面设置的是二级域名,如:
.com.cn
.net.cn
.edu.cn
(4)子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名;
(5)主机:主机位于域名结构的最下层,就是一台具体的计算机,如:www、mail都是具体的计算机名字,可以用www.baidu.com.cn.来表示,这种方式称为FQDN(完全合格域名),也是这台主机在域名中的全名
3、DNS系统的作用
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
4、DNS完整过程
当用户输入www.baidu.com 去访问网页
第一步:先看你本机的hosts文件,如果有直接访问,没有会先去找缓存服务器(电信运营商)
第二步:缓存服务器,先看缓存,缓存有,直接反馈结果给用户,缓存没有,直接去找根
第三步:根只知道自己下一级的服务位置,不会反馈给你直接结果,会透露有一个信息有可能顶级域知道,让你去找顶级域(一级域)试试看。
第四步:缓存服务器会再去找顶级域(一级域)服务器
第五步:顶级也不知道,不会反馈给你直接结果,会透露有一个信息,有可能二级域知道,让你去找二级域试试看。
第六步:缓存服务器收到这个消息,会再去找二级域,二级域知道会反馈结果给缓存服务器
第七步:缓存服务器收到结果会直接交给用户
5、查询方式
迭代:不给你结果,只给你相关信息 (需要自己动手)
递归:直接反馈给你结果 (不需要自己动手)
6、打开一个网页中间过程
输入www.baidu.com 打开网页中间经历了那些过程?
三次握手
四次挥手
dns解析过程
http
域名解析(看一下浏览器要和哪个服务器的哪个接口建立连接)
浏览器与域名地址建立TCP连接,三次握手
http访问
断开TCP连接,四次挥手
7、DNS系统类型
7.1 缓存域名服务器
也称为DNS高速缓存服务器
通过向其他域名服务器查询获得域名-->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
7.2 主域名服务器
特定DNS区域的权威服务器,具有唯一性
负责维护该区域内所有域名-->IP地址的映射记录
需要自行建立所负责区域的地址数据文件
7.3 从域名服务器
也称为辅助域名服务器,是对主域名服务器的热备份
其维护的域名-->IP地址记录来源于主域名服务器
需要从主域名服务器自动同步区域地址数据库
二、DNS软件bind
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
bind:服务器
bind-libs:相关库
bind-utils: 客户端
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
一 配置正向解析
1、先查看需要修改的配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost #区域数据配置文件(模板文件,不可直接在原文件进行更改
/var/named/named.loopback
[root@localhost ~]#
2、修改主配置文件
vim /etc/named.conf
####
12 options {
13 listen-on port 53 { 192.168.40.126; };
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 allow-query { any; };
3、修改区域配置文件,添加正向区域配置
[root@localhost ~]# vim /etc/named.rfc1912.zones #在文件里有模版,可复制粘贴后修改
43 zone "niuma.com" IN { #正向解析"niuma.com"区域
44 type master; #类型为主区域
45 file "niuma.com.zone"; #指定区域数据文件为niuma.com.zone
46 allow-update { none; };
47 };
复制完在文件末尾添加
4、配置正向区域数据文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost niuma.com.zone #需要保留源文件的权限和属主的属性复制(-p)
[root@localhost named]# ll
总用量 20
drwxrwx---. 2 named named 6 8月 4 2017 data
drwxrwx---. 2 named named 6 8月 4 2017 dynamic
-rw-r-----. 1 root named 2281 5月 22 2017 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
-rw-r-----. 1 root named 152 6月 21 2007 niuma.com.zone
drwxrwx---. 2 named named 6 8月 4 2017 slaves
[root@localhost named]# vim /var/named/niuma.com.zone
$TTL 1D
@ IN SOA niuma.com admin.niuma.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS niuma.com. #记录当前区域的DNS服务器的名称(必不可少)
A 192.168.40.126 #记录主机IP地址(必不可少)
IN MX 10 mail.niuma.com #MX为邮箱交换记录,数字越大优先级越低
www IN A 192.168.40.126 #记录正向解析www.benet.com 对应的IP
mail IN A 192.168.40.127 #邮箱的正向解析地址
ftp IN CNAME www #CNAME使用别名,ftp是www的别名
* IN A 192.168.40.100 #泛域名解析,“*” 代表任意主机名
-- 插入 --
5、检查文件启动格式
[root@localhost named]# named-checkzone niuma.com /var/named/niuma.com.zone
zone niuma.com/IN: loaded serial 0
OK
[root@localhost named]# vim /etc/resolv.conf #修改完后立即生效
nameserver 192.168.233.21 //将主机IP设置为dns服务器地址
6、启动服务关闭防火墙
[root@localhost named]# systemctl start named
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]#
7、在客户端的域名解析配置文件中添加DNS服务器地址
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.40.126
[root@localhost ~]# nslookup www.niuma.com
Server: 192.168.40.126
Address: 192.168.40.126#53
Name: www.niuma.com
Address: 192.168.40.126