很多公司选择自己搭建DNS服务器,也有的用别人的DNS服务器,这里只做简单的介绍和简单的配置,也能够满足大部分公司现有需求了,也希望大家多多指正!

开始搭建DNS服务器

一、背景拓展
1.DNS服务器的功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名,不常用

2.域名级别
根域 .
一级域名:    .cn    .us   .kr   .jp   .tw  .hk   .......
二级域名:  .com.cn   .net.cn   .org.cn   .edu.cn  .gov.cn ..
三级域名:  .abc.com.cn     .haxi.com.cn  ......
具体的主机名: www.abc.com.cn   tts.abc.com.cn  ftp.abc.com.cn
Full Qualified Domain Name,完全合格主机名(FQDN),由合法的域名与主机名组成


3.DNS服务器配置文件与服务
系统服务: named
默认端口: 53
主配置文件:/etc/named.conf    #设置本机负责解析的域名
地址库文件:/var/named/        #主机名与IP地址的对应关系


4.递归查询与迭代查询:  
a.递归查询:客户端请求DNS服务器解析域名,DNS服务器与其他DNS服务器询问,最终将查询结果带回来过程
    options {
directory       "/var/named";
recursion no;         #是否启用递归查询
    };
b.迭代查询:DNS服务器与其他DNS服务器询问过程


二、基本的DNS服务器配置
1.服务端A准备:
要求:配置永久主机名yunzhijia.com
配置eth0网卡 IP地址:192.168.1.1/24
搭建yum源
配置:
#echo yunzhijia.com >/etc/hostname
#nmcli connection modify eth0 ipv4.method manual ipv4.address #192.168.1.1/24 ipv4.gateway 192.168.1.254 connection.autoconnect yes
#nmcli connection up eth0
#vim /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///dvd
enabled=1
gpgcheck=0

2.装包配置起服务
#yum -y install bind bind-chroot
bind:域名服务包;bind-chroot:虚拟根支持
#vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件的位置
};
zone "qq.com" IN { #指定本地负责解析的域名
type master; #指定本机为主DNS服务器
file "qq.com.zone"; #指定地址库文件名称
};
#cd /var/named/
#cp -p named.localhost qq.com.zone
注意文件权限,named用户有读取
#vim qq.com.zone
$TTL 1D
@   IN SOA  @ rname.invalid. (
                                    0       ; serial
                                    1D      ; refresh
                                    1H      ; retry
                                    1W      ; expire
                                    3H )    ; minimum
qq.com.         NS     yunzhijia    #证明DNS服务器主机名
yunzhijia          A      192.168.1.1  #解析DNS服务器主机名对应IP
www             A      1.2.3.4
ftp                A      1.1.1.1
# systemctl restart named

3.客户端测试
#echo nameserver 192.168.1.1 > /etc/resolv.conf
#nslookup www.qq.com
有结果,则表示DNS搭建成功


三、DNS的升级配置
1.多区域解析
服务端A
# vim /etc/named.conf  #文件最后追加写入
zone "163.com" IN {
type master;
file "163.com.zone";
};
# cd /var/named/
# cp -p qq.com.zone  163.com.zone
163.com.      NS     yunzhijia
yunzhijia        A      192.168.1.1
www              A      192.168.1.11
www              A      192.168.1.20
www              A      192.168.1.21
*                A      10.20.30.40
$GENERATE 1-50  stu$    A   192.168.10.$
tts      CNAME      ftp
<!--
非配置内容
www几行代表:解析记录的轮询
*行代表:泛域名解析
$GENERATE行代表:特殊泛域名解析,内置函数  可以产生连续的数字 $GENERATE 
CNAME行代表:别名,访问tts,就相当于访问ftp
--!>
# systemctl restart named
2.DNS子域授权
a.父域与子域管理域名
父域  www.qq.com
    子域  www.bj.qq.com
b.搭建DNS服务做子域:192.168.1.2
#yum -y install bind-chroot  bind
#vim /etc/named.conf 
options {
directory "/var/named";  
};
zone "bj.qq.com" IN {        
type  master;          
file "bj.qq.com.zone"; 
};
#vim /var/named/bj.qq.com.zone
...
bj.qq.com.      NS     ziyu         
ziyu            A      192.168.1.2
www             A      200.0.0.1
#systemctl restart named
# nslookup  www.bj.qq.com  192.168.1.1父 
# nslookup  www.bj.qq.com  192.168.1.2子
c.进行子域授权配置:父
# vim /var/named/qq.com.zone
qq.com.       NS      yunzhijia
bj.qq.com.    NS      ziyu
ziyu          A       192.168.1.1
pc207         A       192.168.1.2
www           A       1.2.3.4
# systemctl restart named
# nslookup www.bj.qq.com 192.168.1.1 
Server: 192.168.1.1
Address: 192.168.1.1#53


Non-authoritative answer:    #非权威解答
Name: www.bj.qq.com
Address: 200.0.0.1

3.子域转发:子
#vim /etc/named.conf       #追加写入
zone "qq.com" IN {
type forward;                    #类型为转发
forwarders {  192.168.1.1;  };   #转发给父域的IP地址
};
# systemctl restart named
# nslookup www.qq.com 192.168.1.2

4.缓存DNS服务器,缓存解析记录,加快解析速度:A
分类:
方式1:全局转发:将请求转发给指定的公共DNS(其他缓存DNS),请求递归服务
方式2:根域迭代:依次向根、一级、二级......域的DNS服务器迭代
配置:
#cat /etc/resolv.conf #查看公共dns服务器
nameserver 192.168.1.254 
#vim /etc/named.conf 
options   {
directory "/var/named";
forwarders   {   192.168.1.254;  };
};
#systemctl restart named
其它客户机上测试
# echo nameserver 192.168.1.1 > /etc/resolv.conf 
# nslookup www.qq.com

5.DNS分离解析 [以 www.sina.com 为例]
当收到客户机的DNS查询请求的时候
  能够区分客户机的来源地址
  为不同类别的客户机提供不同的解析结果(IP地址)
  根据客户端的不同,解析同一个域名,得到的解析结果不同
    目的:为客户端提供网络最近的服务器资源
规则:
1.由上到下依次匹配,  匹配及停止
2.使用view时,所有的客户端都必须在分类中
3.所有的zone都必须在view中
4.每一个view中的zone必须相同
配置A
#vim /etc/named.conf
acl test { 192.168.1.20; 192.168.1.21; 192.168.1.40; };
view "lan" {
match-clients {  test; };
zone "sina.com" IN {
sina.com.lan;
};                 
};
view "other" {
match-clients { any; };
zone "sina.com"  IN  {
sina.com.other;
};
};
#vim /var/named/sina.com.lan
sina.com.lan 解析结果为 192.168.1.11
sina.com.other 解析结果为 192.168.1.12


以上为DNS服务器常搭建的几个服务,在此只做整理,几个网段皆为虚拟,要根据实际情况做实际操作!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