DNS 服务器配置

DNS 服务器配置

一:DNS简介

DNSdomain name system的简称,一般用于域名到主机的映射,DNS的域是一种分布式的层次结构,如根域为“.”,顶级域为comcnorgcn等,以http://www.tom.com.cn为例,左边的“.”表示的是根域,cn为顶级域,com为二级域,tom为三级域,www为主机名,以解析此域名为例,解析分为如下步骤:

用户提交解析请求,发送给本地的域名服务器,本地域名服务器受A到请求后,查找本地缓存,如有则直接返回,如没有进行下一步;

A直接将请求发给根域名服务器BB返回A一个所查区域cn的域名服务器C的地址

AC查询,C返回A所查区域com.cn域的域名服务器Dw

AD进行查询,D返回A所查区域tom.com.cn的域名服务器E

AE查询。E返回A所查www.tom.con.cn的地址,A将其保存,以便下次使用

二:DNS软件

BINDberkerlay internet domain)为使用最为广泛的DNS软件,现在由互联网系统协会internet system consortium负责开发与维护,linux上域名服务由named进程进行守护,该进程主要从/etc/named.conf上读取配置

DNS的主要配置文件为

/etc/hosts(包含已知主机的一个列表如果系统的IP不是动态生成,就可以进行简单的主机名解析,在请求DNS或者NIS服务之前,/etc/host.conf会通知解析程序查看此文件)

/etc/host.conf(告诉网络域名服务器如何查询主机名,通常为先读取/etc/hosts,然后是域名服务器)、

/etc/resolv.conf(在配置程序请求bind域名查询主机名称时,必须告诉程序使用哪个域名服务器与IP地址)

named配置文件(如已经chroot则按照对应目录进行)

/etc/named.conf 配置主文件,设置一般的name参数,指向该服务器使用的域信息源

/var/namd/named.ca 根域名配置服务器指向文件,指向根域名配置服务器,告诉缓存服务器初始化

/var/named/localhots.zonelocalhost区正向域名解析文件,用于将本地127.0.0.1转换为回送方localhost名字

/var/named/name.local localhost区得反向域名解析文件,用于将localhost名字转换为本地回送IP地址

三: DNS构建

使用 rpm �Cqa | grep bind 方式来进行查看,

# rpm -qa bind*caching-*

caching-nameserver-9.3.6-4.P1.el5 如未安装则安装,安装成功后/etc会有named.caching-nameserver.confnamed.rfc1912.zones文件,这两个文件都是连接至/var/named/chroot/etc/下的,一般named.conf由这两个文件构成,即可以通过cp一个named.conf来进行实现,可通过修改named.caching-nameserver.conf来进行dns的相关设置,主要为监听端口设置、配置文件对应设置、允许使用的客户ip设置,本次试验中,linuxrehl5.6_64,主DNS服务器192.168.30.6slaves服务器192.168.30.7

四:配置主DNS服务器

1:主dns服务器设定域所有信息的权威性信息源,对于某个指定的域,主域名服务器是唯一的,保存了指定域的区域文件

2:创建密钥

[root@localhost chroot]# cd /var/named/chroot/
[root@localhost chroot]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST rndc-key
 #创建TSIG密钥,-a指定加密算法,-b指定密钥长度,-n指定密钥所指定主机
[root@localhost chroot]# ll
total 20
drwxr-x---   2 root named 4096 Dec  2  2010 dev
drwxr-x---   2 root named 4096 Oct 29 19:48 etc
-rw-------   1 root root    52 Oct 29 19:42 Krndc-key.+157+44400.key
-rw-------   1 root root    81 Oct 29 19:42 Krndc-key.+157+44400.private
dr-xr-xr-x 141 root root     0 Jun 27 06:04 proc
drwxr-x---   6 root named 4096 Jun 27 06:15 var
[root@localhost chroot]# cat Krndc-key.+157+44400.key
rndc-key. IN KEY 512 3 157 kMu4uATuXjhTfC1jlEHmBw==
[root@localhost chroot]# cat Krndc-key.+157+44400.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: kMu4uATuXjhTfC1jlEHmBw==

3:配置named全局配置文件

[root@localhost chroot]# cd /var/named/chroot/etc/
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vi named.conf
options {
    listen-on port 53 { any; };#监听端口,地址可配置
    listen-on-v6 port 53 { ::1; };#IPv6配置,可删除
    directory   "/var/named";#主目录,需注意是DNS是否为chroot机制
    dump-file   "/var/named/data/cache_dump.db";#执行rndc dunpdb命令时,DNS存放数据库文件的路径
      statistics-file "/var/named/data/named_stats.txt";#执行rndc stats命令时,服务器统计信息存放路径
      memstatistics-file "/var/named/data/named_mem_stats.txt";#DNS服务器输出的内存使用统计文件路径名
    // 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; };#允许查询缓存的客户端地址范围
    allow-transfer { 192.168.30.7; };#允许forwar的地址
};
logging {
        channel default_debug {
                file "data/named.run";#日志输出,logging模块还可以具体配置
                severity dynamic;
        };
};
key slavestransfer {
    algorithm hmac-md5;
    secret kMu4uATuXjhTfC1jlEHmBw==;
};#定义key及加密算法等
server 192.168.30.7 {
    keys { slavestransfer;};
};#指定辅助区域所在主机及其使用的密钥
view localhost_resolver {
    match-clients      { any; };#指定提交DNS客户端的源IP地址范围
    match-destinations { any; };#指定提交DNS客户端的目标IP地址范围
    recursion yes;是否允许递归,DNS查询分为递归与迭代查询,递归查询一般发生于客户端及本地DNS之间,迭代查询发生在DNS之间
    include "/etc/named.zones";#指定主配置文件路径
};#此区域可根据客户端地址实现DNS分流,例如客户端为联通IP地址则走联通的DNS服务器,实现优化功能

