目录
一、名字解析介绍和DNS
1.1.什么是DNS
1.2.域名体系结构
1.3.DNS查询方式
1.4.DNS解析过程
1.5.DNS服务器类型
二、安装配置
2.1.DNS软件bind
2.2.修改权限 和 监听地址
2.3.手写域名配置文件
2.4.手写数据库配置文件
2.5检测文件格式的命令
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解 析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)
所有的域名必须以点
以www.baidu.com.为例
从后往前
根域名 :(.)
解析主机名+根域 www.
顶级域,一级域名:.cn(中国) .us .tw .kr(韩国) .jp(日本) .hk(香港)uk(英国) ,
解析主机名+顶级 www.com.
二级域名:.com.cn(中国商业组织) edu.cn(教育机构) .org.cn(非盈利) .net.cn(中国运营商)
解析主机名+二级域+一级域+根域 www.baidu.com
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
递归查询与迭代查询都能得到结果。
我要访问 www.baidu.com 服务器
1.先看我本机的 /etc/hosts 文件,如果有直接访问, 如果没有就去找你设置的缓存dns服务器
2. 如果 缓存服务器有, 直接反馈结果(递归),如果没有就需要迭代查询,
直接去找 根域服务,
3.由于根域服务器 只能 解析根 无法解析 www.baidu.com 但是 根域服务器会让你去找
一级域服务器
4.一级域发现自己 也解析 不了, 让你去找二级域,
5.二级域发现这台服务器在自己的 管理范围内,直接反馈结果给 缓存服务器
6.缓存服务器 再交给 客户
权威dns服务器:
只有他说了算,最后解析成功的服务器为权威服务器
缓存服务器:
1.也称为DNS高速缓存服务器。
2.通过向其他域名服务器查询获得域名——>IP地址记录.
3.将域名查询结果缓存到本地,提高重复查询的速度。
主域名服务器:
1.特定DNS区域的权威服务器,具有唯一性
2.负责维护该区域内所有域名-->IP地址的映射记录
3.需要自行建立所负责区域的地址数据文件
从域名服务器
1.也称为辅助域名服务器,是对主域名服务器的热备份
2.其维护的域名-->IP地址记录来源于主域名服务器
3.需要从主域名服务器自动同步区域地址数据库
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
bind:服务器
bind-libs:相关库
bind-utils: 客户端
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
@ 域名
IN 使用internet 协议
SOA 表明 这条配置的基本 功能 记录 A 正向解析 将域名解析成ip PTR 反向解析将ip转换成域名
master 定义谁是dns服务器
rname.invalid. 邮箱
0 ; serial #是否有更新 版本号 更新文件 手动把 0 加1
1D ; refresh #刷新时间 拉取时间
1H ; retry #失败后一个小时 后再试一次
1W ; expire #过期时间,老是拉取不了,1周以后过期
3H ) ; minimum #老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回
named-checkconf 主配置文件
named-checkconf /etc/named.conf
/etc/named.conf:59: missing ';' before 'include'
named-checkzone 域名 数据库文件
named-checkzone kgc.com /var/named/kgc.com.zone