设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2708|回复: 5
收起左侧

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

[复制链接]
发表于 2010-9-20 10:55:11 | 显示全部楼层 |阅读模式
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"来表示反解。
发表于 2012-3-16 21:24:41 | 显示全部楼层
很好啊~
沙发 2012-3-16 21:24:41 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-3-16 21:38:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2013-4-11 13:12:54 | 显示全部楼层
地板 2013-4-11 13:12:54 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-4-22 22:37:38 | 显示全部楼层
5# 2013-4-22 22:37:38 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2016-11-7 15:11:56 | 显示全部楼层
有用,慢慢学习
6# 2016-11-7 15:11:56 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-24 19:33 , Processed in 0.057585 second(s), 11 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表