Redhat Linux9/AS3中DNS服务器的文本配置方式(包括子域实现)

由 syd168 在 07-30-2004 18:24 发表:

Redhat Linux9/AS3中DNS服务器的文本配置方式(包括子域实现)

> PHP源码: > > * * * > >
>
> 一、DNS的基本知识
>
> 我们都知道,网络通信中,数据链路等使用的地址是MAC地址。网络层使用的是IP地址,传输层使用的地址是端口号,它们各有各的识别方式。而和用户关系最密切的就是IP地址,每个入网的(不论是Internet或Intranet)计算机都必须有自己的IP地址,这样才可保证信息的正确传递。但IP地址是数字构成的,非常难与记忆和表达他的实际用途,所以人们用形象的域名代替IP,方便交流和记忆,但需要注意的是,网络通信中数据包的传输是靠IP地址进行的。也就是说,当www . syd . com向www1 . syd . com发送信息的时候,首先必须将自己的和对方的域名转化为实际的IP地址,并填写在数据包的头部,才进行数据的传输。而完成域名到IP或IP到域名的翻译(解析)的软件就是DNS服务系统。DNS服务系统必然要安装在某个计算机上,这个计算机就是所谓为的DNS服务器。
>
> 目前为止,实现这种域名解析的方法主要有三种:
>
> 1 ) hosts文件,但要求所有互相解析的机器必须都配置
>
> 1 ) NIS ( SUN的技术 ) 集中管理域名,只适合局域网 , 原因大家自己想
>
> 3 ) DNS 实现域名的层次化,分布式管理,目前大部分都是这种方式
>
> DNS服务的配置比较难,而且可能需要ISP的支持,DNS也是各种网络应用服务的基础,例如网站,邮件。。。都需要域名的支持,而且有了DNS,IP的移植就方便多了。
>
> 二、Linux下配置DNS服务器的条件
>
> 目前的各种Linux中都提供了实现DNS服务的软件,而且默认大部分都是直接安装的(这与Linux主要面向服务领域的宗旨是分不开的)。Linux中的DNS服务器软件叫bind , 目前是版本9吧 . 它的管理程序叫named ( 这里的d表示守护进程,也即Windows中的服务 )
>
> 1)检查是否安装DNS服务软件
>
> #rpm -ql bind
>
> 如果没有安装,可以添加 :
>
> #rpm -ivh bind.rpm(RH9的第一张)
>
> #rpm -ivh nameservere.rpm((RH9的第二张))
>
>
>
> 三、DNS服务器组成和配置方式
>
> DNS服务系统采用C / S结构,普通用户的机器是C,提供DNS解析服务的是S,客户端的配置相当简单,只需要在 / etc / resolv . conf中添加DNS服务器的IP就可以了(最多三个),格式如下:
>
> nameserver 172.16.0.3
>
> nameserver 10.8.10.244 (表示由这些机器完成域名到IP的翻译)
>
> ( 注意,实验中最好将自己的DNS服务器IP放在前面,否则可能测试失败,但上网速度要慢些,为了实验,值得! )
>
> DNS服务器端的配置主要包括主配置文件和区域文件。
>
> 主配置文件 :/ etc / named . conf 完成区域的声名和全局配置(如子域声名,访问控制等等)
>
> 区域文件 ( 默认在 /var/ named下 ) ,文件名与主配置文件中声名的一样,主要完成DNS资源记录(包括SOA , MX , A , NS , CNAME等等),下面的配置文件中详细说明。
>
>
>
>
>
> ====================================================================
>
> 下面的内容是实现过程
>
> =====================================================================
>
> 四、文本配置的实现
>
> 1.配置规划
>
> 为了大家能够容易看懂,这里我先把我实现的设想写出来:
>
> 我在自己的机器 ( 512MB , 80GB , 1.7GHz , 64MB Vcard ) 上安装了两个RH AS 3系统,这样我总共有3台机器进行试验。我的目的是在两个Linux系统中进行试验,实现域名解析和子域名。
>
> 我要实现的域是syd168 . com , 域中包含的机器有:www , bbs , ftp , mai , ssl
>
> 它们分别用于完成网站,BBS,FTP,电子邮件和电子商务站点,而且都在一个机器上 ( 172.16.0.3 ) ,实际中常常在不同的机器上。
>
> 另外,我计划实现syd168 . com与的子域sub . syd168 . com , 子域有它自己的主机解析记录 ( www , mail , ftp , ssl ...) ,并跨网段。
>
> 提示,如果在一个机器上,各种服务对应到不同的域名要用到虚拟主机技术,以后我会发布它们的实现方法,其实这里有很多相关资料的。
>
> RH AS1:
>
> IP : 172.16.0.3 / 16
>
> 网关:172.16.0.2
>
> DNS客户配置172.16.0.3
>
> RH AS2:
>
> IP : 172.16.0.4 / 16
>
> 网关:172.16.0.2
>
> DNS客户配置172.16.0.4
>
>
>
> 1.配置主配置文件
>
> 当安装完Bind之后,默认产生主配置文件 / etc / named . conf
>
> #vi /etc/named.conf 其中加入如下内容
>
>
>
> **********************/ etc / named . conf **************************
>
> options {
>
>
>
> directory "/var/named" ; //区域文件的存放位置
>
> forwarders { 10.8.10.244 ;};
>
> //allow-query {172.16.0.0/16};
>
> //allow-transfer {172.16.0.0/16;};
>
> //forward only;
>
> };
>
> controls {
>
> inet 122.0.0.1 allow { localhost ;
>
> 172.16.0.3 ; 172.16.0.4 ;} keys { rndckey ; };
>
> };
>
>
>
> zone "." IN {
>
> type hint ;
>
> file "named.ca" ;
>
> };
>
> zone "localhost" IN {
>
> type master ;
>
> file "localhost.zone" ;
>
> allow - update { none ; };
>
> };
>
> zone "0.0.127.in-addr.arpa" IN {
>
> type master ;
>
> file "localhost.arpa" ;
>
> allow - update { none ; };
>
> };
>
>
>
> //=====================新加入的内容=====================
>
> zone "syd168.com" IN { //要实现syd168.com域
>
> type master ; //要实现的是主域
>
> file "syd168.com.zone" ; //主域的记录文件(好记的名字)存放在/var/named下
>
> };
>
> zone "0.16.172.in-addr.arpa" IN { //syd168.com的反向解析区域
>
> type master ; //类型是主要区域
>
> file "syd168.com.arpa" ; //反向区域记录的存放文件(好记的名字),位置同上
>
> };
>
> //=====================新加入内容结束=====================
>
>
>
> include "/etc/rndc.key" ;
>
>
>
>
>
>
>
> 2.建立两个区域文件 /var/ named下
>
> 1 ) #vi /var/named/syd168.com.zone
>
>
>
>
>
>
>
> //=============正向区域文件/var/named/syd168.com.zone=============
>
>
>
> $TTL 2h
>
> syd168 . com . IN SOA www . syd168 . com . master . syd168 . com . ( //最左边的syd168.com可以简化为@, 后面依次为 IN SOA 主DNS服务器域名 DNS服务器管理员邮件
>
> 20040730 ; serial number //区域序列号,当修改时要增加,否则从域可能不一致!
>
> 2h ; refresh timeout //从域刷新超时时间
>
> 40m ; retry refresh timeout //从域重试刷新时间
>
> 1w ; expire timeout //从域刷新失败并认为主域无效的时间
>
> 2h ; TTL time
>
> )
>
> //以下每行都要靠左,即左侧不要留出空白
>
> syd168 . com . IN NS www . syd168 . com . //表示syd168.com的域名由www.syd168.com(或IP)翻译
>
>
>
> www IN A 172.16.0.3 //www.syd168.com对应的IP为172.16.0.3
>
> www IN A 172.16.0.4 //www.syd168.com对应的IP为172.16.0.4,单域名多IP可实现负载均衡
>
>
>
> ftp IN A 172.16.0.4 //左边也可以写为ftp.syd168.com. 注意!这时最后必须多个点,否则错误。
>
> mail IN A 172.16.0.5 //全域名必须以点结束!
>
> bbs IN A 172.16.0.6 //IN 表示Internet,A表示Address
>
> test IN A 172.16.0.7 //注意 ,这些IP必须可连同,否则徒劳!
>
> ssl IN A 172.16.0.3
>
>
>
> syd168 . com . IN MX 10 mail . syd168 . com . //表示发往syd168.com域的邮件由mail.syd168.com主机转发,MX表示mail exchange
>
> 在
>
>
>
> //以下两行是实现子域的方法,要实现的子域是syd168.com的子域sub.syd168.com,父域中给出指向子域的服务器地址
>
> sub IN NS www . sub . syd168 . com . //表示后缀为sub.syd168.com的域名由www.sub.syd168.com负责翻译,NS 表示Name Server
>
> www . sub IN A 172.16.1.3 //表明www.sub主机在本域中的主机解析为172.16.1.3
>
>
>
> //以下是主机的别名,我一般不设,因为上面已经是标准名了,要别名干什么,如果需要也可直接设置主机名
>
> www1 IN CNAME www
>
> ftp1 IN CNAME ftp
>
> bbs1 IN CNAME bbs
>
> mail1 IN CNAME mail
>
> test1 IN CNAME test
>
> ssl1 IN CNAME ssl1
>
>
>
> //=============正向区域文件结束=============
>
>
>
>
>
>
>
> //=============反向区域文件/var/named/syd168.com.arpa=============
>
>
>
> $TTL 2h
>
> @ IN SOA www . syd168 . com . master . syd168 . com . (
>
> 20040730 ; serial number
>
> 2h ; refresh timeout
>
> 40m ; retry refresh timeout
>
> 1w ; expire timeout
>
> 2h ; TTL time
>
> )
>
> IN NS www . syd168 . com . //注意本行左侧需要有空格,或者填入"区域名.",即0.16.172.in-addr.arpa.
>
>
>
> 3 IN PTR www . syd168 . com . 表示 www . syd168 . com对应的主机IP为172.16.0.3 ( 反向解析 )
>
> 4 IN PTR ftp . syd168 . com .
>
> 5 IN PTR mail . syd168 . com .
>
> 6 IN PTR bbs . syd168 . com .
>
> 7 IN PTR test . syd168 . com .
>
>
>
> //=============反向区域文件结束=============
>
>
>
> 3.测试与调试配置
>
> 修改完成后,保存推出
>
> 1 ) #service named start //启动named服务(提供DNS服务的进程),常见的错误是缺少.或;或左边多余的空格,排除直道本命令没有错误
>
> 2 ) #named //我的虚拟机必须这样才可解析,正常机器大概不需要,并且我在/etc/rc.d/rc.local中加入了运行named的行
>
> 3 ) #named -g 检查是否有错误,一般会很清楚,很多人说服务运行正常,但无法解析,除了/etc/resolv.conf中没有添加DNS服务器的IP,大

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus