当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 鸟哥的Linux学习笔记DNS服务器知识

Linux服务器
Linux下利用Squid构建高速的ProxyServer
在Linux操作系统上配置DNS服务器的日志
搭建性能比Squid高很多的Varnish服务器
Linux系统挂载AIXNFS服务器的配置方法
Linux上架设一台高容量POP3服务器
鸟哥的Linux学习笔记DNS服务器知识
部署Linux下OpenVZ虚拟化服务器
在RHEL5服务器上远程桌面(VNC)的配置
Samba服务器多系统用户共享目录设计方法
Linux攻略Samba服务的搭建与配置
Linux操作系统下配置DNS服务器的方法介绍
用Linux系统自身做一个L2TP的VPN服务器
Linux环境用Sendmail架设Mail服务器
细述Apachewebserver的安装与配置
linux环境下轻松搭建CVS服务器
UbuntuLinux通过SSh远程管理服务器
Linux操作系统下DHCP中继代理的实现方法
Ubuntu7.10Linux上构建全功能的服务器
Linux系统搭建Discuz论坛的方法
Ubuntub7.10Linux架设Samba服务

Linux服务器 中的 鸟哥的Linux学习笔记DNS服务器知识


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 130 ::
收藏到网摘: n/a

1.MAC<——ARP——>IP

IP<——DNS——>DOMAIN

2.网络传送资料的方法并不是只有TCP/IP协议,比如在LAN里经常用到的可能是NetBIOS

3.DNS的由来

==>为了解决网络传送资料时IP地址难以记忆的问题,就有了利用某些特定的档案将主机名称与IP对应起来,这样就可以通过主机名称来取得该主机的IP了,也就可以完成资料的传送了。

==>可是主机名称与IP的对应无法自动与所有的电脑内更新,且当IP数量太多时,该档案就会大到不像话,也就更不利于主机同步化。

==>柏克莱大学发展出了一套阶层式管理主机名称对应IP的系统,称之为BIND(BerkeleyInternetNameDomain)

==>进而发展成为全世界使用最广泛的域名系统DNS

4.DNS与BIND的区别

DNS——一种主机名称与IP的解析协议

BIND——提供DNS服务的套件

5./etc/hosts

ping-c5localhost

windows下面对应的文件为:c:\i386\hosts

这个会加快IP的搜寻速度

可以尝试一下

6./etc/hosts与DNS系统区别:

/etc/hosts——直接在Client端的档案内输入主机名称对应的IP来查询

DNS系统——利用额外的DNS服务,让client端可以通过名称解析来取得目的地主机的IP

7.DomainName与Hostname的区别:

DomainName——

Hostname——

我们已经知道DNS系统是个分层次的系统,所以在每一层上域名与主机名是不一样的

www.yahoo.com中域名为yahoo.com,主机名为www

又如yahoo.com中域名为.com,主机名为yahoo

8.DNS架构

每个上一层的DNS主机,所记录的资讯,其实只有其下一层的主机名称而已!!

DNS树状目录

root

____________________________________________________

|||||||

comedugovmilorgcn其他国家

|

___________________________________________________

|||||

com.cnedu.cngov.cnmil.cnorg.cn

|

_____________________________________________

|||

sina.com.cnyahoo.com.cnothers.com.cn

com:商业、公司

org:组织、机构

edu:教育

gov:政府

net:网络、通讯

mil:军事

9.DNS的搜寻流程

DNS是以类似树状目录的形态来管理域名的,每一部DNS主机只管理下一层DNS主机的域名解析

至于下层的下层,则授权给下层的DNS主机来管理

DNS服务器工作原理

客户端linux主机利用/etc/resolv.conf中提供的DNS服务器的IP来进行查询

DNS服务器会这样做:

假设要访问

(1)先看本身有没有记录

(2)向最顶层查询

向最顶层的.(root)这部主机来查询.(root)的下一层.cn

(3)向第二层查询

就到.cn查询,找到.edu.cn

(4)接着一步一步下来

(5)记录暂存记忆档

查找要找的IP后,就将,对应的IP信息在自己的暂存记忆档中保存起来

这个暂存档是有时间性的,当过了DNS设定记忆的时间(通常是24小时),该记忆就会被释放

几点注意:

a>只有域名是经过上层合法的DNS主机设定的,才可以在INTERNET上被查询到

b>主机的暂存记忆档,是有时间性的,所以当修改一个域名之后,可能要2~3天才能全面的启用

