RHCE253-DNS

RHCE 课程-RH253Linux 服务器架设笔记五-DNS 服务器配置在LINUX 下面架设DNS 服务器,不知道DNS 解析原理,根本会了和不会没区别,网络中为了区别各个主机,必须为每台主机分配

RHCE 课程-RH253Linux 服务器架设笔记五-DNS 服务器配置

在LINUX 下面架设DNS 服务器,不知道DNS 解析原理,根本会了和不会没区别,

网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。

当某台主机要与其他主机通信时,就可以利用主机名称向DNS 服务器查询该主机的IP 地址,所以我们的网卡要上网至少要3个信息,IP 地址,网关,DNS 服务器地址。

DNS 的组织结构

这个就是DNS 的组织结构,最上面是根域名 dot ,全球13台根域服务器,没有一台在中国,因为中国网络发展,起步迟。而且所有的dot DNS 服务器都是bind 软件架设的,我们今天要学习的也是bind 软件。全球70的大型DN S 服务器都是基于bind 软件。

常见的顶级域服务器

我国的顶级域也就只有cn

,

DNS 解析过程

我给大家解释下,比如解析,第一步,查询本地host 文件和缓存有没有这个记录,有就直接解析,没有就访问DNS 服务器,如果DNS 服务器上没[url]www.redhat.com[/url]或者redhat.com 不在你访问的DNS 服务器管理区域内,那么DNS 服务器就会向dot 根域名服务器发递归查询, 如果找到了记录了,DNS 就会返回给client ,并且把记录保存在自己缓存里,下次有client 请求,他就会调用自己的缓存,直到这条记录的生存期结束, 就会丢弃这条记录。

根域名服务器就13台域名服务器,他负责管理顶级域。顶级域负责管理二级域,我们现在申请的一般是2级域名-3级域名。比如michael.com ,michael.com .cn 哈~michael.com是2级域名,michael.com .cn 是3级域名,mic hael.com .cn. 这个就是FQDN 。

本周我们要学习的内容

主配置文件

设置根区域

设置主区域

设置反向解析区域

根服务器信息文件named.ca

区域文件

反向解析区域文件

实现负载均衡功能

实现直接解析域名

实现泛域名的解析

主要名称服务器的测试

配置辅助域名服务器

配置缓存域名服务器

我们申请的是域名,然后你去管理你的域名,自己添加主机记录哈~

其实michael.cn 是域名, 前面的主机记录随便你怎么写,abc.michael.cn 也行,jfajldjfklajdfkljaklf.michael.cn 也行,michael.com 是域名,www 是主机。

比如[url]www.redhat.com[/url],[url]www.redhat.com.[/url] 最后点是根域名,然后com 是顶级域名,redh at 是二级域名,www 是主机记录,如果你要说是域名也可以,那么主机就改成是了,在选择域名时必须符合RCF 1123中的规定:域名由所有大写字母(A ~Z )、小写字母(a ~z )、数字(0~9)和连字符(-)组成。由于很多域名商,所以现在想申请到好的2及域名是不可能了,域名大小写不敏感。

每台主机都有一个host 文件,负责IP 地址的域名快速解析的文件,文件以ASCII 格式保存在“/etc”目录下,文件名为“hosts”,hosts 文件包含了IP 地址和主机名之间的映射,还包括主机名的别名。

hosts 文件的格式如下:

IP 地址 主机名/域名 主机别名

,

windows 下也有hosts 文件,

C:WINDOWSsystem32driversetc

可以使用记事本打开

如果host 里有记录就会优先使用,这个文件也是黑客,和病毒软件攻击你的一个入口,如果某个病毒软件在这个文件添加一个记录202.23.23.1 [url]www.163.com[/url],然而前面这个IP 地址是带有病毒的而已网站,或者是钓鱼攻击,你可能就会出问题,所以这个文件一般修改成只读,还有些第三方软件,为了防止一些木马之类的病毒,会把一些有问题的网站在自理定义,解析成127.0.0.1,这样你就不会访问到这些网站,360就会这么干哈~

linux 也有这个文件

/etc/hosts

,

好了,下面介绍下bind 软件,Linux 下架设DNS 服务器通常是使用Bind 程序来实现的。

Bind 是Berkeley Internet Name Domain Service 的简写,它是一款实现DNS 服务器的开放源码软件。Bind 原本是美国DARPA 资助伯克里大学(Berkeley )开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS 服务器软件,目前Internet 上绝大多数的DNS 服务器有都是用Bind 来架设的。 DNS 服务介绍

后台进程:named

脚本:/etc/rc.d/init.d/named

使用端口:53(tcp ,udp )

所需RPM 包:bind-9.3.3-10.el5

相关RPM 包:bind-chroot

caching-nameserver

配置文件:/var/named/chroot/etc/named.conf

相关路径:/var/named/

1990年以后,bind-chroot 增加了bind 服务器的安全性, 早期Linux 服务都是以root 权限启动和运行的,随着技术的发展,各种服务变得越来越复杂,导致BUG 和漏洞越来越多。黑客利用服务的漏洞入侵系统,能获得root 级别的权限,从而控制整个系统。

为了减缓这种攻击所带来的负面影响,现在服务器软件通常设计为以root 权限启动,然后服务器进程自行放弃root ,再以某个低权限的系统账号来运行进程。这种方式的好处在于该服务被攻击者利用漏洞入侵时,由于进程权限很低,攻击者得到的访问权限又是基于这个较低权限。

