DNS搭建及主从DNS构建

DNS工作原理

DNS解析的作用

我们访问网络时,通常采用浏览器访问web站点,一般通过http://www.baidu.com或baidu.com等域名方式访问,也可以通过http://百度IP:端口进行访问,以前者常用,那么域名方式访问时怎么实现的呢?这就需要通过DNS服务器来解析了;

DNS解析方式

正向解析:

  • 根据域名查找其对应的IP地址;目前最常用的方式;

反向解析:

  • 根据IP地址解析其对应的域名;一般应用于安全防护等领域;

DNS的分布结构

DNS分布结构采用FQDN,即完全合格主机名;格式如下:

  • 站点名.域名后缀
  • 站点名.三级域名.二级域名..一级域名

DNS查询工作方式

全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。

在浏览网页时,个人PC首先检测本地hosts文件,查看域名对应的IP,如果没有,就向个人PC设置的dns查询域名,个人DNS再去根服务器、二级服务器、三级服务器……进行查询个人所访问的域名IP,然后根据IP和端口进行访问,

CentOS域名服务

Linux可以通过Bind实现DNS服务,Bind是由伯克利大学开发的伯克利域名服务;

安装包和依赖包分别是bind和bind-chroot

bind服务器端程序

  • 主要执行程序:/usr/sbin/named
  • 服务脚本:/etc/init.d/named
  • 主配置文件:/etc/named.conf
  • 区域数据文件:/ar/named/
  • 运行时的虚拟根环境:/var/named/chroot/

named.conf主配置解析

全局配置

设置监听地址、端口、区域数据存放位置等;

区域配置

  • 定义DNS区域、类型、地址文件路径等;
  • 关键词IN表示Internet;

zone "example.com" IN {//定义正向解析区域

type master;//定义区域为主DNS

file "example.om.zone"//定义区域数据文件

};

主配置文件语法检测

named-checkconf /etc/named.conf

区域文件配置解析

全局ITL配置及SOA记录

  • $ITL(time to live),生存时间;
  • SOA(Start Of Authority)授权信息开始;

@INSOA区域名.区域管理邮箱.(

全局ITL配置及SOA记录

$TTL 3H //有效记录的生存周期

@ IN SOA @ rname.invalid. (

0 ; serial //更新序号

1D ; refresh //刷新时间一天

1H ; retry //失败时重试时间

1W ; expire //失效时间

3H ) ; minimum //无效记录的生存周期

域名解析记录

@INLSls.baidu.com.

lsINA192.168.1.100

wwwINA192.168.1.101

区域数据文件配置语法检测

cd /var/named

named-chkeckzone ls.baidu.com

单区域DNS服务

软件安装

[root@woonx64 ~]# yum -y install bind bind-chroot

配置主配置文件

[root@woonx64 etc]# vim named.conf

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

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";

allow-query { any; };

recursion yes;

dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN {

type hint;

file "named.ca";

};

include "/etc/named.rfc1912.zones";//加载该文件

include "/etc/named.root.key";

配置区域配置文件

正向解析

编辑named.rfc1912.zones,添加区域DNS解析

zone "woon.com" IN {

type master;

file "woon.com.zone";

};

建立区域数据文件,主配置文件中的directory "/var/named";表示区域数据配置文件在该路径下,所以进入该路径进行区域数据文件建立;

[root@woonx64 named]# cp a named.empty woon.com.zone

[root@woonx64 named]# vim woon.com.zone

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

@ IN NS dns1.woon.com.

dns1 IN A 192.168.1.100

www IN A 192.168.1.101

ftp IN A 192.168.1.102

区域数据文件配置语法检测

[root@woonx64 named]# named-checkzone woon.com woon.com.zone

此处注意事项是复制文件或者创建区域数据文件后,要保证named用户对该文件有可读权限,否则语法检测不出错误,但是解析是会提示错误;

[root@woonx64 named]# ll woon.com.zone

-rw-r-----. 1 named named 215 3月 7 16:50 woon.com.zone

正向解析测试

重启服务

通过客户端进行host测试,或者指定客户端的dns为192.168.1.100

[root@woon ~]# host www.woon.com 192.168.1.100

Using domain server:

Name: 192.168.1.100

Address: 192.168.1.100#53

Aliases:

www.woon.com has address 192.168.1.101

[root@woon ~]# host ftp.woon.com 192.168.1.100

Using domain server:

Name: 192.168.1.100

Address: 192.168.1.100#53

Aliases:

ftp.woon.com has address 192.168.1.102

正向单区域解析测试OK~!!!

正向多区域解析

如解析baidu.com;

正向多区域解析只需要在/etc/named.rfc1912.zones中再添