c>每一部可以记录主机名称与IP对应的DNS服务器都可以随意更动他自己的资料库,注意,是他自己的

10.DNS使用的端口

cat/etc/services|grepdomain

可以看到DNS使用的端口为53

通常进行DNS查询时,是以UDP这个较快速的资料传输协议来查询的,但若没有查询,会再次以TCP查询。

所以启动DNS的daemon(即named),会同时启动TCP及UDP的53这个端口。

11.要让你的主机名称对应IP且让Internet上的电脑都可以查询的到,就需要:

(1)上层DNS授权让你设定DNS主机,或者

(2)直接请上层DNS主机来帮你设定

12.什么是正解与反解?

(1)正解

由主机名去寻找IP的程序称为正解

(2)反解

由IP去查询得到主机名就称为反解

(3)区域(Zone)

一个正解或反解的设定就是一个zone

如,以鸟哥的vbird.idv.tw为例,一个域名的DNS设定档里必需有

。hint(root)的设定

。vbird.idv.tw这个域名的正解设定

。localhost的正解设定(非必要)

。localhost的反解设定(非必要)

那么就有四个zone

13.DNSserver使用的是bind这个套件,他的主要参数档是/etc/named.conf

14.查询DNS是否安装

(1)

#rpm-qa|grepbind

bind-utils-9.2.4-16.EL4<==是用户端搜寻主机名称的相关指令

bind-9.2.4-16.EL4<==DNS服务器主程序

bind-chroot-9.2.4-16.EL4<==将bind主程序关在家里?

那个chroot即changetoroot,那个root代表的是根目录

可以用该命令来将某个目录指定为bind程序的根目录,由于是根目录,所以bind便不能离开该目录。

CentOS默认将bind锁在/var/named/chroot中

(2)

yuminstallbind

15.BIND的默认设定

/etc/named.conf——设定档

/etc/sysconfig/named——是否启动chroot及额外的参数,由这个档案控制

/var/named/——资料库档案默认放置在这个目录

/var/run/named——named这去程序执行时默认放置pid-file在此目录内

可通过查看/etc/sysconfig/named来查看chroot所指定的目录

#vi/etc/sysconfig/named

ROOTDIR=/var/named/chroot

这样bind的相关程序所需要的所有资料会是在:

/var/named/chroot/etc/named.conf

/var/named/chroot/var/named/zone_file1

/var/named/chroot/var/named/zone_file……

/var/named/chroot/var/run/named/……

不过,仍旧可以使用/etc/named.conf来设定你的DNS

因为系统会主动的帮你将/var/named/chroot/etc/named.conf链接到/etc/named.conf

16.DNS的master/slave架构

master——本身具有提供Internet查询所需的资料

slave——

Cache-only——这种DNS主机没有自己的资料库,单纯帮助Client端向外部的DNS主机要求资料而已。代理?

17.Cache-only单纯的forwardDNS主机设定

(1)编辑主要设定档/etc/named.conf

a>注释用"//"

b>每个段落之后要用";"结束

c>实例:

------------------------------------------------------------------

[root@linux~]#vi/etc/named.conf

//虽然CentOS将这个档案放置到/var/named/chroot/etc当中,

//不过他很好心的帮我们作了个连结,所以你还是可以直接编辑这个档案啦!

options{

directory"/var/named";

dump-file"/var/named/data/cache_dump.db";

statistics-file"/var/named/data/named_stats.txt";

pid-file"/var/run/named/named.pid";

forwardonly;//只允许forward!

forwarders{

168.95.1.1;//我这里使用hinet的DNS!

139.175.10.20;//这个是seednet的DNS!

};

};

include"/etc/rndc.key";

------------------------------------------------------------------

这里要确认一下,pid-file的所有人必须是named这个user才行

[root@linux~]#ls-ald/var/named/chroot/var/run/named

drwxrwx——2namednamed4096Oct1211:48/var/named/chroot/var/run/named

(2)启动named

#/etc/init.d/namedstart

(3)观察port的变化

并不一定启动时成功就表明DNS成功了,还要来看一下port53有没有启动

#netstat-utln

(4)检查/var/log/messages的信息

tail-n15/var/log/messages|grepnamed

Oct1615:08linuxnamed[76]:startingBIND9.2.4-unamed-t/var/named/chroot<==成功启动

(5)客户端测试

18.DNS服务器小结:

a>主要设定档是/etc/named.conf

