科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道手把手教您在Linux操作系统架设DNS服务器

手把手教您在Linux操作系统架设DNS服务器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在域名空间的数据是通过名字来进行索引的,找到一个给定域名的地址相对容易.但是要找到映射给一定地址的域名就要在树上的每一个域名空间作穷尽搜索.

作者:天极网 来源:天极网 2008年6月23日

关键字: 网吧 网吧组网 网吧服务器架设

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  标准资源记录

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

  资源记录文本名 意义 记录类型 功能

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

  Start of Authority 授权开始 SOA标记区数据的开始,定义影响整个区的参数

  Name Server 名字服务器NS 标明域的名字服务器

  Address 地址 A 转换主机名到地址

  Pointer 指针 PTR 转换地址到主机名

  Mail Exchange 邮件交换 MX 标明发往给定域名的邮件应传送到的位置

  Canonical Name 正规名 CNAME 定义主机名别名

  HOST information 主机信息 HINFO 描绘主机硬件和操作系统的信息

  Wellknown Service 著名服务 WKS 通告网络服务

  DNS使用MX记录来实现邮件路由,它规定了域名的邮件服务器要么处理,要么向前转发有关该域名的邮件.处理邮件是指将其传送给其地址所关联的个人,向前转发邮件是指通过SMTP协议将其传送给其最终目的地.为了防止邮递路由,MX记录除了邮件交换器的域名外还有一个特殊参数:优先级值.优先级值是个从0到65535的无符号整数,它给出邮件交换器的优先级别.

  优先级值自身并不重要,关键在于它同其它邮件交换器的优先级值的相对大小,优先级值相对越小,优先级越高.邮件总是首先试图传递给优先级值相对最小的邮件交换器.失败后才试图传递给优先级值稍大的邮件交换器.邮件总是试遍了同一优先级的邮件交换器,失败后才试图传递给优先级稍低的邮件交换器.

  注意你列为邮件交换器的主机必须拥有地址记录.

  例如:

  mail A 172.16.0.3

  MX 10 mail.test.com.

  管理工具

  dig

  named.ca文件的作用是告诉你的服务器在哪里可以找到根域的域服务器,这个文件 一定要保证正确无误,一般来说,这个文件几乎不会变动,但是不能保证不会变动,最好是 每一,两个月同步一下.

  使用下面的命令获得新的named.ca文件

  dig @.aroot-servers.net.ns >/var/named/named.ca

  ndc

  ndc这个指令是由系统管理员用来管理域服务器的操作,在终端中输入ndc help可

  得到帮助.

  ndc restart 用来重新启动named进程;

  ndc reload 用来装入新的数据库.

  nslookup

  nslookup是用来询域名信息的命令,它分交互模式和非交互模式两种方式.

  非交互模式:nslookup www.zhuhai.gd.cn

  交互模式:nslookup

  注意,当用nslookup查询时出现"Non-authoritative answer:",表明这次并没有到 网络外去查询,而是在缓存区中查找并找到数据.

  交互模式除了能查询单个的主机,还可以查询DNS记录的任何类型,并且传输 一个域的整个区域信息。 当不加参数地调用,nslookup将显示它所用的名字服务器, 并且进入交互模式。

  在’>’提示符下,你可以键入任何想要查询的域名。缺省地,它请求类A记录, 这些是包含与域名相关的IP地址的。

  你可以通过发出“set type=type”来改变这个类型,这里type是上面描 述的资源记录名,或ANY。

  例如,你可以与它进行下面的对话:

  $ nslookup

  Default Name Server: rs10.hrz.th-darmstadt.de

  Address: 130.83.56.60

  > sunsite.unc.edu

  Name Server: rs10.hrz.th-darmstadt.de

  Address: 130.83.56.60

  Non-authoritative answer:

  Name: sunsite.unc.edu

  Address: 152.2.22.81

  如果你试者去查询一个没有相应IP地址的名字,但DNS数据库中能找到其它的记 录,nslookup将返回一个错误信息说“No type A records found”(“没有类型A记录 发现”)。然而,你可以通过发出“set type”命令来查询不是类型A的其它记录。例如, 要得到unc.edu的SOA记录,你要发出:

  > unc.edu

  *** No address (A) records available for unc.edu

  Name Server: rs10.hrz.th-darmstadt.de

  Address: 130.83.56.60

  > set type=SOA

  > unc.edu

  Name Server: rs10.hrz.th-darmstadt.de

  Address: 130.83.56.60

  Non-authoritative answer:

  unc.edu

  origin = ns.unc.edu

  mail addr = shava.ns.unc.edu

  serial = 930408

  refresh = 28800 (8 hours)

  retry = 3600 (1 hour)

  expire = 1209600 (14 days)

  minimum ttl = 86400 (1 day)

  Authoritative answers can be found from:

  UNC.EDU nameserver = SAMBA.ACS.UNC.EDU

  SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

  以同样的方式你可以查询MX记录,等等。使用一个ANY类型将返回与一个给出的 名字关联的所有资源记录。

  > set type=MX

  > unc.edu

  Non-authoritative answer:

  unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu

  lambada.oit.unc.edu internet address = 152.2.22.80

  Authoritative answers can be found from:

  UNC.EDU nameserver = SAMBA.ACS.UNC.EDU

  SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

  除了调试,nslookup的一个实际应用是为named.ca文件获取根名字服务器的当前 列表。你可以通过查询与根域相关的所有NS类型记录来做到:

  > set type=NS

  > .

  Name Server: fb0430.mathematik.th-darmstadt.de

  Address: 130.83.2.30

  Non-authoritative answer:

  (root) nameserver = NS.INTERNIC.NET

  (root) nameserver = AOS.ARL.ARMY.MIL

  (root) nameserver = C.NYSER.NET

  (root) nameserver = TERP.UMD.EDU

  (root) nameserver = NS.NASA.GOV

  (root) nameserver = NIC.NORDU.NET

  (root) nameserver = NS.NIC.DDN.MIL

  Authoritative answers can be found from:

  (root) nameserver = NS.INTERNIC.NET

  (root) nameserver = AOS.ARL.ARMY.MIL

  (root) nameserver = C.NYSER.NET

  (root) nameserver = TERP.UMD.EDU

  (root) nameserver = NS.NASA.GOV

  (root) nameserver = NIC.NORDU.NET

  (root) nameserver = NS.NIC.DDN.MIL

  NS.INTERNIC.NET internet address = 198.41.0.4

  AOS.ARL.ARMY.MIL internet address = 128.63.4.82

  AOS.ARL.ARMY.MIL internet address = 192.5.25.82

  AOS.ARL.ARMY.MIL internet address = 26.3.0.29

  C.NYSER.NET internet address = 192.33.4.12

  TERP.UMD.EDU internet address = 128.8.10.90

  NS.NASA.GOV internet address = 128.102.16.10

  NS.NASA.GOV internet address = 192.52.195.10

  NS.NASA.GOV internet address = 45.13.10.121

  NIC.NORDU.NET internet address = 192.36.148.17

  NS.NIC.DDN.MIL internet address = 192.112.36.4

  nslookup完整的命令集可以通过nslookup中的help命令得到.

  提高域名服务器的安全

  为了提高域名服务器的安全性,必须要控制区文件的传输.在配置named.conf时,可以采取几方面的控制来加强安全.

  options {

  allow-transfer {202.103.166.100;};

  };

  这句指令指定只有授权的辅服务器才能从本主服务器上获得区数据信息

  options {

  allow-query {192.168.1/24;127.0.0/8;};

  };

  这句指令指定只有授权的客户才能从本服务器上获得区数据信息.  

  options {

  forwarders {202.103.166.194;202.105.177.100;};

  forward-only;

  };

  这句指令指定只有指定的服务器才能被本缓存服务器访问.

  应用实例

  假设有一个网络,网络由proxy分成internet和intranet两部分:为了保护mail server的安全,将它安置在intranet上.内部用户通过内部mail server收发信件.

  proxy server主机上同时建有proxy server ,dns server 和smtpserver.

  eth0 ip address:192.168.1.1

  eth1 ip address:172.16.0.1

  mail server主机上同时建有smtp server,pop3 server.

  ip address:172.16.0.2

  用户的网关为172.16.0.1

  dns server 为172.16.0.1

  smtp server为mail.test.com

  pop3 server为mail.test.com

  我们还是用"test.com"作为例子,我们需要六个基本配置文件:

  /etc/named.conf

  /var/named/named.ca

  /var/named/named.local

  /var/named/named.test.com

  /var/named/named.172.16.0

  /var/named/named.192.168.1

  创建或修改/etc/named.conf:

  // generated by named-bootconf.pl

  options {

  directory "/var/named";

  /*

  * If there is a firewallbetween you and nameservers you want

  * to talk to, you might need to uncomment the query-source

  * directive below. Previous versions of BIND always asked

  * questions using port 53, but BIND 8.1 uses an unprivileged

  * port by default.

  */

  // query-source address * port 53;

  };

  //

  // a PM nameserver config

  //

  zone "." {

  type hint;

  file "named.ca";

  };

  zone "0.0.127.in-addr.arpa" {

  type master;

  file "named.local";

  };

  //there are our primary zone files

  zone "test.com" {

  type master;

  file "named.test.com";

  };

  zone "0.16.172.in-addr.arpa" {

  type master;

  file "named.172.16.0";

  };

  zone "1.168.192.in-addr.arpa" {

  type master;

  file "named.192.168.1";

  };

  文件中的zone "test.com"段是声明这是用于test.com域的主服务器,用于该域的数据从/var/named/named.test.com文件中装载.文件中的zone "0.16.172.in-addr.arpa"段是指向映射IP地址172.16.0.* 到主机名的文件.

  用于该域的数据从/var/named/named.172.16.0文件中装载.文件中的zone "1.168.192.in-addr.arpa"段是指向映射IP地址192.168.1.* 到主机名的文件.用于该域的数据从/var/named/named.192.168.1文件中装载.

  创建或修改/var/named/named.local

  @ IN SOAns.test.com. root.ns.test.com. (

  2000051500 ;Serial

  28800 ;Refresh

  14400 ;Retry

  3600000 ;Expire

  86400 ) ;Minimum

  IN NS ns.test.com.

  1 IN PTR localhost.

  注意:在修改named.*文件时每次存盘时要注意增加Serial值.如使用绝对域名时千万别忘了后面带的"."

  创建或修改/var/named/named.test.com

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ;Serial

  28800 ;Refresh

  14400 ;Retry

  3600000 ;Expire

  86400 ) ;Minimum

  IN NS ns.test.com.

  ns A 192.168.1.1

  ns A 172.16.0.1

  MX 10 ns.test.com.

  wwwA 192.168.1.2

  mail A 172.16.0.2

  MX 10 mail.test.com.

  MX 20 ns.test.com.

  创建或修改/var/named/named.192.168.1

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ;Serial

  28800 ;Refresh

  14400 ;Retry

  3600000 ;Expire

  86400 ) ;Minimum

  IN NS ns.test.com.

  1 IN PTR ns.test.com.

  2 IN PTR www.test.com.

  创建或修改/var/named/named.172.16.0

  @ IN SOA ns.test.com. root.ns.test.com. (

  2000051500 ;Serial

  28800 ;Refresh

  14400 ;Retry

  3600000 ;Expire

  86400 ) ;Minimum

  IN NS ns.test.com.

  1 IN PTR ns.test.com.

  2 IN PTR mail.test.com.

  假设用户发一份邮件到tom@hotmail.com时,信件先投递到mail.test.com主机,

  由mail.test.com主机再传递给ns.test.com主机,再由ns.test.com主机投递给mail.hotmail.com.然后再由用tom从mail.hotmail.com主机取得邮件.

  当hotmail.com上的tom想发邮件给mail.test.com上的用户时,tom机器上的解析器先获得test.com的域名信息,然后邮件客户端根据邮件投递路由首先发给mail.test.com主机,由于mail.test.com主机为内部主机,internet用户无法访问.然后邮件客户端根据邮件投递路由发给ns.test.com主机.由于ns.test.com主机为于internet上,ns.test.com主机收到邮件后再转发到同一网段的mail.test.com主机上,然后再由用户从mail.test.com主机取得邮件. 

  Microsoftdns 的集成

  Microsoft dns 定义了一个新的类型WINS的资源记录,它附属在域的根区.这个记录告诉Microsoft的DNS服务器如何与WINS服务器取得联系,解决对没有静态DNS记录的主机的名称查询问题.

  示例,一个WINS资源记录如下:

  @ IN WINS 192.168.1.100

  为了使DNS和WINS合作,在Microsoft的DNS服务器配置中选择相应域的properties记录,并且在WINS LOOKUP标签中启用WINS解决.

  由于采用了非标准的资源记录,大多数其他DNS并不支持这种资源记录,如非Microsoft dns的计算机企图从有DNS-WINS资源记录的microsoft的DNS服务器中进行区传送时,那么,该计算机就很可能出错.

  DNS故障诊断

  大多数DNS故障的原因是配置文件的语法错误,或者是对错误的计算机分配了错误的地址.当进行DNS故障诊断时,参照下面的指导方针.

  对全部记录,检查和确认主机名称的拼写.记住绝对地址是以"."结尾.

  如果在区文件中作了任何修改,务必修改SOA记录中的序列号.这将保证服务器正确地重新上载文件.

  确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息.

  Microsoft的DNS服务器采用了非标准的资源记录,可能会导致问题.

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章