域名解析服务-DNS
一、DNS概述
DNS(Domain Name System)即域名系统、它使用层次结构的命名系统、将域名和IP相互映射
在整个互联网环境中连接了数以亿计的服务器以及个人主机、其中大部分网站都使用了域名形式的地址
域名就相当于我们的名字、而IP地址就相当于我们的身份证号码、很显然名字要身份证号码容易记得多
DNS在网络中的作用就是维护着一个地址数据库、其中记录了各种域名与IP地址的对应关系、以便为用户提供查询服务
1)DNS解析类型
DNS解析类型包括两种:
正向解析与反向解析、前者根据域名找IP、后者根据IP找域名 后者并不是很常用
2)DNS解析过程
1、 首先客户端先检查缓存以及本地host文件、如果这两个都没有则去请求本地DNS服务器
2、 本地DNS有则返回数据给客户端、没有则向根域服务器去请求
3、 根域服务器并不认识www.123.com、所以它只会返回.com服务器的地址给本地DNS服务器
4、 然后本地DNS服务器又去请求.com服务器、而.com服务器刚好记录了123.com服务器的地址
5、 之后本地DNS服务器又去请求123.com服务器、因为它有www.123.com 的记录、所以则返回它的地址给本地DNS
6、 最后本地DNS则会将返回请求的IP地址给客户端、并把这个保存在高速缓存中、如下图所示:
========================================================================================
3)DNS类型
根据所管理的区域不同、DNS也可分为不同的类型、在同一台DNS服务器中 对于不同区域来说、也拥有不同的身份
1、缓存域名服务器:目的在于提高查询速度和效率、自己没有控制的区域地质数据、部署时需要指定解析来源
2、主域名服务器: 维护一个特定区域的数据、是指定区域的权威服务器 部署时需要自行建立所负责的地址数据文件
3、从域名服务器: 与主一样、区别在于从的数据不是自己决定的而是来源于主、通常用于DNS服务器的热备份
4)DNS域名结构
1、根域: 根域位于域名空间的最高层、一般用一个“.”来表示
2、一级域:一般代表一种类型的组织机构或国家地区
组织域包括:com、.org、.mil、.gov、.net、.edu
国家域包括:cn、.hk、.tw、.us、.jp、.ir、.uk
3、二级域:用来标明一级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理、比如cn 顶级域名下面设置的二级域名 .com.cn、.edu.cn
4、子域: 二级域下所创建的各级域统称为子域、子域由字母[a-z]、数字[0-9]、与连接符"-"组成、各级域名之间用"."连接
5、主机: 主机为一台具体的计算机、位于域名空间的最下层、比如Web服务器:www.123.com、比如邮件服务器:mail.123.com
二、DNS部署
部署DNS可以使用bind软件、它不是唯一能够提供DNS服务的程序、但却是应用最为广泛的
1)安装Bind
提示:可以使用yum方式来进行安装、同时也可以使用源码包形式进行安装
[root@node1 ~]# yum -y install bind*
安装的时候会自动安装相应的依赖包、下面说明几个常用的:
bind: 提供域名服务的主要程序
bind-utils: 提供DNS测试工具 如dig nslookup
bind-libs: 提供bind、bind-utils使用的库函数
bind-chroot: 提供伪装目录 以此提高安全性
=============================================
安装之后会自动增加一个名为named的系统服务
配置文件位于:/etc/named.conf
数据文件位于:/var/named
2)Bind服务的配置文件
配置文件包含两种类型:主配置文件、区域数据文件
其中主配置文件用于设置named服务器的全局配置部分与区域配置部分、而区域数据文件用于存放某个DNS区域的地址解析记录
1、全局配置部分
options { listen-on port 53 { 127.0.0.1; }; #设置监听地址及端口 directory "/var/named"; #区域数据文件默认存放位置 dump-file "/var/named/data/cache_dump.db"; #指定缓存数据库文件 statistics-file "/var/named/data/named_stats.txt"; #状态统计文件位置 allow-query { localhost; }; #允许使用本DNS服务的网段 recursion yes; #允许使用递归查询 };
注意:如果不指定监听端口则默认在TCP和UDP接口中监听53号端口、不指定allow-query则默认相应所有客户请求
2、区域配置部分
区域配置参数使用 zone...{};配置格式、一台DNS可为多个区域提供解析、因此在named.conf中可以有多个zone配置端、区域类型包括正向和反向
#================================================ zone "mds.com" IN { #正向区域 type master; #类型为主区域 file "mds.com.zone"; #区域数据文件为benet.com.zone allow-transfer { 10.2.3.12; }; #允许下载数据的从服务器 }; #================================================ zone "3.16.172.in-addr.arpa" IN { #反向区域 type master; file "172.16.3.arpa"; #区域数据文件为10.2.3.arpa allow-transfer { 10.2.3.12; }; }; #================================================
需要注意的地方如下:
每个zone都是可选的、包括 根域;回环域;反向域、具体根据实际需求而定
反向区域的名称由倒序的网络地址和.in-addr.arpa组合而成
file用于指定实际的区域数据文件、文件可自定义、allow-transfer参数也可放在全局配置里
提示:修改完之后可使用"named-chekconf"对named.conf配置文件进行语法检查、如果配置文件没有问题则不给出任何提示、反之我们需要根据给出的提示信息进行排错
3、区域数据文件
区域数据文件位于:/var/named目录、每个区域数据文件对应一个DNS解析区域
在区域数据文件中包括:TTL配置项、SOA记录、地址解析记录、注释信息以分号;开始
(1)TTL配置及SOA记录部分
$TTL 1D #有效解析记录的生存时间 @ IN SOA mds.com. admin.mds.com. ( #SOA标记、域名、管理邮箱 2002 #更新序列号、可是10位以内的整数 1D #刷新时间、重新下载地址数据的间隔 1H #重试延时、下载失败后的重试间隔 1W #失效时间、超过改时间无法下载则放弃 3H ) #无效解析记录的生存周期
上面的配置:
单位默认为秒、也可以使用 M(分)、H(时)、W(周)、D(天)等单位
@表示当前的DNS区域名 相当于mds.com、而admin.mds.com表示域管理员邮箱
SOA记录中的更新序列号用来同步主、从服务器的区域数据 当从服务器判断区域数据时
若发现主服务器中的序列号与本地区域数据中的序列号相同、则不会进行下载
(2)地址解析记录部分
IN NS node1.mds.com. IN MX 10 mail.mds.com. node1 IN A 10.2.3.11 www IN A 172.16.3.11 mail IN A 172.16.3.12 ftp IN A 172.16.3.13 test IN CNAME www
以上配置中、四种常见的地址解析记录如下:
NS域名服务器:记录当前区域的DNS服务器的主机地址
MX邮件交换: 记录当前区域的邮件服务器的主机地址、10表示 当有多个MX记录时 选择邮件优先级、数字越大优先级越低
A地址: 记录正向解析条目
CNAME别名: 记录正向解析条目的其它名称
===========================================================
在反向区域中、不会用到A记录、而是用PTR指针记录、如下所示:
11 IN PTR www.mds.com. 12 IN PTR mail.mds.com.
使用PTR时、第一列只需指明对应IP地址的主机地址部分即可 例如 11和12
系统在查找地址记录时会自动将当前反向域的网络地址作为前缀
例如:11 IN PTR www.mds.com.、表示IP为172.16.23.11 主机的 域名是www.mds.com
要注意的是:当使用完整的FQDN时、务必记得在后面带上点号
===========================================================
修改完之后、可执行named-checkzone对区域文件进行检查、依次指定 区域名称和数据文件名作为参数
如果没有错误系统将给出OK信息、反之则根据提示排错、如下所示:
[root@node1 named]# named-checkzone mds.com mds.com.zone zone mds.com/IN: loaded serial 2002 OK
===========================================================
如果需要进行泛域名解析则:* IN A IP 即可
最后不要忘了、更改两个区域数据文件的属主和属组、不然可能解析不了 如下所示
[root@node1 named]# chown named:named mds.com.zone [root@node1 named]# chown named:named 172.16.3.arpa
三、部署缓存域名服务器
1)建立配置文件
缓存域名服务器一般架设与公司内外、目的在于提高域名解析速度 减少对互联网访问的出口流量
此次做缓存域名服务器我的IP为192.168.1.182、解析的时候只需将客户端的首选DNS设置此IP地址即可
安装我就不再赘述、如下所示 这是缓存域名服务器的配置文件
options { listen-on port 53 { 192.168.1.182; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; allow-query { any; }; recursion yes; };
这样配置的话就部署了缓存域名服务器、但是它会去向根域名服务器请求查询
我们有时候为了提高解析效率 也可不向根区域查询、而是将来自客户端的查询请求
转发给国内某运营商的DNS服务器、比如 223.6.6.6、202.96.134.133、114.114.115.115、119.29.29.29
然后缓存服务器收到返回的结果后再传递给客户端、只需注释根和在全局中设置forwarders参数即可实现转发功能
options { /////省略部分内容 forwarders { 202.96.134.133; 223.6.6.6; 114.114.115.115; }; };
最后重启named服务即可、重启时候查看端口是监听正常、默认为UDP和TCP的53号端口
[root@node1 ~]# netstat -anput | grep named tcp 0 0 192.168.1.182:53 0.0.0.0:* LISTEN 2095/named udp 0 0 192.168.1.182:53 0.0.0.0:* 2095/named
最后将首选DNS设置为此IP地址即可验证
2)验证缓存域名服务器
四、部署主域名服务器
主域名服务器通常架设与互联网环境、为了分担域名查询压力、提供数据备份 同时也会部署从域名服务器
此次环境如下:
主域名服务器:10.2.3.11
从域名服务器:10.2.3.12
网站服务器域名为:www.kawa.com、邮件服务器域名为:mail.kawa.com 对应的IP地址分别为:172.16.23.11、12
1)建立配置文件
#========================================================================= options { listen-on port 53 { 10.2.3.11; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; allow-query { any; }; recursion yes; }; #========================================================================= zone "kawa.com" IN { type master; file "kawa.com.zone"; allow-transfer { 10.2.3.12; }; }; #========================================================================== zone "23.16.172.in-addr.arpa" IN { type master; file "172.16.23.arpa"; allow-transfer { 10.2.3.12; }; }; #==========================================================================
2)建立区域数据文件
[root@node1 ~]# cd /var/named/ [root@node1 named]# cp named.localhost kawa.com.zone [root@node1 named]# cp named.localhost 172.16.23.arpa [root@node1 named]# chown named:named kawa.com.zone [root@node1 named]# chown named:named 172.16.23.arpa
1、正向数据文件
$TTL 1D @ IN SOA kawa.com. manager.kawa.com. ( 0 1D 1H 1W 3H ) IN NS ns1.kawa.com. IN NS ns2.kawa.com. IN MX 10 mail.kawa.com. ns1 IN A 10.2.3.11 ns2 IN A 10.2.3.12 www IN A 172.16.23.11 mail IN A 172.16.23.12 * IN A 172.16.23.255
2、反向数据文件
$TTL 1D @ IN SOA kawa.com. manager.kawa.com. ( 0 1D 1H 1W 3H ) IN NS ns1.kawa.com. IN NS ns2.kawa.com. 11 IN PTR www.kawa.com. 12 IN PTR mail.kawa.com.
3)验证主域名服务器
最后重启named服务进行验证即可 systemctl restart named
[root@node2 ~]# nslookup > www.kawa.com Server: 10.2.3.11 Address: 10.2.3.11#53 Name: www.kawa.com Address: 172.16.23.11 #===================================================================================== > mail.kawa.com Server: 10.2.3.11 Address: 10.2.3.11#53 Name: mail.kawa.com Address: 172.16.23.12 #===================================================================================== > abcd.kawa.com Server: 10.2.3.11 Address: 10.2.3.11#53 Name: abcd.kawa.com Address: 172.16.23.255 #===================================================================================== > 172.16.23.11 Server: 10.2.3.11 Address: 10.2.3.11#53 11.23.16.172.in-addr.arpa name = www.kawa.com. #===================================================================================== > 172.16.23.12 Server: 10.2.3.11 Address: 10.2.3.11#53 12.23.16.172.in-addr.arpa name = mail.kawa.com. #=====================================================================================
五、部署从域名服务器
延续上面的案例、在已经部署好主域名服务器的基础之上继续部署从域名服务器
1)建立配置文件
配置的时候大致相同、只是不需要再设置allow-transfer
#========================================================================= options { listen-on port 53 { 10.2.3.12; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; allow-query { any; }; recursion yes; }; #========================================================================= zone "kawa.com" IN { type slave; #类型指定为从 masters { 10.2.3.11; }; #指定主服务器IP地址 file "slaves/kawa.com.zone"; #指定下载区域文件所保存的目录 }; #========================================================================= zone "23.16.172.in-addr.arpa" IN { type slave; masters { 10.2.3.11; }; file "slaves/172.16.23.arpa"; }; #==========================================================================
随后我们重启named服务、然后到相应的目录查看是否已经下载了区域数据文件、需要有写入权限
[root@node2 ~]# ll /var/named/slaves/ 总用量 8 -rw-r--r-- 1 named named 321 6月 14 16:12 172.16.23.arpa -rw-r--r-- 1 named named 414 6月 14 16:12 kawa.com.zone
2)验证从域名服务器
将首选DNS的IP地址设置为 10.2.3.12然后在客户端上测试解析、如下所示:
[root@node1 ~]# nslookup > > www.kawa.com Server: 10.2.3.12 Address: 10.2.3.12#53 Name: www.kawa.com Address: 172.16.23.11 #========================================================================= > mail.kawa.com Server: 10.2.3.12 Address: 10.2.3.12#53 Name: mail.kawa.com Address: 172.16.23.12 #========================================================================= > 12345.kawa.com Server: 10.2.3.12 Address: 10.2.3.12#53 Name: 12345.kawa.com Address: 172.16.23.255 #========================================================================= > 172.16.23.11 Server: 10.2.3.12 Address: 10.2.3.12#53 11.23.16.172.in-addr.arpa name = www.kawa.com. #========================================================================= > 172.16.23.12 Server: 10.2.3.12 Address: 10.2.3.12#53 12.23.16.172.in-addr.arpa name = mail.kawa.com. #=========================================================================
【只是为了打发时间】
域名解析服务-DNS的更多相关文章
- 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)
(借鉴请改动) 第十二章收尾 12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在 /etc/export 写入格式:共享目录 允许的客户端(参数) ro ...
- 使用unbound提供DNS域名解析服务
使用unbound提供DNS域名解析服务 # 作者:Eric # 微信:loveoracle11g # 先配yum仓库 [root@server1 ~]# cd /etc/yum.repos.d/ [ ...
- DNS域名解析服务
一.DNS的体系结构: DNS:域名解析系统 DNS由根域.顶级域和子域构成.根域主要负责管理顶级域,顶级域主要负责管理其下面子域. .代表DNS的根域. .com..edu等代表顶级域. shou. ...
- DNS域名解析服务(bind)
DNS(Domain Name System,域名系统): 用于管理和解析域名与IP地址对应关系的技术. 简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的I ...
- DNS域名解析服务以及Bind服务程序
一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名解析服务( ...
- DNS域名解析服务(重点)
一 .DNS 系统的作用 1.DNS 服务器概述 DNS 系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名:与 IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正 ...
- DNS域名解析四种配置实验 ---Linux DNS域名解析服务
DNS域名解析服务一.BIND域名服务基础1) DNS的定义2)域名结构3)DNS系统的作用① 正向解析:根据域名查找对应的IP地址② 反向解析:根据IP地址查找对应的域名③ DNS系统的分布式数据结 ...
- 第三章、DNS域名解析服务
DNS 1DNS简介 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS ...
- 第13章 使用Bind提供域名解析服务
章节简述: 本章节将让您理解DNS服务程序的原理,学习正向解析与反向解析实验,掌握DNS主服务器.从服务器.缓存服务器的部署方法. 够熟练配置区域信息文件与区域数据文件,以及通过使用分离解析技术让不同 ...
随机推荐
- 初识Activiti工作流
一.背景介绍 公司最近接了一个监狱AB门系统的项目,在对项目进行调研时,发现客户的关注点主要是在AB门流程这块,项目大部分功能都是审批流程和单据流动状态等.而之前公司的项目关于流程主要都是在表中设置状 ...
- FFT 入门
推荐博客 :https://oi.men.ci/fft-notes/ 卷积的理解 : https://www.zhihu.com/question/22298352?rf=21686447 题目链接 ...
- PTA - 拓扑排序
一个项目由若干个任务组成,任务之间有先后依赖顺序.项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务.现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工 ...
- 一起来学习XPATH,来看看除了正则表达式我们还能怎么抓取数据
参考学习的网站链接http://www.w3school.com.cn/xpath/xpath_intro.asp 首先理清楚一些常识 以此为例 <?xml version="1.0& ...
- PairProgramming 个人第三次作业
Github地址:主仓库 https://github.com/Yanyixiao/PairProgramming.git Partner博客园地址: https://www.cnblogs.com/ ...
- ArcGIS10.2安装教程
1,首先要下载Arcgis 10.2软件,很大大约有2个多G.下载后分别全部解压. 2,首先,安装相应的LicenseManager,双击Arcgis 10.2打开安装界面,选择安装. 3,开始安装L ...
- [总结]ACM模拟总结
1.心态一定要稳,千万不要慌. 2.内部交流要多点,说不定就讨论出有用的性质了. 3.题目细节一定要想清楚. 4.一道题绝对不能让多个人来写. 5.英语要好好学.
- linux--->ab测试工具使用
ab测试工具使用 ab简介 是apache自带的压力测试工具.其原理是ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试ap ...
- Python变量、方法、类的命名规则
1. 变量命名总结: - 1.单下划线开头变量:protected - 2.双下划线开头变量:private - 3.双下划线开头,双下划线结尾:系统内置变量 2. 函数命名总结: - 1.私有方法: ...
- Stopping service [Tomcat] Disconnected from the target VM, address:XXXXXX解决方案
原文出处:https://blog.csdn.net/u013294097/article/details/90677049 Stopping service [Tomcat] Disconnecte ...