DNS 是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
它负责把域名转换为ip地址,人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
DNS最主要实现方式 是FQDN 向IP地址解析.由根域,顶级域,二级域,子域,主机名组成。整个域名空间是以倒置树形。结构组成
正向解析: FQDN-->IP
反向解析: IP-->FQDN
正反向解析技术不同,不应该存放于同一个数据库文件中进行。
查询:
递归查询:发出一个请求,最终得到答案。
迭代查询:发出一次请求,不一定得到答案。
DNS服务器类型
主服务器 master
辅助DNS服务器 slave
缓存名称服务器
转发服务器 foward
Linux 中DNS服务是由 bind 这个开源软件来提供的。在安装这个软件后,有后台守护进程来 named 控制,运行此进程的用户是系统用户 named。为了安全考虑,named 进程一般运行于 chroot 环境中,模拟的根在 /var/named/chroot 目录下。
配置文件服务脚本: /etc/init.d/named
主配置文件: /etc/named.conf /etc/named.rfc1912.zones
区域配置(解析库)文件:/var/named/NAME.zone
主配置文件,全局配置options:主要定义端口,监听IP地址,是否递归,等选项
日志系统配置:logging
区域定义 :zone 能为指定目录下zone 进行解析
配置主DNS 服务器
首先在主配置文件中 定义区域zone
解析域名首先要定义一个zone 文件 ,路径是相对路径 默认路径是放在 /var/named/以zone结尾的文件
zone ,,每一个资源记录都有类型用于表示资源的功能
SOA:起始授权
NS:域名服务器
MX:邮件交换器
A:IPv4 地址
PTR:反向解析
AAAA:IPv6
CNAME:正式名称
对应 域名服务器 一定要有一定 A 记录
@表示当前区域的区域名
用dig 命令 测试dns
反向解析:
反向解析区域数据库文件:区域名称以逆向的网络地址,并以.in-addr.arpa为后缀
第一条必须SOA
应该具有NS记录,但不能出现MX和A记录
较常见的微PTR记录
名称为逆向的主机名
在主配置文件添加一个zone
辅助DNS 服务器
要定义配置文件 下 建立zone区域
如果主DNS 服务器 通知辅助DNS服务器 解析库文件中加入辅助DNS 服务器
之后 添加一条NS 记录和A记录 辅助DNS 服务器 IP 地址,DNS 一般是以named用户运行。改变属主和属组。更新主DNS 服务器,要在版本号上加1,这样才能通知辅助服务器来更新DNS 解析库文件。
注意:DNS辅助服务器在去主服务器同步数据时,我们首先要保证时间同步
子域授权:是指在原有的区域划分一个小区域并指定新的DNS 服务器,这个小区域如果有客户端请求分析,则只要找到新的子DNS服务器,这样可以减轻主DNS服务器的压力,便于管理,一般都是正向解析。
正向解析区域子域方法:
定义一个子区域:例如
ops.leifeng.com. IN NS ns1.ops.leifeng.com.
ops.magedu.com. IN NS ns2.ops.leifeng.com.
ns1.ops.leifeng.com. IN A 1.1.1.1
ns2.ops.leifeng.com. IN A 2.2.2.2
fin.leifeng.com. IN NS ns1.fin.leifeng.com
fin.leifeng.com. IN NS ns2.fin.leifeng.com.
ns1.fin.leifeng.com. IN A 3.1.1.1
ns2.fin.leifeng.com. IN A 3.3.3.3
在主服务器 解析库文件中定义一个 NS 和A 记录
在子域配置文件添加zone
解析库文件
子域是无法解析父域的,因为当接到这个查询的时候它会转发给跟"."经过根查询来查找父域
如果想继续查询的话,一般都是转发给 父域让父域来解析
定义转发域
转发有两种方式
全局转发 :对非本机所有负责的解析的区域的请求,统统转发的给服务器
在解析库添加
区域转发:禁转发对特定区域的请求至某服务器
bind view
视图:一个bind 服务器可定义多个view,每个view中可定义一个或多个zone,每个view用来匹配一组客户端,每个view内可能需要对同一区域进行解析,但使用不同的区域解析库文件
view检查是自上而下的。优先有匹配的view放在上面。一旦启用了view ,所有的zone都只能定义在view,仅有必要在匹配到允许递归请求的客户端所在view区域中定义根区域。
电信网通,之间互访延迟很大,为了让客户获得更好的上网体验,在电信和网通线路上各假设一台服务器,,其中一台接入电信专线,一台接入网通专线。但是要让用户透明的访问此网站,不需要让用户进行人工的网站选择。我们可以采用DNS服务器中的view功能,让不同的IP指向在不同网络上的主机。
基本格式: view VIEW_NAME {
zone {};
zone {};
};