构建域名服务器(DNS)

一、DNS系统介绍

1.)DNS系统的作用

主要作用就是维护一个主机域名与IP地址的对应关系数据库、在需要的时候为客户端网络程序提供地址解析功能

正向解析:将主机的名称(域名)解析为对应的IP地址。

反向解析:将主机的IP地址解析为对应的域名。

2.)DNS系统得结构
internet中的域名系统采用了分布式的数据方式,讲不通范围内的域名和ip地址对应关系交给不同的DNS服务器来管理
包含主机名及其域名的完整滴孩子又称为FQDN地址,或称为全域名。
比如“.cn"域名服务器
”.com.cn" 域服务器,负责以.com.cn结尾的域名的解析。
“.sina.com.cn"域服务器,是.com.cn的子域

3.)DNS系统的类型

缓存域名服务器:称为唯高速缓存服务器提供域名解析记录的缓存 主要功能是提供域名解析记录的缓存。

主域名服务器:是特定DNS区域的官方服务器、唯一的存在,主域名服务器需要在本地设置所管理区域的地址数据库文件。

从域名服务器:称为辅助域名服务器主要提供备份

二、BIND域名服务器介绍

1.)BIND服务安装介绍

提供安装软件包如下作用:

bind 提供了域名服务的主要程序集相关文件

bind-utils 提供了对DNS服务器的测试工具程序

bind-chroot bind提供一个伪装的根目录以及增强安全性

caching-nameserver 为配置BIND作为缓存域名服务器提供必要的默认配置文件

主执行程序:/usr/sbin/named

服务脚本:/etc/init.d/named
named服务的主配置文件为named.conf,一般位于/etc/目录中,如果使用了bind—chroot工具,则可能位于/var/named/chroot/etc/目录下。

默认监听端口:53

2.)BIND配置

BIND的主配置文件(/var/named/chroot/etc/named.conf)中有BIND的全局设置;

/反解记录清单文件(/var/named//chroot/etc/named.rfc1912.zones,实际上,在主配置文件named.conf指定了正/反解记录清单文件的位置。)列举了本机解析记录文件的位置/类型/性质;

/反解记录文件(/var/named/chroot/var/named目录下)记录了具体的IP/域名的对应关系。

全局配置部分配置项:

options { //Option 

listen-on port 53 { 127.0.0.1; }; //表示53端口监听,并且监听的IP127.0.0.1,可添加监听的其它IP地址,用分号隔开,

 directory "/var/named"; //设置区域数据库文件默认存放位置

 allow-query {192.168.1.0/24; 173.16.16.0/24; }; //允许DNS查询客户端地址

 recursion yes; //允许递归查询

}

区域配置部分配置项:

zone "." IN { //设置跟区域

type hint; //设置区域类型(hint为跟区域、master表示主区域、slave表示从区域)

file "named.ca"; //设置对应的跟区域地址数据文件

}

zone"qq.com" IN { //设置正向DNS区域名称

 type master;

file"qq.com.zone"; //设置对应的正向区域地址数据库文件

allow-transfer { 173.16.16.2; }; //设置允许下载区域数据库信息的从域名服务器地址

 allow-update {none;}; //设置允许动态更新的客户端地址为禁止 

}

zone"16.16.173.in-addr.arpa" IN { //设定反向DNS区域名称

type master;

file "173.16.16.arpa"; //设置对应的反向区域地址数据库文件

}

检查主配置文件是否正确: 

named-checkconf /var/named/chroot/etc/named.conf

3.)区域数据库配置文件

通常包括配置项:$TTL(生存时间)记录、SOA(授权信息)记录、地址解析记录

在记录项中使用一下单位

M()H(时)、W(周)、D(天)

在地址解析记录常见记录

NS域名服务器记录

MX邮件交换记录

A地址记录(只能用于正向解析的区域数据库文件中)

CNAME别名记录

配置反向解析记录时只需制定IP地址中的主机地址部分即可、网络地址部分不用写

如:

1 IN PTR www.sohu.com

4 IN PTR studysohu.com

基于DNS解析的负载均衡 一个域名对应多个不同的IP、轮流负载均衡

泛域名解析 同一个IP地址的服务器对应有相同域内大量不同的域名

子域授权 DNS区域内层次较多、域名数量多时就可以使用子域授权

三、使用BIND构建域名服务器

构建缓存域名服务器
(必须安装caching-nameserver)

1主配置文件named.conf
vi /var/named/chroot/etc/named.conf
options { 
        directory ”var/named“
}
zone  ”." IN {
        type hint;
        file "named.ca";
};

2,确认根域地址数据库文件
grep -v "^” var/named/chroot/var/named/named.ca3,

3,named服务
service named restart

4证缓存域名服务器
用局域网中的客户机,将使用的DNS服务器的地址设置为DNS服务器的地址
nslookup www.benet.com

构建主域名服务器

1,本机的主机名、IP地址
利用修改配置文件/etc/hosts/etc/resolv.conf添加主机名映射域名

2主配置文件named.conf
vi /var/named/chroot/etc/named.conf
options { 
        directory ”var/named“
}
zone  "benet.com" IN {
        type master;
         file "benet.con.zone";
          allow-transfer { 172.16.16.1; };
};
};
zone "16.16.172.in-addr.arpa"  IN 
 type master;

   file "172.16.16.arpa
allow-transfer { 172.16.16.1; };
};
3,然后分别建立区域数据库文
vi /var/named/chroot/var/named/benet.com.zone
www   IN A     172.16.16.1
vi /var/named/chroot/var/named/172.16.16.arpa
1    IN PTR   www.benet.com
4,重启named服务
service named restart
5,验证主域名服务器

构建从域名服务器

1本机的主机名、IP地址,
2配置文件named.conf
vi /var/named/chroot/etc/named.conf
options { 
        directory ”var/named“
}
zone  "benet.com" IN {
        type slave;
     file "benet.con.zone.lan
         masters { 172.16.16.1; }
};
zone "16.16.172.in-addr.arpa"  IN 
 type slave;

   file "172.16.16.arpa
masters { 172.16.16.1; }
};

3,启动named服务
service named restart

4验证从域服务器

构建分离解析的域名服务器

建立主配置文件named.conf
vi /var/named/chroot/etc/named.conf
options { 
        directory ”var/named“
}
view “LAN" {
match-clients { 192.168.1.0/24; };
zone "benet.com"  IN {
Type master
file "benet.con.zone.lan”;       
};
}
view “WAN“{
match-clients { any;}
one "benet.com"  IN {
Type master
file "benet.con.zone.wan”;  
};

分别建立对外、对内解析的区域数据库文件
vi /var/named/chroot/var/named/benet.com.zoneLan
www  IN A    192.168.1.1
vi /var/named/chroot/var/named/benet.com.zone.wan
www  IN A     172.16.16.1

启动named服务
service named restart

验证分离解析域名服务器
分别用两太客户机验证DNS指向对应的服务器的ip地址

补充知识:

nslookup命令有两种模式:交互模式和非交互模式。

在交互模式下(直接输入nslookup,不加其它参数),用户可以输入一些指令来查询多个主机或域名;

非交互模式用来查询指定的一个主机或域名的信息。通常可以用非交互模式来测试自己的DNS服务器设定。

nslookup用法如下:

nslookup [域名] [服务器IP]