目录
二、Bind(Berkeley Internet Name Daemon)
一、DNS域名解析
首先,我们要知道DNS是什么,DNS(Domain Name System)是域名系统的英文系统,是一种组织成域层次结构和计算机和网络服务命名系统,用于TCP/IP网络。
DNS实际上是域名解析协议,将域名转化为IP地址;
在早期的域名解析的时候,是iana组织负责将域名和IP地址进行对应,并对其进行排列综合,形成了hosts文件,一个IP地址对应一个域名
我们可以进入/etc/hosts配置文件为www.baidu.com.域名配置192.168.241.123的IP地址;
hosts配置文件的优先级最高;
可以进入 /etc/nsswotch.conf #可以修改DNS的优先级
将dns写在file前面
1.DNS的作用
通常识别主机的方式为主机名或者IP地址。人们更倾向于去记忆主机名,类似于www.baidu.com,而IP地址复杂且难记。为了解决这种问题,我们使用DNS域名解析服务,对IP地址进行解析,将可用的IP地址转化为域名,域名系统作为将域名和IP地址相互映射的一个分布式数据库,基于C/S架构,服务端口号为tcp53,udp53;实际上每台DNS域名解析服务器都只负责一个有限的范围(只负责自己范围内的解析)
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
2.域名的组成
2.1域名层级结构关系特点
- 因特网采用层次树状结构的域名结构
- 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
- 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
- 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边。
- 完整的域名不超过255个字符。
2.2域名空间构成
上图展示了 DNS 服务器的部分层次结构,从上到下依次为根域名服务器、顶级域名服务器和权威域名服务器。域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。
2.3域名的四种不同类型
- 根域名服务器 根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器。当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个DNS客户最近的一个根域名服务器。这就加快了DNS的查询过程,同时也更合理地利用了因特网的资源。
根域:“ . ”;全球根域服务器节点只有13个,10个在美国,1个在荷兰,1个在瑞典,1个在日本
- 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。
顶级域名也称一级域名(Top Level Domain:tid);顶级域:“ .com ”
- 权限域名服务器 这些域名服务器负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。
权限域名服务器也称组织与,国家域(.cn .ca .hk .tw);比如像.baidu就是权限域名服务器
- 本地域名服务器 本地域名服务器不属于上述的域名服务器的等级结构。当一个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
本地域名服务器也称主机名,比如www就是主机名
最多可达127级域名
2.3.1延伸
ICANN(The internet Corpora-tion for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
2.3.2总结
根dns服务器只能解析 主机名 + 根域 ;例如根域无法解析www.baidu.com.,只能解析com.,但是会告诉该地址,它的下一级地址可以解析baidu.com.
顶级域(一级域)的dns服务器只能解析 主机名 + 一级域 +根域 ;例如www.baidu.com.
二级域的dns服务只能解析 主机名 + 二级域 + 一级域 +根域 ;例如www.baidu.com.
3.DNS域名解析过程
域名解析包含两种查询方式,分别是递归查询和迭代查询,两种查询方式都可以得到结果,但是递归只需要询问一次即可得到结果,迭代需要询问多次才可以得到结果。
DNS域名解析的次数和域名长度有关
3.1递归查询
一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
3.2迭代查询
一般情况下,本地的DNS服务器向其他DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询(需要自己手动)
3.3一次DNS解析的过程
假如我要访问www.baidu.com.服务器
1.首先看我本机的 /etc/hosts 文件,如果有的话直接访问,如果没有就去找你设置的缓存DNS服务器
2.如果缓存服务器有,直接反馈结果(递归)如果没有就需要迭代查询,直接去找根域服务
3.由于根域服务器只能解析根,无法解析www.baidu.com. ;但是,根域服务器会让你去找一级域服务器
4.一级域发现自己也解析不了,让你去找二级域
5.二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器
6.缓存服务器再交给客户
4.DNS系统类型
4.1缓存域名服务器
- 缓存域名服务器也称DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名→IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
4.2主域名服务器
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域内所有域名→IP地址的映射记录
- 需要自行建立所负责区域的地址数据文件
4.3从域名服务器
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名→IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据库
权威DNS服务器,最后谁解析DNS,谁为权威服务器,最后解析成功的服务器为权威服务器
二、Bind(Berkeley Internet Name Daemon)
- Bind是应用最广泛的DNS服务程序
- 官方站点:https://www.isc.org/
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
- bind:服务器
- bind-libs:相关库
- bind-utils: 客户端
- bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
1.搭建内网DNS服务器
实验目的:在内网服务器上可以使用域名进行上网
1.1安装bind软件包
安装bind的时候会自动生成一个名叫named的用户
安装完软件后 要找到两个东西 (1.配置文件位置 2.主程序的位置)
rpm -qc 可以找到配置文件的位置
rpm -ql可以找到主程序的位置
1.2修改DNS地址
安装完软件后,要找到两个东西(1.配置文件位置;2主程序位置)
rpm -qc #可以找到配置文件的位置
rpm -qc #可以找到主程序的位置
其中,bind是安装包的名字,namde是程序的名字
named程序的主要文件:
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #子配置文件 域名配置文件
/var/named #程序库文件
启动named程序的话 会先读取主配置文件
然后读取include包含的子配置文件
1.3重启网卡
会出现如下报错
1.4再次ping百度地址
DNS解析使用的是TCP和UDP的53端口
1.5配置本机为DNS内网解析服务器
修改监听端口为任意;修改权限为任意
1.6修改客户端配置
1.7验证
此时内网DNS服务器就搭好了
2.正向解析——通过域名解析IP地址
实验目的:在内网环境中,需要有一台自己的dns服务器,去解析内网的服务
2.1安装bind工具包——bind-utlis
2.2修改配置
2.3手写域名配置文件
vim /etc/named.rpc1912.zones
2.4手写配置文件
拷贝named.localhost例子,到cxk.com.zone
vim /var/named/cxk.com.zone
@:域名;
IN:使用Internet协议
SOA:这条配置的基本功能
A:正向解析(将域名转化为IP地址);PTR:反向解析(将IP地址转化为域名)
master:定义了谁是dns服务器
2.5开启named服务
2.6验证
使用dig来解析域名
显示www.cxk.com的地址是192.168.241.111
2.6.1检测命令
named-checkconf 主配置文件
named-chechconf /etc/named.conf
named-checkzone 域名 数据库文件
named-checkzone cxk.com /var/named/cxk.com.zone
3.反向解析
3.1修改配置文件
vim /etc/named.rfc1912.zones
3.2检查主配置文件格式
3.3复制数据库文件进行修改
3.4重启dns服务
3.5修改配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
3.6重启网卡
3.7测试
4.主从复制
4.1原理
4.2主从服务器一起配置
在Xshell中选择工具一栏,选择“发送键输入到所有会话”
关闭防火墙
4.3统一安装bind-utils
4.4修改主配置文件
4.5修改域名配置文件
4.6修改网卡配置——主从复制
4.7重启网卡
4.8验证主服务器
4.9从服务器配置
4.10修改监听与权限配置
4.11修改从配置文件
4.212重启网卡验证从服务器
4.13关闭主服务器,测试从服务器
重启从服务器的dns服务
4.14补充
5.分离解析
分离解析:一个服务器可以解析两个服务器地址
5.1安装工具包
5.2修改配置文件
vim /etc/named.rfc1912.zones
5.3复制文件格式修改配置文件
5.4添加网卡
5.5复制且修改网卡配置信息
5.6设置Windows地址
6.CDN——内容分发网络
静态资源:不需要服务器二次处理的(图片、txt、视频)
动态资源:需要服务器二次处理的(java、Python、php)
状态代码:404错误、200正确、304缓存