文章目录
1.DNS产生背景
我们知道ip地址一开始是32位的,分成四段,用点分十进制表示,我们在浏览器上浏览文章时,我相信大家应该没有见过在地址栏中出现ip地址吧,这样是因为数字不太容易记住,人脑更喜欢记忆符号化的数据。
网络上的数据需要通过ip地址来进行路由,最终传送到目的地,比如ip报文中首部的源地址和目的地址,没有ip地址是不行的,但为了解决难记忆的问题,人们想到把ip地址映射到一个主机名,这样访问该主机名就相当于访问该ip地址 ,那就是 /etc/hosts 这个档案的用途了。
可惜的是,这个方法还是有缺憾的,那就是主机名与 IP 的对应无法自动于所有的计算机内更新, 且要将主机名加入该档案仅能向 INTERNIC 注册,若 IP 数量太多时,该档案会大到不象话,也就更不利于其他主机同步化了。
为了解决这个日益严重的问题,柏克莱大学发展出另外一套阶层式管理主机名对应 IP 的系统, 我们称它为 Berkeley Internet Name Domain, BIND 这也是目前全世界使用最广泛的领域名系统 (Domain Name System, DNS)
2.DNS与BIND
DNS 是一种因特网的通讯协议名称, 至于 Bind 则是提供这个 DNS 服务的软件 。
3.FQDN(完整主机名)、领域名、主机名
领域名底下还可以记录各个主机名, 领域名和主机名组合起来才是完整的主机名 (FQDN)
域名限制了范围,而主机名显示了对象,加在一起就是完整路径。比如北京(领域名)的小海(主机名),完整主机名(FQDN)就是 小海.北京.(注意最后的小数点,代表根域名)
例如下面的或许更形象
4.使用传输层协议
通常 DNS 查询的时候,是以 udp 这个较快速的数据传输协议来查询的, 但是万一没有办法查询到完整的信息时,就会再次的以 tcp 这个协定来重新查询的 。
5. DNS 数据库的记录:正解, 反解, Zone 的意义
-
从主机名查询到 IP 的流程称为:正解
-
从 IP 反解析到主机名的流程称为:反解
-
不管是正解还是反解,每个领域的记录就是一个区域 (zone),每一个区域对应一个解析文件。
另外,每一部 DNS 服务器都可以管理多个领域,不管是正解还是反解。
6.架设BIND
要架设好 BIND 需要什么设定数据呢?基本上有两个主要的数据要处理:
-
BIND 本身的配置文件:主要规范主机的设定、zone file 的所在、权限的设定等;
-
正反解数据库档案 (zone file):记录主机名与 IP 对应等。
本次搭建服务器基于redhat 5
7.caching-nameserver
dns配置文件模版
8.服务安装
[root@localhost ~]#yum install bind
[root@localhost ~]#yum install bind-chroot
[root@localhost ~]#yum install caching-nameserver-9.3.4-6.P1.el5.i386.rpm //dns配置文件模版
9.搭建目标
DNS服务主机IP:192.168.1.224 名称 dns.example.com
管理员邮箱:master@domin.com
正向解析:
www.example.com 192.168.1.10
mail1.example.com 192.168.1.20
mail2.example.com 192.168.1.21
web.example.com 是 www.example.com的别名 (访问前者等于访问后者)
NAME TYPE VALUE
--------------------------------------------------
web.example.com. CNAME www.example.com.
www.example.com. A 192.168.1.10
反向解析
192.168.1.224 反向解析 dns.example.com
192.168.1.10 反向解释 www.example.com
192.168.1.20 反向解析 mail1.example.com
192.168.1.21 反向解析 mail2.example.com
10.修改主配置文件
[root@localhost ~]#vim /var/named/chroot/etc/named.caching-nameserver.conf **
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bin