目录
BIND域名服务
DNS系统的作用
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便客户程序提供正向或反向的地址查询服务,即正向解析和反向解析。
●正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址,域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。
●反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。域名的反向解析不是很常用,只有在一些特殊场合才会用到,如可用于反垃圾邮件的验证。
DNS系统的分布式数据结构
DNS系统类型
每一台DNS服务器都只负责管理一个有限范围(一个或者几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。根据地址解析的方向不同,DNS区域相应的分为正向区域(包含域名到IP地址的解析记录)和反向区域(包含IP地址到域名的解析记录)。根据所管理的区域地址数据来源的不同,DNS系统可以分为不同的类型
缓存域名服务器
也称为DNS高速缓存服务器;通过向其他域名服务器查询获得域名——>IP地址记录;将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
特定DNS区域的权威服务器,具有权威性;负责维护该区域内所有的域名——>IP地址的映射记录;需要自行建立所负责区域的地址数据文件
从域名服务器
也称为辅助域名服务器,是对主域名服务器的热备份;其维护的域名——>IP地址记录来源于主域名服务器;需要从主域名服务器自动同步区域地址数据库
DNS查询类型及原理
查询方式
递归查询:
一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:
一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
查询原理过程
1)先查本机的缓存地址,再查询hosts文件
2)查询DNS域名服务器,交给DNS域名服务器处理
3)这个DNS服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
4)求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器,去找顶级域服务器
5)求助顶级域服务器,顶级域服务器返回可能知道结果的二级域服务器,去找二级域服务器
6)求助二级域服务器,二级域服务器查询发现是主机,把查询结果得到的IP地址返回给本机域服务器
7)本地域服务器将结果记录到缓存,然后把域名和IP对应关系返回给客户端
BIND的安装和配置文件
bind不是唯一能够提供域名服务的DNS服务程序,但它却是应用最为广泛的,BIND可以运行再大多数Linux/Unix主机中。
安装BIND软件
bind软件包的主要作用
bind:提供了域名服务的主要程序及相关文件
bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等。
bind-libs:提供了bind、bind-utils需要使用的库函数
bind-chroot:为BIND服务提供一个伪装的根目录,以提高安全性
bind服务的配置文件
使用BIND软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。其中,主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数:区域数据文件用于存放某个DNS区域的地址解析记录(正向和反向记录)
主配置文件
主配置文件named.conf通常位于/etc目录下,在named.conf文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以“;”结尾,代表结束,以#或//代表注释
全局配置
全局配置参数包括“options{};”的大括号中,可以监听的地址端口、区域数据文件存放的目录,允许哪些客户机查询等
区域配置
区域配置参数使用“zone........{};”的配置格式,一台DNS服务器可以为多个区域提高解析,因此在named.conf文件中可以有多个zone配置段,区域按照解析方向可分为正、反向区域。
各种资源记录
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。
A(internet Address):作用,域名解析成IP地址
AAAA(FQDN): --> IPV6
PTR(PoinTeR):反向解析,ip地址解析成域名
NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器
CNAME : Canonical Name,别名记录
MX(Mail eXchanger)邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮
件)记录,https验证等
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。
正向解析
安装bind软件包
[root@localhost ~]#yum install bind bind-utils.x86_64 -y
开启bind服务
[root@localhost named]#systemctl start named
或
[root@localhost named]#rndc reload
server reload successful
修改named.conf配置文件
[root@localhost ~]#vim /etc/named.conf
编写域名
[root@localhost ~]#vim /etc/named.rfc1912.zones
切换到/var/named目录下,
[root@localhost ~]#cd /var/named/
[root@localhost named]#ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
复制并保留权限
配置bin.com.zone文件
[root@localhost named]#vim bin.com.zone
重新配置网卡
[root@localhost named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost named]#systemctl restart network
重启网卡
测试
反向解析
编写域名
[root@localhost named]#vim /etc/named.rfc1912.zones
反着写网段
复制刚刚配置的文件,保留权限
[root@localhost named]#cp -p bin.com.zone bin.com.local
修改配置文件
[root@localhost named]#vim bin.com.local
重启named服务
[root@localhost named]#service named restart
测试
编辑HTML文件
安装apache
[root@localhost var]#yum install httpd -y
cd到/var/www目录下,编辑html
在浏览器输入本机地址,就会显示你刚刚在文件编辑的文件了