bind 的主配置文件/etc/named.conf ,我们先安装bind 服务器

[root@Access etc]# yum -y install bind*

Loading "security" plugin

Loading "rhnplugin" plugin

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Parsing package install arguments

Package bind-libs - 30:9.3.4-6.P1.el5.i386 is already installed.

Package bind-utils - 30:9.3.4-6.P1.el5.i386 is already installed.

Resolving Dependencies

--> Running transaction check

---> Package bind-devel.i386 30:9.3.4-6.P1.el5 set to be updated

---> Package bind-chroot.i386 30:9.3.4-6.P1.el5 set to be updated

---> Package bind-libbind-devel.i386 30:9.3.4-6.P1.el5 set to be updated

---> Package bind-sdb.i386 30:9.3.4-6.P1.el5 set to be updated

---> Package bind.i386 30:9.3.4-6.P1.el5 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved

=========================================================== Package Arch Version Repository Size

,

=========================================================== Installing:

bind-chroot i386 30:9.3.4-6.P1.el5 Server 41 k

bind-devel i386 30:9.3.4-6.P1.el5 Server 2.6 M

bind-libbind-devel i386 30:9.3.4-6.P1.el5 Server 441 k

bind-sdb i386 30:9.3.4-6.P1.el5 Server 225 k

Installing for dependencies:

bind i386 30:9.3.4-6.P1.el5 Server 959 k

Transaction Summary

=========================================================== Install 5 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 4.2 M

Downloading Packages:

(1/5): bind-9.3.4-6.P1.el 100 |=========================| 959 kB 00:00 (2/

5): bind-sdb-9.3.4-6.P 100 |=========================| 225 kB 00:00 (3/5): b ind-libbind-devel 100 |=========================| 441 kB 00:00 (4/5): bind-c hroot-9.3.4- 100 |=========================| 41 kB 00:00

(5/5): bind-devel-9.3.4-6 100 |=========================| 2.6 MB 00:00 Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing: bind ######################### [1/5]

Installing: bind-devel ######################### [2/5]

Installing: bind-chroot ######################### [3/5]

Installing: bind-libbind-devel ######################### [4/5]

Installing: bind-sdb ######################### [5/5]

Installed: bind-chroot.i386 30:9.3.4-6.P1.el5 bind-devel.i386 30:9.3.4-6.P1.el5 bind-libbind-devel.i 386 30:9.3.4-6.P1.el5 bind-sdb.i386 30:9.3.4-6.P1.el5

Dependency Installed: bind.i386 30:9.3.4-6.P1.el5

Complete!

[root@Access etc]# rpm -ivh /var/ftp/pub/Server/caching-nameserver-9.3.4-6.P1.el5.i386.rpm Preparing... ########################################### [100]

1:caching-nameserver ###########################################

[100]

[root@Access etc]#

,

bind 的配置文件默认是没有的,需要自己手写,但是很多,容易写错,所以我们安装模板文件,然后来修改。由于安装了chroot 环境,所以我们的/etc/named.conf 应该在/var/named/chroot/etc/ 目录。

没有named.conf ,所以我们要把named.caching-nam e.conf 文件copy 一份成named.conf 哈~

cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf

,

编辑named.conf 这个文件 ,

删除注释的内容这样简单一点。

先检查你主机的名字,使用hostname

记住,linux 的主机名要是FQDN 的样式,把你们自己的主机名字改改,不要最后的那个,这个很重要的。 刚才讲了FQDN 最后有根域的,把那个跟域去掉,就是你的主机名,改成那个样子。

linux 修改主机名字修改三个地方,不知道大家还记得不?

第一步:hostnam e 主机名

第二步:vim

/etc/hosts

第三步:vim /etc/sysconfig/network

,

修改完了把终端关闭了,然后重新打开就可以了

修改完了,我们继续

下面我以example.com 这个二级域名来建立一个域名服务器

全局配置(options )

options 语句在每个配置文件中只有一个。如果出现多个options, 则第一个options 的配置有效,并会产生一个警告信息。

listen-on port 53 { 127.0.0.1; };

监听端口,修改成自己的IP 地址,如果有多个IP ,就写多个,每行要以;结束。

directory "/var/named";

zone 文件的存放目录,这里的/var/named 是相对目录,在chroot 环境下/var/named目录下。

allow-query { localhost; };

允许查询的client ,我们修改成本地网段192.168.0.0/24

同时把如下两个选项给为自己的网段 192.168.0.0/24

match-clients { localhost; };

match-destinations { localhost; };

,

下面我们开始写zone 文件

区域配置(zone )

zone 语句作用是定义DNS 区域,在此语句中可定义DNS 区域选项

zone 区域设置,第一步,设置根区域

当DNS 服务器处理递归查询时,如果本地区域文件不能进行查询的解析,就会转到根DNS 服务器查询,所以在主配置文件named.conf 文件中还要定义根区域。

zone "." {

type hint;

file "named.ca";

};

type:设置域的类型

file:设置根服务列表文件名

“.” 意思的根区域

IN 是internet 记录

type 是类型 根的类型是hint

file 是根区域文件

下面我们去看看根区域文件,根的类型

,

这些就是根服务器,你数数,全球13台。

继续,指定正向解析的配置文件

记住,bind 对配置文件要求很严格,就算是有些地方多了个空格,服务器都可能启动不了哈

~

反向解析配置文件

一个简单的named.conf 配置文件

标签: