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 配置文件