一.
什么是DNS
dns 的全名是domain name system <域名系统> , 它是为了方便访问互连网而采用的一种 域名和ip地址 之间相互转化的管理方法. <每台主机间的访问都用ip地址是不现实的>
简单的说就是: dns 服务器解决了ip地址和名称之间的转化过程, 这就是为什么访问者在不知道一个网站的ip地址的情况下, 还可以根据网站的名字而轻松访问网站的原因.
如新浪网的网址为:
www.sina.com
而它的一台服务器的地址为 1.1.1.1
这样dns 服务器记录的是
www.sina.com.
-------1.1.1.1
客户访问时 只需输入 网址即可
原理如图
:
过程
:
当用户要访问www.sina.com.cn时 会向网络中的dns服务器发送dns 请求 "请告诉我
www.sina.com.cn的ip地址."
当dns 服务器在线时并且收到dns请求后 会回应这个dns请
求 "www.sina.com.cn 的ip地址是 1.1.1.1 " 用户收到dhs 应答包 就知道www 服务器的ip地址 然后用户主机就会发送目的地址 为 1.1.1.1 的 数据包进行通讯
DNS有关的名词解析
<1> 域
: 一种递归管理网的方法, 以树状结构的形式来寻址,以便方便的找到目的地
就像一个人的身份证一样. 属于那个国家, 哪个省,那个市,哪个县........
只不过域的划分是按: 国家. 类别 组织等
如图所示
<2> dns 服务器
: 也称:dns <domain name server> , 他是为普通客户机提供域名解析服务的
服务器
主dns 服务器: 区域内主要的dns服务器, 其内部的dns数据记录为原始记录 可以进行
修改
辅助dns服务器: 像主dns一样为 区域内的主机提供dns服务 不过他的dns 数据记录
是从主dns上拷来的 ,只能根据主dns的数据变化而变化
cachonly 服务器: 它不属于任何域 但是却缓存dns数据 为其他主机提供dns 服务
存根服务器: 这种服务器记录那些访问的比较频繁的 dns记录
<3>查找区域:
可分为:
正向查找区域: 根据名字解析ip地址<90% 的查找都是正向的>
反向查找区域: 根据ip地址解析名字<10%>
<4>记录类型
: 正向区域:
①
SOA记录 <授权起始记录><这里面包含了: 主dns 服务器; 管理
员邮箱; 刷新的策略>
②
NS 记录 <该区域内的dns 服务器> //所有的dns服务器都记录
③
A 记录 <名称到地址的映射关系> //前面是名称后面是地址
④
CNAME 记录 <别名记录> // 记录主机别名
反向的查找区域: PTR记录 // 记录ip地址到域名的对应关系
配置简单实例:
这里配置一台linux 主机上的dns服务器
实验环境: linux 做dns 服务器 windows 2003 做客户机
目标: 在客户机上执行nslookup + ip地址可以解析到dns域名
或者在客户主机上 ping 某个服务主机 看是否可以解析到域名
首先搭建实验环境:
局域网内部 实现主机和服务器的连通
客户机配置
:
ip地址 192.168.1.20 首选dns 指向linux服务器 即 192.168.1.1
二.在linux操作系统上搭建dns 服务器
<1>
首先安装dns 服务
mount
/dev
/crom /mnt/cdrom
cd /mnt/cdrom/Server
rpm -ivh bind-9.3........<
参数太多还是省略了吧 反正按tab 键可以出来
>
rpm -ivh caching-named-server
rpm -ivh bind-chroot
<
以上三个包安装后就行了 注意三个顺序一定不要乱了,乱了的话会出问题的 这与
依赖关系有关吧,也不是太明白 >
安装后在查询效果如下:
<2>
编辑有关的配置文档
主要的有几个:
/
var/
named/
chroot/
etc
下的 :
named.conf
<
这个是主配置文档的模板
named.caching-nameserver.conf 拷贝过来的
>
n
amed.rfc1912.zones <这个是区域主配置文档 里面声明了dns内有几个区域
以及这些区域的配置文件的名字及放置的地方>
/var/named/chroot/var/named
下的:
localhost.zone
<这个是区域配置文件的模板文件>
下面是以上配置文件的具体配置方法:
cd /var/named/chroot/etc
cp -p named.caching-namedserver.conf named.conf
vim namd.conf
name.conf <以截图说明>
这一步的配置主要是 讲几个 主要参数改为 any 就行了
vim
n
amed.rfc1912.zones
named.rfc 编辑后截图 如下
上图中 下面的那个区域的五行是从上面拷贝并编辑过来的 事实上也就加这五行就行了
依据上图: 有区域 hh.com 并且 区域文件放在 hh.com.db 中
则 将
/var/named/chroot/var/named/
中的
/localhost.zone
拷贝为
hh.com.db
作为 这个区域的配置文档 然后
vim hh.com.db
截图如下:
正如上如所示 在数据文件中添加了
www
和
ftp
服务器的主机记录
到这里基本上配置完成:
可以使用几个命令来验证你手工编辑的几个文件的正确性
named-checkconf /var/named/chroot/etc/named.conf
config文件所在目录
named-checkzone hh.com /var/named/chroot/var/named/hh.com.db
域名 域文件所在位置
然后重启dns 服务
service network restart
或者用
rndc reload
来更新配置文件
下面开始在客户机上验证dns的配置是否成功
在命令行模式下输入
nslookup
www.hh.com
nslookup ftp.hh.com
得到结果如图;
从结果可以看出已经可以解析到记录了
以上做的是一个主dns 服务器下面开始我们把linux主机配制成另外一个区域的辅助dns服务器
三.
把linux主机配置成辅助dns服务器
实验环境:
同上
但这次 配置另一个区域 并且把linux主机当做辅助dns服务器
原理:
辅助dns 会从主dns 服务器上边复制数据
在辅助dns上的区域配置文件是自动产生的
<1>在windows 上配置主dns服务器
配置一个名为 qq.com 的主区域
主机记录
mail.qq.com
3.3.3.3
test.qq.com
4.4.4.4
<2> 配置linux 上的辅助区域
这里需要编辑 named.rfc文档<这里只是缩写.按TAB键就能出来>
加入如下几行:
zone "ns1.qq.com" IN {
type slave;
\\这里声明自己是辅助dns
master
s
{ 192.168.1.1; };
\\
这里声明主dns的地址
file "/var/named/slaves
/qq.com.db
";
\\辅助dns数据放置的位置
};
这里的qq.com.db是不用手工创建的 因为他是从主dns上拷贝过来的
注意 主dns不能开启防火墙或者将dns这一项改成例外 要不让复制不过来
然后重启dns服务 或者 r ndc reload 就行了
下面是截屏:
到这里看来区域复制已经完成.下面还有关于dns的委派关系
四: dns的委派关系
委派关系就是管理一个大区域的dns服务器将他的dns解析功能或者权利下放到隶属于他的某一个比较小的dns服务器,即他的子dns服务器
这里以一台linux主机作为父域的dns服务器
在父域创建名为 aaa.com的主区域作为父域
并创建 bj.aaa.com 为他的一个子域
创建主机记录 www 7.7.7.7
mail 8.8.8.8
只在它上面演示如何编辑需要的文件就行了
这里还是需要改named.rfc 文档
加入如下图
创建父域和子域的区域数据文档
即:
aaa.com.db
bj.aaa.com.db
编辑 aaa.com.db
在编辑 aaa 时需要将他所授权的子域bj.aaa.com给声明出来
如图:
这便是一次完整的授权 验证 省略
dns 到这儿基本就这么多了
反向解析不常用不再解释了:
<the end >