一、DNS概述
DNS(域名解析服务Domain Name System)应用层协议:互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机,因为IP地址不便于记忆,DNS使用户可以通过容易记忆的域名可以快速访问各种网络资源
DNS是域名系统的英文缩写,他作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS,每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
域名解析服务的主要功能:
1.域名解析:将域名解析为对应的IP地址
2.反向解析:提供IP地址到域名的解析服务
3.域名别名和重定向:域名解析服务支持域名别名和重定向功能,通过配置域名解析记录,可以将一个域名重定向到另一个域名,或者为一个域名设置多个别名
1.缓存域名服务器
缓存域名服务器也称DNS高速缓存服务器,通过向其他域名服务器查询获得域名---IP地址记录,将域名查询结果缓存到本地,提高重复查询时的速度
2.主域名服务器
主域名服务器是特定DNS区域的权威服务器,是唯一的,负责维护该区域内所有域名---IP地址的映射记录,需要自行建立所负责区域的地址数据文件
3.从域名服务器
从域名服务器称为辅助域名服务器,是对主域名服务器的热备份,其维护的域名---IP地址记录来源于主域名服务器,需要从主域名服务器自动同步区域地址数据库
二、域名结构
主机名用于标识特定的设备或计算机,而子域名用于对主域名下的特定部分进行分类或组织
以www.baidu.com为例
www是主机名(开头不为.的都为主机名)
.baidu是二级域名
.com是一级域名
1.根域
使用“.”表示,位于域命名空间层次结构的最高层,在根域服务器中只保存了其下层的一级域的DNS服务器名称和IP地址对应关系
2.顶级域(一级域)
顶级域是根域下层,可以分两类:
1.组织域(.com、.net、.org、.gov、.edu、.mil等)
2.国家域(.iq、.tw、.hk、.jp、.cn等)
3.二级域
二级域在顶级域下层,为了在internet上使用而注册到个人或企事业单位的域名
4.子域(三级域)
根据具体情况从二级域中按部门或地理位置创建
5.主机名
位于DNS域命名空间的最低层,主要指计算机的主机名
6.查询方式
1.递归查询:发送解析请求后,等待结果返回就行,不用逐级查询
2.迭代查询:此查询的源不变,但查询的目标不断变化,为查询结构一般需要发起多次查询
三、DNS域名解析原理
1.先去查看本机的hosts文件,如果有直接访问hosts文件里的IP地址,没有去找缓存服务器(电信运营商)
2.如果缓存服务器有,直接反馈给用户,缓存没有就去找根服务器
3.根服务器只知道自己下级的服务位置,不会反馈直接的结果,只会透露有信息(迭代查询),让你去找顶级域(一级域)服务器
4.顶级域(一级域)服务器也(迭代查询),去找下级二级域服务器,注:找几次与域名长度有关
5.到达权威服务器,会直接反馈结果给缓存服务器,再由缓存服务器发给客户端
迭代查询:
1.向根域服务器发起迭代查询,找到域名所属的一级域服务器
2.向一级域服务器发起迭代查询,找到域名所属的二级域服务器
3.本地dns服务器会一直向下发起迭代查询,直到找到权威DNS服务器,向权威服务器发起递归查询,等待权威服务器反馈域名对应的IP地址
4.本地dns服务器将IP地址反馈给应用程序,递归查询结束
四、BIND构建域名服务器
DNS服务器软件:bind、powerdns、dnsmasq、unbound、coredns
1.bind(Berkeley Internet Name Daemon)
bind是DNS服务器软件,bind服务器可以提供域名解析服务,能够接收客户端的DNS查询请求,并返回相应的IP地址
官方网站:hhtp://www.isc.org/
2.bind服务器端程序及服务控制
五、host本地解析配置文件位置
linux hosts文件位置:/etc/hosts
windows hosts文件位置:c/windows/system32/drivers/etc/hosts
六、构建域名服务器正向解析实验
1.安装bind程序
yum install bind -y
2.查看bind主配置文件、区域配置文件、数据库文件
3.修改主配置文件/etc/named.conf相关配置
4.修改区域配置文件
5.修改正向区域数据文件
6.开启named服务、关闭防火墙和增强防护功能,然后查看named服务的状态
7.修改域名地址
/etc/resolv.conf