问:什么是“DNS”?其中文为何?
答:DNS,简单地说,就是Domain Name System,翻成中文就是“域名系统”。
问:DNS有什么用途?
答:在一个TCP/IP架构的网络(例如Internet)环境中,DNS是一个非常重要而且常用的系统。主要的功能就是将人易于记忆的Domain Name与人不容易记忆的IP Address作转换。而上面执行DNS服务的这台网络主机,就可以称之为DNS Server。基本上,通常我们都认为DNS只是将Domain Name转换成IP Address,然后再使用所查到的IP Address去连接(俗称“正向解析”)。事实上,将IP Address转换成Domain Name的功能也是相当常使用到的,当login到一台Unix工作站时,工作站就会去做反查,找出你是从哪个地方连线进来的(俗称“逆向解析”)。
以下是DNS的基本介绍
DNS 数据库的类型:hint, master/slave 架构
Master:
这种类型的 DNS 数据库中,里面所有的主机名相关信息等,通通要管理员自己手动去修改与设定,设定完毕还得要重新启动 DNS 服务去读取正确的数据库内容,才算完成数据库更新。
Slave:
假如我们有3个DNS来服务器设置了master数据库类型,当某个用户要更改或者删除数据时,我们就需要同时对这个3dns服务器都来进行修改,这个时候我们就可以设置slave数据库类型,我们只需要设置一个主的master,而其他两个设置成为slave就可以了.修改的时候,我们只需要动一下master里面的配置文件,然后重新启动bind这个服务,其他两部就可以自动被通知更新了
Master / Slave 数据的同步化过程
Master 主动告知:例如在 Master 在修改了数据库内容,并且加大数据库序号后,重新启动 DNS 服务,那 master 会主动告知 slave 来更新数据库,此时就能够达成数据同步;
·由 Slave 主动提出要求:基本上, Slave 会定时的向 Master 察看数据库的序号,当发现 Master 数据库的序号比 Slave 自己的序号还要大 (代表比较新),那么 Slave 就会开始更新。如果序号不变,那么就判断数据库没有更动,因此不会进行同步更新.
DNS的正、反解查询指令
/var/named/chroot/ 根文件
/var/named/chroot/etcdns 服务器配置文件
/var/named/chroot/var/named 区域文件
DNS主要配置文件: /etc/named.conf
架设 DNS 所需要的软件
bind-9.3.6-4.P1.el5.i386. DNS主程序
bind-chroot-9.3.6-4.P1.el5.i386.rpmDNS 这个包可以增加DNS的安全性
rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm DNS配置文件的样例文件
/etc/named.conf : 这就是我们的主配置文件啦!
/etc/sysconfig/named :是否启动 chroot 及额外的参数,就由这个档案控制;
[root@www ~]# vim /etc/named.conf
options {
listen-on port 53{ any; }; //可不设定,代表全部接受
directory"/var/named"; //数据库默认放置的目录所在
dump-file"/var/named/data/cache_dump.db"; //一些统计信息
statistics-file"/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query{ any; }; //可不设定,代表全部接受
recursion yes; //是否做递归查询
forward only; //可暂时不设定
forwarders {//是重点!
};
};//最终记得要结尾符号!
listen-on port 53 { any; }; 监听在这部主机系统上面的哪个网络接口
directory "/var/named"; 如果此档案底下有规范到正、反解的 zone file 档名时,该档名预设应该放置在哪个目录底下的意思。
dump-file, statistics-file, memstatistics-file与 named 这个服务有关的许多统计信息.
allow-query { any; } 这个是针对客户端的设定,到底谁可以对我的 DNS 服务提出查询请求的
forward only 这个设定可以让你的 DNS 服务器仅进行 forward
forwardersdns 服务器转发
对配置文件的声明
Vimnamed.rfc1912.zones
zone "localhost" IN {
type master;locahost 声明为主配置域
file "localhost.zone"; 区域文件名存放的位置
allow-update { none; }; 是否支持动态更新
zone "." IN {
type hint; 记录了“.”的区域文件提示
file "named.ca" 提示上一级DNSserver的地址
zone "0.0.127.in-addr.arpa" IN { 反向区域文件的声明
type master;
file "named.local";
allow-update { none;
授权
需要在文件记录里面指明需要授权服务器的地址对IP
例:需要对某公司进行DNS授权,我们先在区域文件记录进行修改
sh.abc.aom. IN NS ns.sh.abc.com
ns.sh.abc.com IN A 192.168.1.1
转发
首先需要在主配置文件 named.conf中28行下增加
forwards { 需要转发到那台主机的地址;};两个分号不能丢
正解文件记录的数据 (Resource Record, RR)
图2
A, AAAA :查询 IP 的记录
NS :查询管理领域名 (zone) 的服务器主机名
SOA :查询管理领域名的服务器管理信息
MX是对邮件服务器进行设置的
语法检测:
named-checkconf检测主配置文档+需要检测文件的地址
named-checkzone检测区域文件+需要检测文件的地址
tail -n 20 -f /var/log/messages通过日志文件
记录数据详解格式
1.Master DNS 服务器主机名:这个领域主要是哪部 DNS 作为 master 的意思
2.管理员的 email:那么管理员的 email 为何?发生问题可以联络这个管理员
3.序号 (Serial):这个序号代表的是这个数据库档案的新旧,序号越大代表越新.
4.更新频率 (Refresh):那么啥时 slave 会去向 master 要求数据更新的判断
5.失败重新尝试时间 (Retry):如果因为某些因素,导致 slave 无法对master 达成联机,那么在多久的时间内,slave 会尝试重新联机到 master。
6.失效时间 (Expire):如果一直失败尝试时间,持续联机到达这个设定值时限,那么
7.slave将不再继续尝试联机,并且尝试删除这份下载的 zone file 信息
8.快取时间 (Minumum TTL):如果这个数据库 zone file 中,每笔 RR 记录都没有写到TTL 快取时间的话,那么就以这个 SOA 的设定值为主。
CNAME :设定某主机名的别名 (alias)
例:
www.google.com. IN CNAME www.l.google.com.
只刷新刚添加的记录执行 rndc reload
DNS反向解析
查询 IP 所对应的主机名
/etc/named.conf 的设置
allow-transfer ( none; };是否允许来自 slave DNS 对我的整个领域数据进行传送
type自己手动修改数据库档案的 master,与可自动更新数据库的 slave
file就是zone file 的檔名
反解 zone主要就是 in-addr.arpa
vim /var/named/named.ca的设置
这里指明一下字符
一定要从行首开始写如果前面有空格则表示从下一个domain开始
@表示本区域,本档案里面的
.它代表一个完整的主机名字
$TTL理解你要从DNS哪里快取文件多长时间
DNS 的启动、观察日志文件
CDN 内容分发网络原理
由一台全局负载均衡器F5和分布在全国8个节点的CacheServer组成,提供页面访问加速与加速功能
1)用户向提供要访问的域名
2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际 IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中使用全局负载均衡DNS解析,如根据地理位置信息解析对应的 IP地址,使得用户能就近访问 w问问
3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求
4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析(一般通过host文件解析)得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
5)、缓存服务器从实际IP地址得得到内容以后,先在本地进行保存,用做缓存,然后把获取的数据返回给客户端,完成数据服务过程;
6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
没有使用cdn的
可对比下未使用CDN缓存网站的访问地程: 用户访问未使用CDN缓存网站的过程为: 1)、用户向浏览器提供要访问的域名
2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址
3)、浏览器使用所得到的IP地址,向域名的服务主机发出数据访问请求
4)、浏览器根据域名主机返回的数据显示网页的内容
实现DNIT转换
需要用到视图
需要编辑 /etc/named.conf文件
定义:Acl lan {内部地址}访问控制列表
图3
产生abc.com.zone1区域文件
Iptables –t nat –A PRERPUTING –d 外部地址–p tcp –dport 80 –j DNAT –to 外部地址
Iptables –t nat –L –vv –line-number查看列表
DNS性能测试
queryperf
bind-9.7.4.tar.gz 进行源码安装
生成
图4
选项–s对那台服务器进行测试
-d指明输入文件