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

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 138 ::
收藏到网摘: 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]