红帽环境下域名解析搭建服务的设计实现
2018-01-17孙佩娟
摘 要 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