4:修改主配置文件name.zones文件

[root@localhost etc]# cp -p named.rfc1912.zones named.zones #必须加-p参数,保证继承原文件权限,防止运行时named权限不足
[root@localhost etc]# vi named.zones
zone "fortest.com" IN {#定义域
    type master;#类型,分master与slave
    file "fortest.com.zero";#指定正向解析文件路径,注意此路径为相对路径
    allow-transfer { key slavestransfer; };#指定密钥
};
zone "30.168.192.in-addr.arpa" IN {
    type master;
    file "30.168.192.local";
    allow-transfer { key slavestransfer; };
};

5:配置区域配置文件

[root@localhost etc]# cd /var/named/chroot/var/named/
[root@localhost named]# cp -p named.zero fortest.com.zero
[root@localhost named]# cp -p named.local 30.168.192.local
[root@localhost named]# vi fortest.com.zero #正向解析文件
$TTL    86400
@               IN SOA  dns.fortest.com.      root.localhost. (#网络类型为IN,SOA资源记录,主DNS服务器,管理员游戏
                                        42              ; serial (d. adams)#序列号
                                        3H              ; refresh#刷新间隔
                                        15M             ; retry#重试时间
                                        1W              ; expiry#过期时间
                                        1D )            ; minimum#默认生存时间和换成否定应答名称查询的最大间隔
    IN  NS  dns.fortest.com.    #NS记录,对应一个A记录,如有子域名服务器,可再增加NS记录
    IN  MX 10   mail.fortest.com.    #MX记录,mail服务器,后面必须带点
mail    IN  A   192.168.30.6  #A记录,也就是地址记录
dns IN  A   192.168.30.6
web IN  A   192.168.30.6
www IN  CNAME   web.fortest.com.  #别名记录,也就是解析www.fortest.com是时,指向web.fortest.com
@   IN  A   192.168.30.6        #@代表fortest.com
*   IN  A   192.168.30.6        #其余任何*fortest.com,
[root@localhost named]# vi 30.168.192.local #反向解析文件
$TTL    86400
@       IN      SOA     dns.fortest.com. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      dns.fortest.com. #指定NS记录
6       IN      PTR     mail  #反向解析,192.168.30.6可解析为mail.fortest.com
6       IN      PTR     dns.fortest.com.
6       IN      PTR     web

5:启动服务

[root@localhost etc]# service named restart

五:slave服务器配置

1:配置named主配置文件

[root@localhost chroot]# cd /var/named/chroot/etc/
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vi named.conf
options {
    listen-on port 53 { any; };
    listen-on-v6 port 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;
        };
};
key slavestransfer {
        algorithm hmac-md5;
        secret kMu4uATuXjhTfC1jlEHmBw==;
};
server 192.168.30.6 {
        keys { slavestransfer;};
};
view localhost_resolver {
    match-clients      { any; };
    match-destinations { any; };
    recursion yes;
    include "/etc/named.zones";
};

2:修改name.zones文件

[root@localhost etc]# cp -p named.rfc1912.zones named.zones
[root@localhost etc]# vi named.zones
zone "fortest.com" IN {
    type slave;#指明类型为slave
    masters { 192.168.30.6; };
    file "slaves/fortest.com.zero";
};
zone "30.168.192.in-addr.arpa" IN {
    type slave;
    masters { 192.168.30.6; };
    file "slaves/30.168.192.local";
};

3:启动服务

[root@localhost etc]# service named restart
[root@node1 etc]# ll /var/named/chroot/var/named/slaves/   #注意,named必须对此目录具有写权限
total 8
-rw-r--r-- 1 named named 380 Oct 29 19:51 30.168.192.local
-rw-r--r-- 1 named named 439 Oct 29 19:51 fortest.com.zero

六:some other point

1:可以用named-checkconf命令测试主配置文件配置

named-checkzone命令可以检查区域文件中(正向反向都可以进行检查)的语法错误

named-checkzone  test.com /var/named/test.com.zone
named-checkzone  24.16.172.in-addr.arpa  /var/named/24.16.172.rev

2:配置转发DNS服务器

配置只需要在安装所需包之后/etc.named.conf中配置options中增加:

forward only;
forwarders { 172.16.24.101;};

3:部分域转发DNS服务器

配置只需要在安装所需包之后named.conf中配置

zone "huming.com" {     
          type forward;
          forward only;
          forwarders { 172.16.24.101 ; };
          file "slaves/test.com.zone";
          masters { 172.16.24.101 ; };

4:子域委派

例如在172.16.24.102新建字域ziyu.test.com(类似与建立主域)。要在建立域test.com192.168.1.1上完成委派,则增加正向配置文件中test.com.zone中添加NSA记录就ok

ziyu               IN  NS  dns.ziyu.test.com.
ns.ziyu.test.com.   IN   A   172.16.24.102

5#nslookup

>server192.168.13.1  用这个server进行解析
set type=ns  测试ns记录
set type=mx  测试邮件记录
set type=a  测试A记录

6dig 命令

dig @dns域名或者ip  区域记录类型
dig @192.168.1.2test.com

7:根目录named.ca的由来:

dig @root-server.net . NS >named.ca

七:需学习的其它

DDNSDNS根据客户端IP分流、与squid服务器实现CDNDNS负载均衡等。



你可能感兴趣的:(System,domain,下一步,域名服务器)