在RHEL5.4下搭建和配置DNS服务器 一、域名与域名解析 网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP 地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。不过最终还是必须将域名转换为对应的IP 地址才能访问主机。 DNS (DomainName System)服务,又叫域名解析服务,即提供域名与IP地址的相互转换。域名的正向解析是将主机名转换成IP 地址的过程,域名的反向解析是将IP地址转换成主机名的过程。通常我们很少需要将IP 地址转换成主机名,即反向解析。反向解析经常被一些后台程序使用,用户看不到。 二、DNS 架构 域的层次结构如同一棵倒立的树,层次结构非常清晰,如图所示。根域位于顶部,紧接着在根域的下面是几个顶级域,每个顶级域又可以进一步划分为不同的二级域,二级域再划分出子域,子域下面可以是主机也可以是再划分的子域,直到最后的主机。在Internet 中的域是由InterNIC负责管理的,域名的服务则由DNS 来实现。 三、DNS 解析流程 1、客户机请求解析www.exmaple.com.cn的IP 地址,如果本地hosts文件中没有相关解析, 则向本地DNS服务器发出解析请求; 2、如果本地DNS服务器有该域名的解析信息,则直接返回给客户机;如果本地DNS服务器没有该域名的解析信息,则本地DNS 服务器向根DNS服务器询问www.exmaple.com.cn的IP地址; 3、如果根DNS 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果根DNS 服务器没有该域名的解析信息,则返回管辖.cn解析业务的DNS 服务器的IP 地址; 4、本地DNS 服务器向管辖.cn的DNS 服务器询问www.exmaple.com.cn的IP 地址; 5、如果.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS
服务器再将解析信息返回给客户机;如果.cn DNS 服务器没有该域名的解析信息,则管辖.cn解析业务的DNS服务器告知.com.cn的DNS 服务器的IP地址;
6、本地DNS 服务器向管辖.com.cn的DNS服务器询问www.exmaple.com.cn的IP 地址;
7、如果.com.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果.com.cn DNS 服务器没有该域名的解析信息,则管辖.com.cn解析业务的DNS 服务器告知.example.com.cn的DNS服务器的IP地址;
8、本地DNS服务器向管辖.example.com.cn的DNS 服务器询问www. example.com.cn IP 地址;
9、管辖.example.com.cn的DNS服务器告知www.exmaple.com.cn的DNS服务器的IP地址;
10、本地DNS服务器解析出www.exmaple.com.cn的IP 地址,并传回给客户机。
Linux下的DNS服务器分为以下几种:
1、缓存域名服务器 主要功能是提供域名解析的缓存。
2、 主域名服务器 是特定域所有信息的权威性信息源,对于某个指定域,主域名服务器是唯一存在的;主域名服务器中保存了指定域的区域文件。
3、 从域名服务器 从主域服务器中获取相应的文件进行保存。 四、搭建Linux 下的DNS多域解析服务器
1、首先使用下列命令来查看bind软件包是否已经安装,如果安装可以直接进行配置,如果没有则进行安装:
[root@localhost ~]# rpm -qa | grep bind bind-chroot-9.3.6-4.P1.el5
kdebindings-3.5.4-6.el5
bind-libs-9.3.6-4.P1.el5
ypbind-1.19-12.el5
bind-9.3.6-4.P1.el5
system-config-bind-4.0.3-4.el5
bind-utils-9.3.6-4.P1.el5
其中软件包bind-chroot是为了系统的安装而装的,它可以使原本存放DNS配置文件的位置改变。如未安装这个包之前DNS的配置文件存放在/etc/named.conf下面,安装了这个包后,DNS的配置文件就改存在/var/named/chroot/etc/named.conf里了。
[root@localhost ~]# mount /dev/cdrom /media
为了以后的安装包方便下面说一下简单的本地yum的配置,以后就不用使用rpm命令装软件包了!!下面修改一下yum的配置文件,然后就可以使用yum命令来安装软件包了!!
[root@localhostetc]# cd yum yum/ yum.conf yum.repos.d/ [root@localhostetc]# cd yum.repos.d/
[root@localhostyum.repos.d]# ls
rhel-debuginfo.repo
[root@localhostyum.repos.d]# vi rhel-debuginfo.repo
把配置文件中baseurl的路径和enabled的值改成如下:
baseurl=file:///media/Server
enabled=1
修改了这两处后保存退出就OK了,其中第一个选项是指定你把你的系统光盘挂载的位置。
修改好以上两处选项后就可以使用yum命令来安装软件包了,当然你也可以使用rpm命令来安装(如果你不嫌被依赖关系搞崩溃的话)。千万要记住用yum命令安装软件包之前首先得挂载光盘(mount /dev/cdrom /media)。
DNS的配置选项
DNS服务器程序安装到系统后,还需要对它的配置文件进行修改,添加需要在本地DNS服务器解析的域名,才能使DNS服务器进行正常工作。
在配置DNS时,需要对多个配置文件进行修改,在修改之前我们先来看一下这些配置文件各自的作用:
(1)/var/named/chroot/etc/name.confNS服务器的主配置文件,在这个文件中可以设置通用参数,但在该文件中并不具体设置解析信息,而只是设置指向每个域名和IP地址映射信息的文件。
(2)/var/named/chroot/var/named/named.ca:这个文件是根域DNS服务器指向的文件,通过该文件可以指向根域DNS服务器。用户一般不要修改这个文件。此文件可以到到网上去下载,然后下载下来把名字重命名为named.ca并复制到/var/named/chroot/var/named/里。
(3)/var/named/chroot/var/named/localost.zone:用于将名字localhost转换为本地回送IP地址(127.0.0.1)。
(4) named.rfc1912.zones 用户配置的域名解析文件:也称为区文件,若当前DNS服务器需要解析多个域名,则需要设置多个域名解析文件。若需要反向解析,还要设置对应的反向解析文件。 3、修改主配置文件
[root@localhost~]# cd /var/named/chroot/etc/
[root@localhostetc]# cp –p named.caching-nameserver.conf named.conf
备注:cp 参数-p 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。这里大多数配置文件的属主是root,组为named,如果只是cp,启动named 服务时会报错。 [root@localhostetc]# vi named.conf
// named.caching-nameserver.conf // // Provided by Red Hatcaching-nameserver package to configure the // ISC BIND named( DNS serveras a caching only nameserver // (as a localhost DNS resolveronly). // // See/usr/share/doc/bind*/sample/ for example named configuration files. // // DO NOT EDIT THIS FILE - usesystem-config-bind or an editor // to create named.conf - editsto this file will be lost on // caching-nameserver packageupgrade. // options { listen-onport 53 { any; }; listen-on-v6port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; //Those options should be used carefully because they disable port //randomization //query-source port 53; //query-source-v6 port 53; allow-query { any;}; allow-query-cache{ any; }; }; logging { channel default_debug { file"data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { any; }; match-destinations{ any; }; recursionyes; include"/etc/named.rfc1912.zones"; }; [root@localhostetc]# vinamed.rfc1912.zones
// named.rfc1912.zones: // // Provided by Red Hatcaching-nameserver package // // ISC BIND named zoneconfiguration for zones recommended by // RFC 1912 section 4.1 :localhost TLDs and address zones // // See/usr/share/doc/bind*/sample/ for example named configuration files. // zone "." IN { typehint; file"named.ca"; }; # 根DNS服务器配置文件; zone "localdomain" IN { typemaster; file"localdomain.zone"; allow-update{ none; }; }; zone "localhost" IN { typemaster; file"localhost.zone"; allow-update{ none; }; };# 模板1; zone"0.0.127.in-addr.arpa" IN { typemaster; file"named.local"; allow-update{ none; }; };# 模板2; zone"Lee.net" IN { //区域配置选项,指定区域配置的类型和区域配置文件名 type master; file "Lee.net.zone"; allow-update { none; }; }; //如果需要添加别的域,则需要继续添加区域文件,例如:添加liwei.net这个域 zone"Lee.net" IN { type master; file "liwei.net.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa"IN { type master; file "1.168.192.in-addr.local"; allow-update { none; }; }; zone"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN { type master; file"named.ip6.local"; allow-update{ none; }; }; zone "255.in-addr.arpa"IN { typemaster; file"named.broadcast"; allow-update{ none; }; }; zone "0.in-addr.arpa"IN { typemaster; file"named.zero"; allow-update{ none; }; }; 备注:蓝色字体是添加、修改过的; 3、Zone配置文件 [root@localhost~]# cd /var/named/chroot [root@localhostchroot]# ls dev etc proc var [root@localhostchroot]# cd var [root@localhostvar]# ls log named run tmp [root@localhostvar]# cd named [root@localhostnamed]# cp –p localdomain.zone Lee.net.zone [root@localhostnamed]#cp –p named.local 1.168.192.in-addr.local [root@localhostnamed]#vi Lee.net.zone $TTL 86400 @ IN SOA localhostroot ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS Lee.net. www IN A 192.168.1.2 Lee.net.表示DNS服务器,后面的点不能少
42 serial表示更新序列号,用于告知从域名服务器
3H refresh表示三小时刷新一次
15M retry表示每15分钟重试一次
1W expiry表示寻找DNS服务器时间最长为一周
1D minimum表示最短时间为一天 IN NS表示域名服务器记录,用于设置DNS服务器名称
IN A表示A记录,用于设置主机名对应IP地址的对应记录
IN CNAME为别名记录,用于在区域文件中对主机名称设置别名
IN MX为邮件服务器记录,用于提供邮件服务器名称 [root@localhost named]#vi 1.168.192.in-addr.local $TTL 86400 @ IN SOA localhost.root.localhost. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400) ; Minimum IN NS Lee.net. 反解记录和正解记录不同的地方就是ptr参数,ptr是Pointer的缩写,格式为: IP地址 IN PTR 主机名 因为这个反解记录对应的IP段为192.168.1.0,所以IP地址部分,2就表示192.168.1.2.最后主机名仍然是完全主机域名(FQDN),所以最后还是需要加上“.”。 备注:DNS服务器Ip为:192.168.1.1 4、测试
至此,DNS搭建结束。
send_linux 发表于 2012-10-23 16:44
Linux/BSD服务器目前是互联网和企业内部的主流服务器操作系统,在其上面跑着大量的互联网和企业内部的服务应 ... |