b>每个正解、反解都需要一个档案,而档案的档名是由/etc/named.conf所设定的

c>目前的BIND程序已经进行chroot了,可以参考/etc/sysconfig/named

d>当DNS查询时,若本身没有资料库,则前往root(.)或forwarders主机查询

e>DNS服务器的架设需要上层DNS的授权才可以成为合法的DNS服务器,否则只能是内部的

f>named是否启动成功务必要查阅/var/log/messages内的信息

19.一个内部的DNS服务器的架设案例

[目标及环境]

该DNS服务器针对vbird.tsai这个域名来设计,并且对应的反解为192.168.1.0/24

另外还针对本机localhost以及127.0.0.1这个预设的领域来对应

当然还要包含最上层.(root)这个域名的主机名资料库

所以,设定档及正反解zone的资料库档案应该有:

(1)named.conf设定档

(2)named.vbird.tsaivbird.tsai的正解

(3)named.192.168.1192.168.1.0/24的反解

(4)named.root.(root)的资料库

(5)named.localhostlocalhost的正解

(6)named.127.0.0127.0.0.1/24的反解

如果还想加入其他的域名,例如niki.tsai,那就再多一个资料库正解档案即可!

资料库的对应:

操作系统与IP对应主机名说明

linux192.168.1.254linux.vbird.tsai这部是主要的DNS服务器,主要主机名为www.vbird.tsailinux.vbird.tsai,其他的三个主机名

ftp.vbird.tsai为主机别名

forum.vbird.tsai

linux192.168.1.150slave.vbird.tsai主要作为slaveDNS主机

winxp192.168.1.100winxp.vbird.tsai某一部主机的IP与主机名对应

sun192.168.1.200sun.vbird.tsai另一部主机

★/etc/named.conf的设定档

a>功能:

。规范DNS服务器的使用权限(可否查询、forward与否、master/slave架构等)

。设定出zone(domainname)以及zonefile的所在

。设定DNS本机管理界面以及其相关的keyfile

b>注意:

在整体服务器环境与使用权限,主要是通过options{……}来设定的

c>最简单的规划示例:

-----------------------------------------------------------------

[root@linux~]#vi/etc/named.conf

//先定义出整个DNS服务器的相关环境,包括查询、档案放置目录等

options{

directory"/var/named";

dump-file"/var/named/data/cache_dump.db";

statistics-file"/var/named/data/named_stats.txt";

pid-file"/var/run/named/named.pid";

forwarders{168.95.1.1;139.175.10.20;};

allow-query{any;};//是否允许被查询?当然要可以被查询;

allow-transfer{none;};//是否允许传送zone,预设不可

};

//关于DNS服务器的一些加密数据,先忽略过去先!

include"/etc/rndc.key";

//关于root(.)的设定喔:

zone"."{

typehint;//特殊的类别!专给root(.)用的

file"named.root";//就是档名的定义啦!

};

//关于本机localhost的正反解

zone"localhost"{

typemaster;

file"named.localhost";

};

zone"0.0.127.in-addr.arpa"{

typemaster;

file"named.127.0.0";

};

//这里规范出我们的vbird.tsai领域名

zone"vbird.tsai"{

typemaster;

file"named.vbird.tsai";

};

zone"1.168.192.in-addr.arpa"{

typemaster;

file"named.192.168.1";

};

d>options内的参数说明

设定值意义

directory指定zonefile要放置在哪个目录,与zone设定项目的file配合而成完整的档名

dump-file指定暂存资料记录到哪个档案

statistics-fileDNS的一些统计资料写入的档案

pid-file将named这个程序的PID记录下来的一个档案,这个档案通常在named启动、关闭时提供正确的PID

forwarders

allow-query是否允许用户端的查询,内容可以为any任何来源或IP或网段(IP/netmask)

allow-transfer是否允许slaveDNS整个域名资料的传送,除非你有slaveDNS服务器,否则这里不要开放

e>zone内的参数说明

设定值意义

type主要类型有:master,slave及hint。其中,最上层.使用的是hint类型,然后master主机用master,slave主机就用slave

file就是zonefile,完整的zonefile放在哪里:

[chroot_dir]/[options内的directory]/[file设定值],所以说

root(.)设定档就在:/var/named/chroot/var/named/named.root

反解zone反解,必须要将IP反过来写,并在最后面加上".in-addr.arpa"来表示反解。

上一页[1][2][3][4][5]