DNS

DNS服务机——主机名控制者

由于人们对文字的记忆比数字高,纯粹使用TCP/IP这些数字是很难记忆的 为了适应人们的习惯 DNS服务帮我们将主机名解析成ip 这样只要记住主机名就可以上网(使用internet了)

   什么是DNSDomain Name SystemDNS

主机名自动解析为ip

最早期 利用/etc/hosts文件将主机名和IP做一个对应 如此我们就可以通过主机名获主机的ip了 但该文件的缺陷是主机名与ip的对应无法在所有计算机内更新

分布式,阶层式主机名管理架构 DNS架构

DNS是一种因特网的通信协议名称,bind是提供DNS服务的软件,软件提供的程序名为named

FQDNfully qualified domain name)完整主机名 www.westos.org

Domain 区域(即在某个地区)

www.nage.com 是主机名 nage.com .com 这是域名 域是一个范围

DNS是分阶层的,例如注定层的.tw 接着.edu.tw  .ksu.edu.tw  www.ksu.edu.tw 分别代表不同的主机

通过DNS查询主机名ip的流程

DNS是以类是树形结构的形态来进行主机名的管理的 所以每一台DNS服务器都仅管理自己的下一层主机名的转译而以,至于下层的下层,就交给下层的dns主机来管理 管理如下:

1 收到用户的查询要求 先查看自己本身有没有记录,若无则向.root)查询

2 向最顶层的.root)查询 用户向.(root)询问www.ksu.edu.tw在哪里但是由于.(root)只记录了.tw的信息,此时.(root)会告知:我不知道者台主机的ip 不过你可以向.tw去询问,我给你说.twip

3 向第二层的.tw服务器查询 用户又到.tw那里查询www.ksu.edu.tw的信息 可是.tw说我不知道 我给你说.edu.twip 你去问他

4向第三层.edu.tw服务器查询 客户又到.edu.tw那里查询 .edu.tw告诉他人你去.ksu.edu.tw那里查询 我给你他的ip

5 向第四层.ksu.edu.tw服务器查询 客户端找到.ksu.edu.tw这台服务器,.ksu.edu.tw这台服务器说没错www.ksu.edu.tw这台主机名使我管理的我给你说他的ip是什么 这是就找到了www.ksu.edu.tw这台主机的Ip

6记录缓存并回报用户 查到正确的ip之后 到再次有人要查询www.ksu.edu.tw的时候 就不用再跑一次这样的流程了 因为这台只记得dns会记录一份查询的结果在自己的缓存当中 以方便响应下一次的相同要求  当然那个cache当中的数据是有时间性的 当过了nds设置记忆的时间 通常是24小时 该记录就会被释放

这个分层查询的过程就是这样 这样分层查询的好处是:1 主机名修改仅需通知自己的dns即可 不需通知其他人 2 DNS服务器对主机名解析结果的缓存时间

递归: A =B 《  = C A去找B B再去找A 称为递归

迭代:A  =B###B把消息给A说了之后 A再去找C 这种称为迭代

 A  =C

迭代:请求者要发出多次请求才会得到答案  cdn就是迭代的方法

3 可持续向下授权(子域名授权)

例题 通过dig 实现.tw-.edu.tw-.ksu.edu.tw-www.ksu.edu.tw查询 并分析每个查询阶段的DNS服务器有几台

解答 dig +trace www.ksu.edu.tw   ##trace跟踪 追踪的意思

NDS使用的port number UDP TCP 53这两个port 通常DNS是以UDP这个较快速的数据传输协议来查询的 但是如果查询不到时 就会再次以TCP这个协议来查询。所以DNSdaemon会同时启动UDP TCP这两个协议的53端口 记得防火墙也要同时放行UDP TCP53这两个端口

       DNS数据库的记录 正解 反解 zone的意义

正解:从主机名查询到ip的流程

反解:从ip反解析到主机名的流程

