用实验快速掌握DNS配置

发表于:2007-07-04来源:作者:点击数: 标签:
[实验目的] 1.配置一个只可转发请求的DNS. 2.配置一个masterDNS. 3.配置一个slaveDNS. [实验环境] 1.两台互连的计算机. 2.系统Redhat 8.0. [实验步骤] 一.实验准备. 1.两台机关掉iptables # service iptables stop # chkconfig iptables off 2.两台机检查安

  [实验目的]
  1.配置一个只可转发请求的DNS.
  2.配置一个masterDNS.
  3.配置一个slaveDNS.
  
  [实验环境]
  1.两台互连的计算机.
  2.系统Redhat 8.0.
  
  [实验步骤]
  一.实验准备.
  1.两台机关掉iptables
  # service iptables stop
  # chkconfig iptables off
  2.两台机检查安装必要软件
  # rpm -q bind
  # rpm -q bind-utils
  # rpm -q caching-nameserver
  根据结果,安装没安装的软件,从安装盘里找出没安装的包,有选择的执行下列步骤:
  # rpm -Uvh bind-9*
  # rpm -Uvh bind-utils*
  # rpm -Uvh caching-nameserver*
  3.互连两台机.
  ①编辑两台机的相应文件.(编辑最好用vi,以下也是)
  机器1:
  /etc/sysconfig.network-scripts/ifcfg-eth0
  DEVICE=eth0
  BOOTPROTO=none
  ONBOOT=yes
  IPADDR=192.168.0.254
  NETMASK=255.255.255.0
  /etc/hosts
  127.0.0.1 localhost localhost.localdomain
  /etc/resolv.conf
  nameserver 192.168.0.254
  /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=server1
  
  机器2:
  /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  BOOTPROTO=none
  ONBOOT=yes
  IPADDR=192.168.0.1
  NETMASK=255.255.255.0
  /etc/hosts
  127.0.0.1 localhost localhost.localdomain
  /etc/resolv.conf
  nameserver 192.168.0.1
  /etc/sysconfig/network
  NETWORKING=yes
  HOSTNAME=station1
  ②分别在两台机上运行:
  机器1:
  # ifdown eth0
  # ifup eth0
  # ping 192.168.0.1
  机器2:
  # ifdown eth0
  # ifup eth0
  # ping 192.168.0.254
  主意:两台机能互相ping通,继续下列实验,不通,再找找原因.
  二.机器1上配置一个masterDNS.
  机器1上:
  1.编辑/etc/named.conf文件:
  /etc/named.conf
  options {
  directory “/var/named/”;
  };
  
  zone “.” IN {
  type hint;
  file “named.ca”;
  };
  
  zone “localhost” IN {
  type master;
  file “localhost.zone”;
  };
  
  zone “0.0.127.in-addr.arpa” IN {
  type master;
  file “named.local”;
  };
  
  zone “example1.com” IN {
  type master;
  file “db.example1”;
  };
  
  zone “0.168.192.in-addr.arpa” IN {
  type master;
  file “db.192.168.0”;
  };
  ----------------------------------------------------------------------
  解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
  上述文件有六部分:option ,5个zone.
  其中option,”.”,”localhost”,”0.0.127.in-addr.arpa”原来就有.
  “example1.com”,“0.168.192.in-addr.arpa”为现在子网的正向和反向搜索区的
  定义,“db.example1”,”db.192.168.0”的名字是随便取的,它们必需在/var/named/下
  存在.
  主义{}前后及中间的空格,及分号.
  -----------------------------------------------------------------------
  2.用vi创建两个文件,/var/named/db.example1,/var/named/db.192.168.0
  /var/named/db.example1
  $TTL 86400
  
  @ IN SOA server1.example1.com. Root.server1.example1.com. (
  2003070401 1H 1M 1W 1D )
  IN NS server1.example1.com.
  IN A 192.168.0.254
  server1 IN A 192.168.0.254
  station1 IN A 192.168.0.1
  www IN A 192.168.0.254
  ftp IN A 192.168.0.254
  pop IN A 192.168.0.254
  www1 IN CNAME server1.example1.com.
  ftp1 IN CNAME server1.example1.com.
  
  @ IN MX 10 server1.example1.com.
  server1.example1.com IN MX 10 server1.example1.com.
  ----------------------------------------------------------------------
  解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
  上述文件是一个正向搜索的数据库:
  $TTL 86400 是文件开头,数字表示默认存活期,用秒计算的,做什么不用不要管它,
  记着添上就行.
  
  接着的格式就是:[domain] [class]
  
  [domain]如: server1.example1.com ,www.
  Www是简写,实际会默认添上定义这个文件的那个 zone “example1.com”里的
  example1.com,即:www=www.example1.com.这个段可以升略不写,默认跟前一行的
  [domain]相同.@¡理示”example1.com”.
  
  [class]一般为internet类,即:IN ,可以省去不写.
  
   分别有SOA,NS,A,MX,CNAME,及反向数据库里的PTR.
  SOA=start of authority 必要的
  NS=nameserver 必要的
  A=域名和ip地址的映射. 必要的
  MX=mail exchange. 可选的
  CNAME=域名的一个假名 可选的
  PTR=用在反向:ip地址和域名的影射. 必要的
  
  假名不可以放在NS MX 的字段.
  
  SOA 括弧中的5个数字:
  对应为( serial refresh retry expire Minimum )
  serial 可以是任何数字,一般:年月日修改数.
  refresh 是SOA信息的刷新时间.
  Retry是与授权服务器联系的频率.
  Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
  Minimum 区域中记录的存活时间.
  
  H=hour D=day M=minute W=week
  
  SOA 后的server1.example1.com.表示这个区域授权给哪台机.
  root.server1.example1.com.表示管理人.用.代?æ@
  
  完整域名后一定要加.号,否则会自动为你加”example1.com”.
  
  以上如果你不懂,不用急,以后慢慢想清楚.
  -----------------------------------------------------------------------
  
  /var/named/db.192.168.0
  $TTL 86400
  
  
  @ IN SOA server1.example1.com. root.server1.example1.com. (
  2003070401 1H 1M 1W 1D )
  IN NS server1.example1.com.
  254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
  1.0.168.192.in-addr.arpa IN PTR station1.example1.com.
  ----------------------------------------------------------------------
  解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
  此文件是反向搜索的数据库.
  主意IP反着写.
  其它的不用解释.
  -----------------------------------------------------------------------
  3.检验:
  # cat >> /var/log/messages
  ******
  ******
  [ctrl]+d
  # service named restart
  # host server1.example1.com
  # host station1.example1.com
  # host www.example1.com
  # host www1.example1.com
  # host 192.168.0.254
  
  看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
  192.168.0.254对应域名为server1.example1.com.如果不能解析,说明,配置有问题,
  可以到日志/var/log/messages里查看.具体位置在文件末尾的两行*******后,和调试
  程序一样,甚至他会告诉你哪个文件,哪行错了.修改后,重新执行:
  # cat >> /var/log/messages
  ******
  ******
  [ctrl]+d
  # service named restart
  # host server1.example1.com
  # host station1.example1.com
  # host www.example1.com
  # host www1.example1.com
  # host 192.168.0.254
  直到无错,且能够正确解析.
  
  三.机器2上配置一个只负责转发请求域名解析的DNS
  机器2上:
  1.编辑/etc/named.conf
  /etc/named.conf
  options {
  directory “/var/named/”;
  forwarders { 192.168.0.254; };
  };
  ........
  ------------------------------------------------------------
  解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
  forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,则交给
  192.168.0.254这个DNS,其实在配置masterDNS时,也可以在option里加一个forwarders
  具体IP就是你平时上网用的DNS.如果有两个或多个也可以这样写:
  { 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92.77/24; 192.168.0.254 ;}
  .....表示其它的东西,不要动.
  ---------------------------------------------------------------------
  2.检验:
  # cat >> /var/log/messages
  ******
  ******
  [ctrl]+d
  # service named restart
  # host server1.example1.com
  # host station1.example1.com
  # host www.example1.com
  # host www1.example1.com
  # host 192.168.0.254
  
  看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
  192.168.0.254对应域名为server1.example1.com.
  这个配置比较简单,一般不会有笔误,如果错误,排除bug的方法同检查masterDNS
  一样,看日志.
  
  三.机器2上配置一个slaveDNS
  机器2上:
  1.编辑/etc/named.conf
  /etc/named.conf
  options {
  directory “/var/named/”;
  };
  
  zone “.” IN {
  type hint;
  file “named.ca”;
  };
  
  zone “localhost” IN {
  type master;
  file “localhost.zone”;
  };
  
  zone “0.0.127.in-addr.arpa” IN {
  type master;
  file “named.local”;
  };
  
  zone “example1.com” IN {
  type slave;
  masters { 192.168.0.254; };
  file “db.example1-slave”;
  };
  
  zone “0.168.192.in-addr.arpa” IN {
  type slave;
  masters { 192.168.0.254; };
  file “db.192.168.0-slave”;
  };
  ------------------------------------------------------------
  解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
  与masterDNS,不同的是:type slave; masters { 192.168.0.254; };
  slaveDNS的效果就是定期的向masterDNS复制一份数据库.
  一个网络一般只能有一个masterDNS,多个slaveDNS,slaveDNS用来使DNS的
  访问负载均衡.减轻masterDNS的负担.
  此时,删掉上面配置forward 的那句:forwarders { 192.168.0.254; };
  加着也没错,只不过,容易判断是否是slaveDNS在起作用。
  ------------------------------------------------------------
  2.检验:
  # cat >> /var/log/messages
  ******
  ******
  [ctrl]+d
  # service named restart
  # host server1.example1.com
  # host station1.example1.com
  # host www.example1.com
  # host www1.example1.com
  # host 192.168.0.254
  
  看看是否可以解析,如:# host server1.example1.com 显示:
  www.example1.com has address 192.168.0.254
  # host 192.168.0.254 显示:
  254.0.168.192.in-addr.arpa domain name pointer server1.example1.com.
  0.168.192.in-addr.arpa.
  
  且查看在/var/named/下是否生成: db.example1-slave , db.192.168.0-slave
  两个文件.
  如果,没有生成这两个文件,说明配置有文体。具体检查日志/var/log/messages
  排除错误。直到无错,且自动生成两个文件,且能正确解析。
  另外,一定注意,机器1和机器2的iptables保持关掉。
  
  [实验总结]
  本文只是为了让你快速入门,且告诉你一个简单的手动配置一个DNS的方法,具体的
  原理讲的很少,如果想了解更多,请参考其他专业的文档。如果你即使在不熟的情况下,
  做完此实验,且做的时候多想过一些问题,绝对有助于看其他文档。

原文转自:http://www.ltesting.net