• DNS Server &Bind的配置与使用


    Dns Server &Bind的配置与使用

    网络发展到今天,仅仅用IP地址去标一台网络上的计算机是很难以让人接受的,人们不可能记住众多的IP地址,于是便有了域名系统,它可以利用形象的名称来标识一台网络上的计算机,这就是DNS,本章将详细介绍有关DNS的一些知识。

    第一节 基础知识

    本节介绍DNS的工作原理、优点等基础知识。

    一、DNS简介

    连接TCP/IP的每个网络接口用一个唯一的32位的IP地址来标识,但由于数字比较复杂、难以记忆而且没有形象性。因而,人们发明了用域名系统,在这种情况下,我们可以使用易于理解和较为形象的名称来标识一台计算机。在大多数情况下,数字地址和域名地址可以交替使用;但无论用数字地址还是域名进行网络应用时,网络总是以IP地址为基础来进行的。在网络进行连接前,系统必须将域名转换成IP地址。这就是DNS服务器的作用。
    将域名转换成IP地址有两种常用的方法。一种较古老的方法是从一个称为"主机表"的文件中查找主机名;另一种是使用一个称为"域名服务(DNS)"的分布式数据库系统,将名字转换成IP地址。
    主机表是一个简单的文本文件,可以使IP地址与主机名相关联。在Redhat Linux7.2操作系统中,主机表文件为/etc/hosts,该文件的每一列表项包含一个IP地址和用空格隔开的与该地址关联的主机名。

    DNS的优点:
    DNS的扩充性好。它并不单独依靠一个主机表,而是依靠一个分布式数据库系统,不会因为数据库的增长而陷入困境。
    DNS可确保在必要时将新主机的信息传播到网络中的其他部分。不仅能自动地传播信息,而且可以只传播所需的信息。
    ? DNS的工作原理为:
    如果一台DNS服务器接收到一个要求获取有关主机信息的请求,它就将该请求发送给一台管理服务器。管理服务器是负责保持查询域的精确信息的服务器。当它响应该请求时,本地服务器就将回答信息保存在高速缓存中。当本地服务器再接收到要求获取关主机信息的请求时,它本身就回答这个请求。

    二、DNS服务器的类型

    DNS服务器分为以下几个类型:
    1."Cache-Only"DNS服务器:
    一个DNS服务器也不可能拥有国际网络上所有的主机信息,因此它提供一个转送方式,将自己的DNS服务器无法处理的查询要求转送至上一层的DNS服务器上查询,然后将所得到的查询结果传送给提出查询要求的主机。而"Cache-Only"DNS就是该DNS服务器的主机里除了自己的信息就没有其它的了,它将所有的查询要求都转送至其他DNS服务器上。
    2."Primary"DNS服务器:
    一个功能完备的DNS服务器,管理一个或数个"Domain"(域)的计算机信息。而这些相关的资料都依照某种格式储存于服务器的档案目录中,然后会在服务器启动时将这些资料载入系统。
    3."Secondary"DNS服务器:
    "Secondary"DNS服务器也是一个功能完备的DNS服务器,所不同的是,它的主机资料并非完全储存于服务器所在的档案目录中,而由某个"Primary DNS"来提供。

    三、DNS数据库文件几个参数的说明

    DNS数据库文件有以下几个参数需要说明:
    ttl
    为了迫使解析器在一段时间后丢去信息,每条记录都有一个相应的"生存期",简称ttl。它的单位是秒,系统的缺省值为86400。
    SOA
    描述了一个授权区域,它表示了该区域的授权信息。
    Serial
    表示该区域文件的版本号数。每当区域文件中的数据改变时,这个数值将要增加。通常用修改的时间来表示该版本号。例如2002110501表示2002年 11月5日对该文件的第一次修改。从服务器在一定时间以后就请求主服务器的SOA记录,并将该序列号值与缓存中的SOA记录的序列号相比较,如果数值改变了,从服务器就从主服务器将整个区域的数据传输过来。
    Refresh
    指定了从服务器将要检查主服务器的SOA记录的时间间隔,单位为秒。
    retry
    它指定了从服务器的一个请求或一个区域刷新失败后,从服务器重新与主服务器联系的时间间隔,单位是秒。
    expire
    在指定的时间内,如果从服务器还不能联系到主服务器(主服务器宕机),从服务器将丢去所有的区域数据。
    minimum
    如果没有明确指定ttl的值,则minimum就是缺省的"生存期"。
    A
    主机记录,用于将一个主机名与一个IP地址相关联(相对应)。
    NS
    用来指定某个区域的主名字服务器和所有从名字服务器。一条NS记录指向一个给定区域的主名字服务器,以及包含该服务器主机名的资源记录。
    CNAME
    用来关联一个主机名的别名和它的规范主机名,即该记录为规范主机名提供了一个别名。
    MX
    指明了该区域中的邮件交换器(邮件服务器)和优先级。

    第二节 实 例

    一、DNS实例一

    北京千喜公司现用ISDN上网,目前已能上网,但是速度稍慢,为了提高访问互联网的速度,公司网络管理员决定在Linux系统下做一台caching nameserver(域名缓存服务器)。试为该公司安装该服务器。
    分析:该服务器的功能就是暂存上次访问过的域名,下次需要解析时,直接从缓存内读取结果,所以不用建立其他的区域。假设我们将服务器的IP设置为192.168.0.197。

    具体操作步骤如下:
    1.获取并安装DNS服务器软件。
    Linux/UNIX系统内常用的DNS服务器软件为Bind,RedHat Linux7.2版本为bind-9.1.3-4,可以到http://www.isc.org/products/BIND/或ftp: //ftp.isc.org/isc/bind9/获得新版本。
    如果是下载的源代码(以bind-9.2.1为例),则执行以下操作:
    (1)进入源代码所在的目录。例如:/tmp。
    (2)tar –zxvf bind-9.2.1.tar.gz
    (2)cd bind-9.2.1
    (3)./configure
    make
    make install
    如果从RedHat Linux7.2的安装光盘安装,则:
    (1)把RedHat Linux7.2的安装光盘放入光驱,执行:
    mount /dev/cdrom /mnt/cdrom
    (2)cd /mnt/cdrom /RedHat/RPMS
    (3)rpm –ivh bind-9.1.3-4.i386.rpm
    2.修改配置文件/etc/named.conf。
    由于是域名缓存服务器,不用修改该配置文件,但是必须确定该配置文件内有如下字段:
    zone"."{
    typehint;
    file"named.ca";
    };
    3.启动dns服务器。
    /etc/rc.d/init.d/named start
    为了每次开机都启动DNS服务,需要执行chkconfig --level 2345 named on。

    当执行完/etc/rc.d/init.d/named start后,执行tail–f/var/log/messages命令查看系统日志时,日志内容大至应如图1所示。

    图1

    4.测试服务器。
    (1)编辑/etc/resolve.conf,将其内容更改为(即指定DNS通过本机解析):
    nameserver 127.0.0.1
    (2)执行dig –x 127.0.0.1(验证本机解析是否正常)命令后,出现如图2所示的内容。

    图2

    (3)执行dig www.google.com(外部域名解析是否正常)命令,应出现如图3所示的内容。

    图3

    (5)客户端设置。只需将客户端的首选DNS服务器设置为192.168.0.197即可。

    二、DNS实例二

    长城医药公司申请了域名greatwall.com,现在公司的DNS服务器地址为:202.119.98.1,域名为 ns.greatwall.com,web服务器地址为:202.119.98.10,域名为www.greatwall.com,FTP服务器地址为: 202.119.98.100,域名为ftp.greatwall.com试为该公司安装一台DNS服务器。
    分析:因为没有特殊要求,这是最简单的DNS服务器。只需要设置本地区域,并且能够起到缓存作用即可,而且内部通过此服务器也能解析外部的DNS地址。

    具体操作步骤如下:
    1.获得并安装DNS服务器软件(参看实验一的步骤1)。
    2.修改配置文件,即vi/etc/named.conf。
    (1)定义正解区域,在named.conf文件内插入以下内容:
    zone "greatwall.com"{
    type master;
    file "dns.greatwall.com";
    };
    (2)定义反解区域,在named.conf文件内插入以下内容:
    zone "98.119.202.in-addr.arpa"{
    type master;
    file "202.119.98";
    };
    3.用/etc/hosts文件解析服务器域名,在/etc/hosts文件内插入以下内容:
    202.119.98.1 ns ns.greatwall.com
    4.创建DNS数据库文件。
    (1)创建正解数据库文件/var/named/dns.greatwall.com,其内容如下:
    $TTL86400
    @ IN SOA ns.greatwall.com. root.ns.greatwall.com(
    199802151; serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum,seconds;
    NS ns.greatwall.com.
    ns A 202.119.98.1
    www A 202.119.98.10
    ftp A 202.119.98.100
    . . .
    . . .
    . . .
    (2)创建反解数据库文件/var/named/202.119.98,其内容如下:
    $TTL86400
    @ IN SOA ns.greatwall.com. root.ns.greatwall.com(
    199802151; serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.greatwall.com.
    1 IN PTR ns.greatwall.com.
    10 IN PTR www.greatwall.com.
    100 IN PTR ftp.greatwall.com.
    . . .
    . . .
    . . .
    5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一)。
    6.测试DNS服务器。
    (1)设置/etc/resolv.conf,即将某台客户机的DNS设置为202.119.98.1(或者将DNS服务器设置为202.119.98.1,此时服务器也当客户机):
    nameserver 202.119.98.1

    (2)执行dig –x 202.119.98.1命令,测试服务器是否正常。

    (3)执行nslookup www.greatwall.com命令,解析内部域名地址。

    (4)执行dig greatwall.com axfr命令,查看greatwall.com域的全部记录。

    (5)执行nslookup www.google.com命令,解析外部域名。

    到此为止,服务器已经安装完成并且能够正常运行。

    三、DNS实例三

    长江实业公司的内部域名服务器为192.168.10.197,域名为ns.changjiang.com,ISP的域名服务器地址为: 202.106.196.115,为了减轻内部域名服务器的负担,网络管理员决定将外部域名查询转发给ISP的服务器处理(不用cache)。试安装该服务器。
    具体操作步骤如下:
    1.获得并安装DNS服务器软件(参看实验一的步骤1)。
    2.修改配置文件,即编辑/etc/named.conf:
    (1)设置forward(转发)字段(凡是非本域的地址都发送给外部域名服务器解析):
    在option字段添加下列语句,如图4所示:
    forward first;
    forwarders{
    202.106.196.115;
    };

    图4

    (2)定义正解区域,在named.conf文件内插入如下内容:
    zone "changjiang.com"{
    type master;
    file "dns.changjaing.com";
    };
    (3)定义反解区域,在named.conf文件内插入如下内容:
    zone "10.168.192.in-addr.arpa"{
    type master;
    file "192.168.10";
    };
    (4)用/etc/hosts文件解析服务器域名,在/etc/hosts内插入以下内容:
    192.168.10.197 ns ns.changjiang.com

    4.创建DNS数据库文件:
    (1)创建正解数据库文件/var/named/dns.changjiang.com,其内容如下:
    $TTL86400
    @ IN SOA ns.changjiang.com. root.ns.changjiang.com(
    199802151; serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.changjiang.com.
    Ns IN A 192.168.10.197
    www A 192.168.10.198
    ftp A 192.168.10.1
    . . .
    . . .
    . . .
    (2)创建反解数据库文件/var/named/192.168.10,其内容如下:
    $TTL86400
    @ IN SOA ns.changjiang.com. root.ns.changjiang.com(
    199802151;serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.changjiang.com.
    197 IN PTR ns.changjiang.com.
    5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一的步骤3)。
    6.测试DNS服务器:
    (1)设置/etc/resolv.conf,即将某台客户机的DNS设置为192.168.10.197(或者将DNS服务器设置为:192.168.10.197,此时服务器也当客户机):
    nameserve r192.168.10.197
    (2)执行dig –x 192.168.10.197命令,如图5所示,表示服务正常。

    图5

    再分别解析一个内部域名和一个外部域名:
    解析内部域名:nslookup www.changjiang.com
    解析外部域名:nslookup cn.yahoo.com

    (3)确认解析外部域名是通过forward实现的。可以将/etc/named.conf内的"."(根服务器)区域屏蔽掉,如图6所示。然后重新启动服务器:/etc/rc.d/init.d/namedrestart。最后再解析外部域名:nslookup freemain.263.net

    图6

    四、DNS实例四

    霍普公司总部有一域名服务器,各地分公司也均有自己的域名服务器,现要为该公司建立域名服务系统,且总部和各地分公司的web服务器与FTP服务器用同一台主机,公司有一台邮件服务器和一台备份邮件服务器,由于公司总部的业务不能中断,要求建立一台备份域名服务器。公司的部分资料如下:
    域   名对应的IP角   色部   门
    ns.hope.com140.135.10.1主域名服务器总公司
    nsback.hope.com140.135.10.2备份域名服务器总公司
    mail.hope.com140.135.10.3主邮件服务器总公司
    mailback.hope.com140.135.10.4备份邮件服务器总公司
    www.hope.com140.135.10.5Web服务器总公司
    ftp.hope.com140.135.10.5FTP服务器总公司
    download.hope.comftp.hope.comFTP服务器别名总公司
    ns.chengdu.hope.com140.135.20.1分公司域名服务器成都分公司
    www.chengdu.hope.com140.135.20.2分公司Web服务器成都分公司
    ftp.chengdu.hope.com140.135.20.2分公司FTP服务器成都分公司
    ns.shanghai.hope.com140.135.30.1分公司域名服务器上海分公司
    ns.changchun.hope.com140.135.40.1分公司域名服务器长春分公司
    ns.tianjin.hope.com140.135.50.1分公司域名服务器天津分公司
    ……………………

    分析:由于总公司与各分公司均有自己的域名服务器,要让总公司能够解析各分公司的域名,各分公司的DNS服务器应为总公司的子域。要让各分公司能够解析出总公司的域名,可以设置转发,也可以将分公司的域名服务器的根服务器设置为总公司的服务器。

    具体操作步骤如下:

    一、总公司主服务器的安装。
    1.获得并安装DNS服务器软件(参看实例一的步骤1)。
    2.修改配置文件,即编辑/etc/named.conf:
    (1)定义正解区域,在named.conf文件内插入如下内容:
    zone "hope.com"{
    type master;
    file "dns.hope.com";
    };
    (2)定义反解区域,在named.conf文件内插入如下内容:
    zone "10.135.140.in-addr.arpa"{
    type master;
    file "140.135.10";
    };
    3.用/etc/hosts文件解析服务器域名,在/etc/hosts内添加以下内容:
    140.135.10.1 ns ns.hope.com
    4.创建DNS数据库文件:
    (1)创建正解数据库文件/var/named/dns.hope.com,其内容如下:
    $TTL86400
    @ IN SOA ns.hope.com. admin.hope.com(
    199802151;serial
    28800;refresh
    14400;retry
    3600000;expire
    86400);minimum
    IN NS ns.hope.com.
    chengdu IN NS ns.chengdu.hope.com.
    shanghai IN NS ns.chengdu.hope.com.
    changchun IN NS ns.changchun.hope.com.
    tianjin IN NS ns.tianjin.hope.com.
    . . . .
    以上为各地分公司的域名记录,即NS记录。省略号表示很多。
    ns.chengdu IN A 140.135.20.1
    ns.shanghai IN A 140.135.30.1
    ns.changchun IN A 140.135.40.1
    ns.tianjin IN A 140.135.50.1
    . . . .
    以上为各地分公司的DNS服务器的主机记录,它是A记录。
    MX 10 mail.hope.com.
    MX 20 mailback.hope.com.
    以上两条为邮件服务器记录。
    ns IN A 140.135.10.1
    nsback IN A 140.135.10.2
    mail IN A 140.135.10.3
    mailback IN A 140.135.10.4
    www IN A 140.135.10.5
    ftp IN A 140.135.10.5
    download IN CNAME ftp
    . . . .
    以上为总公司的主机记录和别名,即A记录和CNAME记录。
    (2)创建反解数据库文件/var/named/140.135.10,其内容如下:
    $TTL86400
    @ IN SOA ns.hope.com. root.ns.hope.com
    199802151; serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.hope.com.
    1 IN PTR ns.hope.com.
    5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一)。
    6.测试DNS服务器:
    (1)设置/etc/resolv.conf,即将某台客户机的DNS设置为140.135.10.1(或者将DNS服务器设置为:140.135.10.1,此时服务器也当客户机):
    nameserver 140.135.10.1
    (2)执行dig –x 140.135.10.1命令

    二、建立各分公司的服务器(子域),下面以成都分公司为例介绍子域的建立。
    1.获取并安装服务器软件。(参看实例一的步骤1)
    2.用/etc/hosts文件解析DNS服务器。在/etc/hosts文件内添加如下内容:
    140.135.20.1 ns ns.chengdu.hope.com
    3.配置named.conf文件。
    (1)在named.conf中添加转发字段:
    forward first;
    forwarders {
    140.135.10.1;
    };
    (2)建立正解区域及反解区域,即在/etc/named.conf中添加如下字段:
    zone "chengdu.hope.com" {
    type master;
    file "dns.chengdu.hope.com";
    };
    zone "20.135.140.in-addr.arpa" {
    type master;
    file "140.135.20";
    };
    4.创建域名数据库文件。/var/named/dns.chengdu.hope.com
    文件的内容如下:
    $TTL 86400
    @ IN SOA ns.chengdu.hope.com. root.ns.chengdu.hope.com (
    199802151; serial
    28800 ; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.chengdu.hope.com.
    ns IN A 140.135.20.1
    www IN A 140.135.20.2
    ftp IN A 140.135.20.2
    . . .
    140.135.20文件的内容如下:
    $TTL 86400
    @ IN SOA ns.chengdu.hope.com. root.ns.chengdu.hope.com (
    199802151; serial
    28800; refresh
    14400; retry
    3600000; expire
    86400); minimum
    IN NS ns.chengdu.hope.com.
    1 IN PTR ns.chengdu.hope.com.
    5.启动DNS服务,执行/etc/rc.d/init.d/named start命令。
    6.测试DNS服务器:方法与总公司的DNS服务器测试相同,这里不现赘述。
    按照上面的方法,分别为其他分公司建立域名服务器。

    三、总公司备份服务器的建立
    1.安装服务器软件(参看实例一的步骤1)。
    2.编辑/etc/named.conf文件,在该文件中添加如下内容:
    zone "hope.com"{
    type slave;
    file "dns.hope.com";
    masters {140.135.10.1;};
    allow-update { none; };
    };
    3.修改主服务器上的/etc/named.conf文件,在其中添加如下字段:
    notify-source 140.135.10.2;
    并将区域"hope.com"更改为如下:
    zone "hope.com"{
    type master;
    file "dns.hope.com";
    allow-transfer {140.135.10.2;};
    allow-update { none; };
    };
    4.重新启动服务器,即可看到/var/named目录多了文件dns.hope.com,说明从服务器配置成功。

  • 相关阅读:
    机器学习-数据与特征工程
    机器学习-聚类(clustering)算法:K-means算法
    机器学习-回归中的相关度和R平方值
    机器学习-非线性回归(Logistic Regression)及应用
    机器学习-多元线性回归(一)
    机器学习-简单线性回归(二)
    MVC,MVP,MVVM
    Git从入门到熟练
    NSNotificationCenter
    FMDB的线程安全
  • 原文地址:https://www.cnblogs.com/hq2008/p/1128744.html
Copyright © 2020-2023  润新知