RHCE笔记

第六章:DNS域名解析服务器

1、DNS简介

DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。

(1)域名服务器的类型划分

顶级域名分为国家顶级域名、通用顶级域名、基础结构域名

  • 国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。

  • 通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。

  • 基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

完全限定域名:<www.81.mil.cn>. 末尾必须要写"."

(2)作用

  • 将域名解析成IP地址 正向解析 比如:访问网站时的服务器

  • 将IP地址解析成域名 反向解析 比如:邮件服务器

域名服务器划分为以下类型:

  • 根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。

  • 顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

  • 权限域名服务器:负责一个"区"的域名服务器。

  • 本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

  • 主从DNS服务器:缓解主服务器的压力,作用和主服务器一样

  • 缓存DNS服务器:不负责解析域,只是缓存域名解析的结果。

2、DNS域名解析流程

(1)客户端在web浏览器的网址上输入域名(<www.qq.com>),如果访问过该网站则直接显示;如果没有那么需要做解析

(2)操作系统先查看本机的hosts文件是否有该域名对应的IP地址,若有则直接访问网站

(3)若没有则查看DNS解析器缓存是否有该网址映射关系,如果有,则直接返回

(4)如果hosts和DNS解析器缓存都没有,则找本地DNS服务器,本地DNS服务器会先看DNS服务器缓存,如果有则直接返回给客户端,如果没有则会看自己是不是某个区域的服务器(看自己能不能解析域名)

(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则本地DNS服务器会找根域名解析服务器,根域名解析服务器会回复可以找.com顶级域名服务器;本地DNS服务器就去找.com顶级域名服务器,.com顶级域名服务器会回复可以找qq.com二级域名服务器;本地DNS服务器就去找qq.com二级域名服务器,qq.com二级域名服务器发现刚好是自己的区域,返回该域名对应的IP地址给本地DNS服务器

(6)本地DNS服务器先缓存一下,再将IP地址返回给客户端,客户端就可以访问网站

3、DNS服务器配置

(1)基本配置

bash 复制代码
提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件	存放监听
/var/named/ # 从dns服务器文件夹	存放解析文件    具体名字由zone里的file决定
[root@localhost ~]# vim /etc/named.conf
options {
    #定义监听端口,如果所有地址都监听,则只写端口
    listen-on port 53 { any; };    可以写IP地址,也可以写any(任何)
    listen-on-v6 port 53 { ::1; };	#ipv6
    #定义数据文件目录
    directory "/var/named";
    #只允许本地主机进行查询
    allow-query { localhost; };	#可以不写,默认"any"
};
#定义区域
zone "." IN {	#"."根域
    type master;            类型:master/slave
    file "named.ca";        文件名
};

(2)实验1:配置DNS正向解析

bash 复制代码
[root@localhost ~]# cat /etc/named.conf
options {
        listen-on port 53 {any;};
        directory       "/var/named";
        allow-transfer {192.168.59.142;};
};
zone "baidu.com" IN {
                type master;
                file "named.baidu.com";
};


扩展:
vim 清空内容    
(1)d
(2)d + G
(3)echo  > 文件名

正向解析文件资源记录(RR),相关信息:

bash 复制代码
[root@localhost ~]# cat /var/named/named.baidu.com
$TTL 1D
baidu.com.        IN SOA master.baidu.com.        admin.baidu.com. ( 
                         当前域的主dns服务器的域名   Email
完全限定域名(fqdn):www.81.mil.cn.	末尾必须要写"."

                  10271430     序号(最长8位)信息更新则序号需要改大;序号越大,信息越新
                  1D           更新频率    从服务器向主服务器更新
                  1H           重新重新尝试时间(Slave会尝试重新连接到Master)
                  1W           失效时间    连续问都没有回答,则一周就把从的记录都删掉
                  3H )         缓存时间TTL

                  IN NS  master.baidu.com.
                  IN NS  slave.baidu.com.    #从服务器
master.baidu.com. IN A   192.168.59.143
slave             IN A   192.168.59.142
www.baidu.com.    IN A   192.168.59.1
xixi              IN A   192.168.59.2
haha              IN A   192.168.59.3
若行之间写了时间,那么以中间的时间为先
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl disable firewalld --now

测试:

bash 复制代码
三种测试方法:
[root@client ~]# host www.baidu.com 192.168.59.142
[root@client ~]# nslookup www.baidu.com 192.168.59.142
[root@client ~]# dig -t A @192.168.59.142 www.baidu.com

(3)反向解析

bash 复制代码
[root@localhost ~]# cat /etc/named.conf
options {
        listen-on port 53 {any;};
        directory       "/var/named";
        allow-transfer {192.168.59.142;};
};
#正向解析
zone "baidu.com" IN {
                type master;
                file "named.baidu.com";
};
#反向解析
zone "59.168.192.in-addr.arpa" IN {
                type master;
                file "named.192.168.59";
};


[root@localhost ~]# cat /var/named/named.192.168.59
$TTL 1D
59.168.192.in-addr.arpa.  IN SOA master.baidu.com.  admin.baidu.com. ( 10271430 1D 1H 1W 3H )
                          IN NS  master.baidu.com.
143                       IN PTR master.baidu.com.
1                         IN PTR www.baidu.com.
2                         IN PTR xixi.baidu.com.
3                         IN PTR haha.baidu.com.
                             反向

三种测试方法:
[root@localhost ~]# host 192.168.59.1 192.168.59.143
[root@localhost ~]# nslookup 192.168.59.1 192.168.59.143
[root@localhost ~]# dig -x  192.168.59.1 @192.168.59.143

(4)主从DNS服务器

[1]完全区域传送:复制整个区域文件

以正向解析为例,主服务器如上

从服务器:

bash 复制代码
从服务器:
[root@client ~]# cat /etc/named.conf
options {
        listen-on port 53 {any;};
        directory       "/var/named";
};
zone "baidu.com" IN {
                type slave;
                file "slaves/named.baidu.com";
                masters {192.168.59.143;};
};

测试:
[root@localhost ~]# host www.baidu.com 192.168.59.142

[2]增量区域传送:仅复制区域里变化的文件

在修改主服务器的区域配置文件后,确保序号比之前的序号大

注:区域文件里面必须要写从服务器的NS和A记录

相关推荐
Komorebi.py2 分钟前
【Linux】-学习笔记05
linux·笔记·学习
亦枫Leonlew12 分钟前
微积分复习笔记 Calculus Volume 1 - 6.5 Physical Applications
笔记·数学·微积分
冰帝海岸5 小时前
01-spring security认证笔记
java·笔记·spring
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
wusong9999 小时前
mongoDB回顾笔记(一)
数据库·笔记·mongodb
猫爪笔记9 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
Resurgence039 小时前
【计组笔记】习题
笔记
pq113_610 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio
爱米的前端小笔记10 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
寒笙LED13 小时前
C++详细笔记(六)string库
开发语言·c++·笔记