Samuel Learning

  • 联系
  •  
  • 管理

文章分类(203)

  • 01 ASP/HTML(6)
  • 02 Script/CSS(16)
  • 03 C/C++
  • 04 XML(4)
  • 05 微软编程(26)
  • 06 J2EE(60)
  • 09 Linux(14)
  • 10 Database(27)
  • 11 报表打印
  • 12 打包安装(1)
  • 13 模式重构(2)
  • 14 系统架构
  • 15 敏捷开发(11)
  • 16 案例分析(30)
  • 17 Workflow(1)
  • 18 配置管理(1)
  • 19 项目管理
  • 20 英语(4)

新闻分类(52)

  • CXF学习
  • Hibernate学习(1)
  • iBatis学习(16)
  • Struts1学习(1)
  • Struts2学习(34)

.NET资源

  • adxmenu
  • C# Open Source
  • DNN Directory
  • M2Land
  • Windows Form FAQ
  • 中国DNN
  • 中国DNN联盟

Ajax

  • DoJo
  • GWT
  • JQuery
  • jquery autocomplete
  • jquery flexgrid
  • JQuery Form
  • jquery masked input
  • JQuery UI
  • jquery validation
  • Jquery 图表
  • jquery报表
  • jquery插件集合
  • Qooxdoo
  • Tibco GI
  • YUI
  • YUI-EXT
  • ZeroKode

Java开源

  • ABLE
  • Agile Tao
  • Ajax4JSF
  • Alfresco
  • AppFuse
  • Compiere
  • Equinox
  • Findbugs
  • Geronimo
  • Grails
  • Harmony
  • Hibernate论坛
  • JAG
  • Java开源大全
  • Java视线论坛
  • jBPM工作流
  • JSFTutorials
  • Nereide ERP
  • Ofbiz ERP
  • Opentaps ERP
  • operamasks
  • Petstore
  • Prototype.js
  • RIFE
  • Runa
  • SpringSide
  • Struts Menu
  • Sun Glassfish
  • Trails
  • YUI4JSF
  • 满江红

Mobile

  • Sencha

WEB资源

  • DHTML中心
  • DHTML参考手册
  • DHTML文档
  • EclipsePlugin
  • Firebug
  • GRO Clinux
  • jMaki
  • JSTL文档
  • LoadIcon
  • Openlaszlo
  • Struts Menu 展示
  • Web Test Tools
  • WebCtrs
  • Webdeveloper
  • 中国RIA开发者论坛

Workflow

  • E-Workflow
  • JBPM
  • OpenWFE
  • OSWorkflow
  • WFMC
  • Workflow Research

其他连接

  • confach
  • CPP
  • ejay
  • Giovanni
  • 丹佛
  • 交大e-learning
  • 交大研究生院
  • 可恶的猫
  • 天天@blog
  • 我的相册
  • 阿飞

大牛人

  • 32篇JBPM
  • David.Turing
  • HongSoft@业务集成
  • Joel
  • Koen Aers
  • Martinfowler
  • Raible Matt
  • Raible Wiki
  • Scott W.Ambler
  • Tom Baeyens
  • Uncle Bob
  • 一个世界在等待
  • 子在川上曰
  • 小布老师
  • 小明
  • 差沙
  • 徐昊
  • 江南白衣
  • 汪博士
  • 汪小金
  • 银狐999

开源软件

  • 2Bizbox ERP
  • CompiereCRM&ERP
  • EGW
  • Vtiger CRM
  • webERP

敏捷

  • Canoo
  • Cruisecontrol
  • DBUnit
  • EL4Ant
  • Extreme Programming
  • Fit
  • Fitnesse
  • JFrog
  • Liquibase
  • Maven
  • MockObjects
  • Selenium
  • Squish
  • xpairtise
  • XPlanner
  • XProgramming
  • 敏捷联盟

数据库

  • Oracle 中国
  • Oracle-ERP
  • Oracle在线社区

未归类

  • Aquarius Orm Studio
  • mambo建站系统
  • Oracle产品下载
  • 远程同步管理工具Capivara

经典框架

  • Apache Shale
  • formdef-struts
  • FreeMarker 主页
  • JBoss Seam
  • JSF 中心
  • JSF 入门应用
  • JSF中国
  • MyFaces官方
  • Spring 社区
  • Spring专业网站
  • Spring中文论坛
  • Spring参考手册
  • Spring官方网站
  • strecks-struts
  • Struts1
  • Struts2
  • Struts-layout
  • StrutsWiKi
  • Tapestry WIKI
  • Tapestry 官方
  • Tapestry4开发指南
  • Tapestry中文文档
  • Webwork2文档
  • Wicket

网络教程

  • Laliluna
  • RoseIndia
  • Sang Shin
  • Visualbuilder

著名站点

  • Buildix
  • Dev2Dev
  • IBM dev中国
  • InfoQ
  • ITPub
  • Java Eye
  • Java Research
  • JavaRead
  • JavaWorldTW
  • Matrix
  • PHP100
  • PHPX
  • SpringSideWiKi
  • TheServerSide
  • TWPHP
  • 中国工作流论坛

项目管理

  • 管理人网

最新评论

View Post

用实验快速掌握DNS配置

用实验快速掌握DNS配置

 

    由于配置DNS很重要,本文主要以做实验来快速掌握DNS配置.

    [实验目的]

    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/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的方法,具体的

原理讲的很少,如果想了解更多,请参考其他专业的文档。如果你即使在不熟的情况下,

做完此实验,且做的时候多想过一些问题,绝对有助于看其他文档。

[题外话]

     至于让机器2作为一般的客户端,采用机器1的DNS,需要修改/etc/resolv.conf文件,

不属于DNS配置的范围。

     至于如何让机器1连到Internet,更不是本文所讨论的范围。

 

 

posted on 2005-09-26 08:45 MingIsMe 阅读(119) 评论(0)  编辑  收藏 所属分类: 09 Linux

 
Powered by:
BlogJava
Copyright © MingIsMe