红帽环境下域名解析搭建服务的设计实现

2018-01-17 00:22孙佩娟
电子技术与软件工程 2017年23期

摘 要 DNS是因特网上主机之间相互通信的基础,它提供了一个域名和IP地址之间的映射关系.在熟练掌握DNS的工作原理的前提下,合理规划并完成相关网段的DNS服务器,对实现各服务器的正常查询以及管理服务器来说非常重要。

【关键词】DNS Redhat BIND

近年来,随着互联网的普及和发展,网络用户数目不断攀升,而普通用户的每一次网络访问都需通过域名解析系统来完成,域名解析的准确程度和响应速度影响着整个网络服务质量。

1 DNS原理阐述

DNS(Domain Name System,域名系统),是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。DNS协议运行在UDP协议之上(当请求大于512字节时,使用TCP协议),使用端口号53。

域名空间分为若干层次:根域(顶级域)和次级域,呈树形结构,因此域名空间也被称为域名树。其基本解析过程如下所示:

本地缓存dns --- 本地dns ---根域dns --- 二级域名服务器 --- 三级域名服务器--- 四级域名服务器---记录缓存并汇报用户。

2 搭建环境概述

此次搭建服务的使用的操作系统为Redhat(红帽)6.5企业版,相对于Windows Server操作系统,Linux操作系统具有稳定性高、投入和维护成本低、保密性高以及完整的备份机制等特点。因此,Linux操作系统较为适合服务器系统搭建。

配置DNS系统的主要软件为BIND,另外还需安装bind-chroot(将某个目录指定为BIND程序的根目录。Redhat6.5默认将BIND锁在/var/named/chroot中)。

3 DNS配置文件详解

Bind软件的主要配置文件为/etc/named.conf/,在此将其主要条目做解释说明如下:

options {

listen-on port 53 { 127.0.0.1; }; //監听端口如果想监听全部网卡{ any; }

listen-on-v6 port 53 { ::1; }; //ipv6监听端口,忽略

directory "/var/named"; // 存放区配置文件的目录

allow-query { localhost; }; //允许哪些客户端进行查询;

recursion yes; //允许将自己视为客户端的一种查询模式

};

zone "." IN { //定义一个区,是根域

type hint; //区域的类型 hint:点 表示是根域

file "named.ca"; //区配置文件的名字

};

4 基本服务搭建

基本服务分别为:正向解析——由域名到IP;反向解析——由IP到域名

4.1 正向解析设置与测试

# vim /etc/named.conf //添加区域配置文件

Zone “sina.com” IN {type master; file “sina.com.zone”;}

# cd /var/named/

# cp -p named.localhost sina.com.zone //-p 带属性拷贝文件,非常重要,如果不加选项-p,则复制后的文件需要用chown改变属组为named,否则DNS服务没有权限读取该区域配置文件。

#vim sina.com.zone:

IN NS master.sina.com.//指定域名服务器

Master.sina.com IN A 192.168.1.242//指定域名服务器IP

客户端测试结果示例(客户端测试之前,必须在/etc/resolv.conf内添加DNS服务器的地址,格式为:nameserver 192.168.1.242):

# host master.sina.com

master.sina.com has address 192.168.1.244

4.2 反向解析设置与测试

# vim /etc/named.conf

Zone “1.168.192.in-addr.arpa” IN {type master; file “1.168.192.rev”;}

# vim /var/named/1.168.192.rev

IN NS master.sina.com

242 IN PTR master.sina.com

客户端测试结果示例:

# host 192.168.1.242

242.1.168.192.in-addr.arpa domain name pointer master.sina.com.

5 转发DNS搭建实验

假设公司里原有的DNS服务器(192.168.1.242)不能直接访问外网的DNS服务器,但是公司里有一个节点(192.168.1.246)可以访问外网的DNS,那么只能通过该节点转发请求。

相关配置如下:

(1)原DNS服务器/etc/named.conf添加如下代码:

allow-transfer { 192.168.1.246; }; //允许谁转发,写的是转发服务器的IP地址

(2)转发节点配置如下:

安装BIND软件并修改主配置文件/etc/named.conf添加如下代码:

forwarders { 192.168.1.242; }; //真正的dns服务器的IP,把请求转发给谁

(3)客户端验证如下:

# nslookup master.sina.com

Server: 192.168.1.246

Address: 192.168.1.246#53

Non-authoritative answer:

Name: master.sina.com

Address: 192.168.1.242

6 结束语

Linux以其稳定的性能和开源的优越性正得到日益广泛的应用, Redhat应该说是在国内使用人群最多的Linux版本,而DNS服务则直接关系到整个网络的正常使用。因此在Redha环境下搭建DNS服务,有着较高的实用价值和非常广泛的应用空间。

参考文献

[1]林天峰,谭志彬.linux服务器架设指南(第二版)[M].北京:清华大学出版社,2016.

[2]鸟哥.鸟哥的linux私房菜——服务器架设篇(第三版)[M].北京:机械工业出版社,2016.

作者简介

孙佩娟(1984-),女,湖北省武汉市人。讲师。研究生。主要研究方向为云计算。

作者单位

武汉传媒学院传媒技术学院 湖北省武汉市 430205endprint