不管是正解还是反解 每个与的记录就是一个区域(zone

谁可以申请正解的DNS服务器架设呢 答案是都可以 只要该域没人使用 那谁先强到谁就可以使用  正解域通常需要以下几种标志:

正解的设置权以及DNS正解Zone记录的标志

SOA 就是开始验证(start of authority)的缩写

NS 就是名称服务器(name server)的缩写 记录DNS服务器

A 就是地址(address)的缩写 记录ip

反解的设置权以及DNS反解zone记录的标志

PTR就是指向(PoinTeR)的缩写 后面记录的数据就是反解到主机名

一个正解或一个反解就称为一个zone

        Master /Slave架构

一般一台Master 两台Slave

不论是Master还是Slave服务器 都必须同时提供DNS服务才好 因为在DNS系统当中 域名的查询是先进先出的状态 每一台DNS的数据库内容需要完全一致 否则就会赵成客户端找到的ip是错误的

Master/Slave数据的同步化过程  无论是Master/slave数据库都会有一个代表数据库新旧的序号这个序号值的大小会影响是否进行更新操作 更新的方式有两种:

1 Master主动告知 例如master自动修改了数据库,数据库序号变大,重新启动DNS服务后 master会主动告知slave来更新数据库 这样就能够实现数据库的同步

2 slave 主动提出要求 slave 会定时向master查看数据库序号大小 当发现master数据库序号比自己大时 slave就会主动更新自己的数据库

Client端的设置

/etc/resolv.conf 这个就是ISPDNS服务器IP记录处

/etc/nsswitch.conf 这个文件则是用来决定先要使用/etc/hosts还是 /etc/resolv.conf的设置

DNSip可以设置多个 因为当第一台DNS宕机时 我们客户端可以使用第二台来查询  不过在网络正常情况下 永远都只有第一台DNS被用来查询 这有点像备份

例题 我的主机使用DHCP获取ip 但当我修改过/etc/resolv.conf之后 隔不多久这个文件又变成原来的样子 这是什么原因 要这么处理

因为使用DHCP系统会主动使用DHCP服务器传来的数据进行系统配置文件的修订 因此你要告诉系统不要用DHCP传来的数值修改服务器配置文件 在/etc/sysconfig/network-scripts/ifcfg-eth0等相关文件里面加上一行 PEERDNS=no 然后重新启动网络即可

DNS的正反解查询命令 host nslookup dig

dig www.westos.org 正解

dig -x www.westos.org 反解  反解时ip172.25.254.100 则会变成100.254.25.172.in-addr.arpa.这个模样

查询域管理者的相关信息whois whois是有jwhois这个软件提供的 如果找不到whois时 就可以yum install -y jwhois

Whois这个命令可以查询到当初注册某个domain的用户的相关信息

DNS服务器的软件 种类与caching only DNS服务器设置

搭建dns所需要的软件 rpm -qa | grep ‘^bind’

Bind-libs-9.7.0-.... bind和相关命令使用的函数库

Bind-utils-9.7.0-...这个是客户端查找主机名的相关命令

Bind-9.7.0-.....bind主程序所需软件

Bind-chroot-9.7.0...bind主程序关在家里面

Bind-chroot chroot代表change to root(根目录) centos6.x默认将BIND锁在/var/named/chroot目录中

/etc/named.conf主配置文件 这个文件可以规范zone file的完整文件名

单纯的cache-onlyDNS服务器与forwarding功能

没有自己公开的DNS数据库的服务器为cache-only(唯高速缓存)DNS server 即这个DNSserver 值有缓存搜索结果的功能 它本身没有主机名与ip正反解的配置文件 完全是由对外的查询来提供他的数据库

 DNS服务的详细配置

1 DNS服务器的架设需要上层DNS的授权才可以成为合法的DNS服务器

##如果我们尚未向上层ISP注册合法的域名 所以我们就没有权力架设合法的DNS服务器了

2 配置文件位置 可参考/etc/sysconfig/named 目前BAID程序以运行chroot

3 named 主配置文件 /etc/named.conf

4 每个正反解区域都需要一个数据库文件,而文件名则是在/etc/named.conf里设置

5 DNS查询时 若本身没有数据库文件 则前往root(.) forwarders服务器查询

6 named是否启动成功 务必要查询/var/log/messages内的信息

正解文件记录的数据(Resource Record,RR

A后接ip   NS后接主机名   

A查询ip的记录

NS 查询管理区域名(zone)的服务器主机名

SOA 查询管理域名的服务器管理信息

CNAME 设置谋主机名的别名(alias)

MX 查询某域名的邮件服务器主机名

反解文件记录的RR数据

dig -x www.westos.org

解析后的ip反过来写 在结尾后加上.in-addr-arpa.的结尾字样即可

PTR就是反解

DNS启动与查看防火墙

/etc/init.d/named start

Chkconfig named on

Tail -n 30 /var/log/messages | grep named

日志错误会有语法错误和逻辑错误两种

测试与数据库更新

通过client端的查询功能 目的是检测数据库有无错误

协同工作的DNSslave DNA及子域授权设定

Slave DNS的特点(备用DNS 一般服务端最少要有两台DNS才行)

1 为了不间断的提供DNS服务 你的领域至少要有两台DNS作为查询的功能

2 这几台DNS服务器应该要分散在两个以上的不同ip网段才好

3 为管理方便 通常除了一台做masterDNS 其他都用来做slaveDNS的模式

4 slave DNS本身没有数据库 他的数据库是由masterDNS所提供

5 master/slave DNS要有可以相互传输的zone file信息才行 这部分需要在/etc/named.conf的设置中加以辅助

Master DNS权限的开放

1 修订named.conf 主要修改zone参数内的allow-transfer项目

Vim /etc/named.conf

Allow-transfer{172.25.254.90} ##在这里添加slaveip

2 zone file 里面添加NS标志 要注意需要有A(正解)及PTR(反解)的设置

Vim /etc/named/named.westos.org ##master主机名自己创建的文件

Vim /etc/named/named.ip

在你的zone file文件中添加NS标志 IN NS

再重启即可 /etc/init.d/named restart

Slave DNS的设置及数据库权限问题

由于slave DNS也是DNS服务器 所以也要安装bind bind-chroot等软件 接下来设置named.conf 由于master/slave的数据库是一样的 理论上named.conf就是大同小异的了 唯一的区别是zone type 类型的差异 以及声明master在那里就可以了 由于zone file 是从master取得的 通过named这个程序来主动建立起需要的zone file 以此这个zone file放置的目录权限就很重要了

配置子域DNS服务器:子域授权课题

除了master/slave 需要协调DNS服务器共同提供服务外 DNS如果有上层 下层关系时该如何设置?做法如下:

1 上层DNS服务器:只需要添加zone file NSA即可

Vim /etc/named/named.westos.org

/etc/init.d/named restart

及上层DNS服务器只要在westos.org那个zone file内 增加指定NS并指向下层DNS的主机名和IPA)即可 而zone file的序号也要添加才行

2 下层DNS服务器:需要有完整的zone相关设置

修改named.conf 增加zone的参数 假设文件名为named.niki.westos.org

Vim /etc/named.conf

/etc.init.d/named restart

即下层DNS服务器 申请的域名必须是上层DNS提供的名称 并告知上层DNS管理员 我们这个zone 所需指定的DNS主机名与对应的ip即可 然后就开始设置自己的zone zone file相关数据

1 internet当中 任何一台合法的主机都具有独一无二的主机名 这个主机名包含了hostname+domain name 并称为 Fully Qualified Name(FQDN)

2 为克服人类对ip不易记忆的困扰而有名称解析器的产生 首先是/etc/hosts 而后则是DNS系统

3 目前Unix like的机器中 都是以BIND这个伯克莱大学开发的软件来架设DNS服务器的

4 DNS是个协议的名称 bind是个软件 这个软件提供的程序是named

5 DNS系统中 每一笔记录我们就称他为RRResource Record

6 DNS系统中 正解是有主机名找ip 反解则是ip找主机名 zone则是一个或者是部分域的设置值

7 BIND9之后 默认的情况下named 已经做了chroot的动作

8 Slave主机自身并没有自行设置zone file zone file是由master主机传来的 因此master主机必须要针对slave主机开放allow-transfer的设置项目才行

9 整个DNS查找的流程当中 若找不到本身的数据 则会向root.)要求资料

10 正解的记录(record)主要有SOA A MAX NS CNAME TXT HINFO

11 反解的记录主要有 SOA PTR

12 DNS查询的命令主要有host nslookup dig whois

在载入了named这个daemon之后 请务必前往/var/log/messages里面察看是否成功开启

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章