您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

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

添加时间:2011-1-28  添加: admin 

1.MAC<--ARP-->IP

IP<---DNS-->DOMAIN

 

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

 

3.DNS的由来

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

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

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

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

 

4.DNS与BIND的区别

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

BIND——提供DNS服务的套件

 

5./etc/hosts

ping -c 5 localhost

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

 

这个会加快IP的搜寻速度

可以尝试一下

 

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

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

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

 

7.Domain Name与Hostname的区别:

Domain Name——

Hostname——

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

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

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

 

8.DNS架构

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

DNS树状目录

root

____________________________________________________

| | | | | | |

com edu gov mil org cn 其他国家

|

___________________________________________________

| | | | |

com.cn edu.cn gov.cn mil.cn org.cn

|

_____________________________________________

| | |

sina.com.cn yahoo.com.cn others.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 | grep domain

可以看到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.DNS server使用的是bind这个套件,他的主要参数档是/etc/named.conf

 

14.查询DNS是否安装

(1)

# rpm -qa | grep bind

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

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

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

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

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

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

 

(2)

yum install bind

 

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单纯的forward DNS主机设定

(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";

forward only; //只允许 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--- 2 named named 4096 Oct 12 11:48 /var/named/chroot/var/run/named

 

(2) 启动named

# /etc/init.d/named start

 

(3) 观察port的变化

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

# netstat -utln

 

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

tail -n 15 /var/log/messages | grep named

Oct 16 15:08 linux named[76]: starting BIND 9.2.4 -u named -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.tsai vbird.tsai的正解

(3) named.192.168.1 192.168.1.0/24的反解

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

(5) named.localhost localhost的正解

(6) named.127.0.0 127.0.0.1/24的反解

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

资料库的对应:

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

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

ftp.vbird.tsai 为主机别名

forum.vbird.tsai

linux 192.168.1.150 slave.vbird.tsai 主要作为slave DNS主机

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

sun 192.168.1.200 sun.vbird.tsai 另一部主机

 

★/etc/named.conf的设定档

a> 功能:

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

。设定出zone(domain name)以及zone file的所在

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

 

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 "." {

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

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

};

 

// 关于本机 localhost 的正反解

zone "localhost" {

type master;

file "named.localhost";

};

zone "0.0.127.in-addr.arpa" {

type master;

file "named.127.0.0";

};

 

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

zone "vbird.tsai" {

type master;

file "named.vbird.tsai";

};

zone "1.168.192.in-addr.arpa" {

type master;

file "named.192.168.1";

};

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

 

d> options内的参数说明

设定值 意义

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

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

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

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

forwarders

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

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

e> zone内的参数说明

设定值 意义

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

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

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

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

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

关键词:DNS   服务器

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站