设为首页 收藏本站
查看: 573|回复: 0

[经验分享] DNS服务之功能实现

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-8-7 13:37:53 | 显示全部楼层 |阅读模式
今天,我所介绍的是一个互联网上非常基础的服务,是DNS服务器,以下将是我要介绍的内容:包括DNS的原理及工作过程、DNS服务器的搭建、DNS服务器正反向解析、DNS主从服务器、DNS服务器的子域授权、DNS服务器的转发、以及DNS的视图功能。

DNS的原理及工作过程:
    DNS:Domain Name System,域名系统,是将域名和IP地址相互映射的分布式数据库,用户只要输入域名,就能转换成域名所对应的IP地址去访问,不需要记忆繁杂的IP地址串,DNS服务器监听在TCP和UDP的53号端口上。
上面,我们提到了DNS是一个分布式数据库,下面我们将通过一张图来了解DNS的结构
wKiom1PiDVvx4axgAAFla4F77kA894.jpg
    如上图所示,这是倒置的树状结构,它的各级域远多于这些,我只是列出部分,我们一次解释一下:
根域:是用来管理互联网的主目录,全球共有13台根服务器,9个在美国,2个在欧洲,1个在日本。
一级域:又称顶级域,刚开始有7个,后来又加了,具体多少大家可以上网了解一下。
    com:商业组织,如:google.com
    edu:教育机构,如:berkeley.edu
    gov:政府部门,如:nasa.gov
    mil:军事部门,如:army.mil
    net:通常是提供网络基础设施的组织,如:uu.net
    org:通常指非盈利性组织,如:linux.org
    int:国家组织,如:nato.int
二级域:一般是公司、企业、学校各单位所申请的域名,如magedu
主机名:提供各种服务的主机,如:提供Web服务的www主机

上面,我们看到了DNS的结构图,但是,我们的DNS到底是如何工作的呢?我给出了一个图:
wKiom1PiDlKjgCOtAAErWxK72gc902.jpg
大家第一眼看上去,是不是觉得很乱啊,下面,我为大家一一解释一下:
比如说,我们局域网内的一台普通主机要访问www.google.com这个Web服务器

step1:本地主机会先查看自己的缓存情况,是否有对于的域名的IP,如果没有,则向这个域内
的DNS服务器发起请求。
step2:本地DNS服务器收到请求后,会先查看自己的缓存,如果缓存里没有对应域名的IP,则
本地DNS服务器会向我们的根服务器发起请求。
step3:根收到请求后,发现www.google.com这台主机的com在自己的子域中,根域查看自己查看
自己的数据库,查找对应的com的域的一台服务器的IP地址,返回给本地DNS服务器。
step4:本地DNS服务器得到com的服务器IP地址后,接着向com这台服务器发送这个域名请求。
step5:com域内的服务器收到请求后,发现google这个域在它的下面,然后,com服务器查找自己的
数据库,查找对应google域内的一台DNS服务器的IP地址,返回给本地DNS服务器。
step6:本地DNS服务器收到google的DNS服务器的IP地址后,就向这台google的DNS服务器
发起域名请求。
step7:google域内的这台DNS服务器收到请求后,发现对应的www这台主机的确在自己的域中,
向本地主机返回对应的www这台主机的IP地址。
step8:本地DNS服务器收到google的DNS服务器返回的www主机的IP地址后,将这个IP地址
响应给发起请求的本地主机。
step9:本地的主机收到本地DNS服务发回的响应后,利用得到的IP地址,直接去访问google.com
这台Web服务器。
step10:www这个主机接收到本地主机的请求后,提供响应的服务,并返回数据。

这个过程中,有两个有提到的概念,一个是递归,另一个是迭代:
递归:我们的本地主机将请求发给本地的DNS服务器后,它就一直等待本地DNS服务器给它发回应答,
这个过程就是一个递归地过程
迭代:本地主机发出请求后,我们的本地DNS服务器一次去根域、一级域、二级域发送请求,并返回数据
的这一过程就是迭代。

以上就是DNS的原理以及工作过程。
以下服务器的系统都为CentOS6.5

DNS服务器的搭建,实现正向反向解析
环境准备:以下实验在虚拟机上进行,一台装有linux的虚拟机,一台windows 2003的客户端
提示:如果本机能上网,以上两个主机最好使用nat方式连接,以下过程皆使用yum安装软件包

实验拓扑图如下所示:(及对应主机的IP如图所示)

wKiom1PiEESSpAb3AADyQkS6lt0558.jpg
实验要求:
为magedu这个域建立一台DNS服务器,并能够正反解析

实验过程:
一、正向解析

1、  在linux服务器上安装DNS服务,提供DNS服务的软件为bind
1
2
3
4
5
6
7
8
9
[iyunv@localhost~]# yum install -y bind
[iyunv@localhost~]# rpm -qa | grep bind
samba-winbind-3.6.9-164.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.6.x86_64
bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64
rpcbind-0.2.0-11.el6.x86_64
PackageKit-device-rebind-0.5.8-21.el6.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
bind-9.8.2-0.17.rc1.el6_4.6.x86_64                          #bind已经安装了



   2、编辑bind的主配置文件(/etc/named.conf),结果如下所示:
1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost ~]# vim /etc/named.conf
options {
        directory       "/var/named";           #指定域文件所在的目录
        recursion yes;                          #递归请求都允许
};
zone"." IN {
        type hint;
        file "named.ca";
};

include"/etc/named.rfc1912.zones";



3、编辑/etc/named.rfc1912.zones文件,添加我们所要解析的magedu这个域,结果如下所示:
1
2
3
4
5
[iyunv@localhost~]# vim /etc/named.rfc1912.zones
zone"magedu.com" IN {                                      #添加magedu这个域
        type master;                                       #类型,这里是主DNS服务器
        file "magedu.com.zone";                            #对应的域文件及名称
};



4、 手动编辑并生成上面提到的域文件magedu.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@localhost~]# cd /var/named/
$TTL    3600                        
$ORIGIN         magedu.com.
@       IN     SOA     ns.magedu.com.  admin.magedu.com. (  #其实授权记录,必须是第一条,且只有一个
               2014080601                                    #解析库版本
               2H                                            #同步的时间间隔
               10M                                           #重试时间间隔
               5D                                            #过期时长
               10H                                           #否定答案的缓存时长
    )

        IN     NS      ns                              
        IN     MX  10  mail
ns      IN     A       172.16.30.10
mail    IN     A       172.16.30.50
www     IN     A       172.16.30.51             #记住这个地址,下面解析会出现



5、检查配置文件和域文件配置是否正确。
1
2
3
4
[iyunv@localhostnamed]# named-checkconf     #无结果返回,这就是最好的结果,配置正确
[iyunv@localhostnamed]# named-checkzone "magedu.com" /var/named/magedu.com.zone
zonemagedu.com/IN: loaded serial 2014080601
OK                                         #这边也是没有问题的



6、 设置文件权限以及属主、属组。
1
2
3
4
[iyunv@localhostnamed]# chmod 640 magedu.com.zone
[iyunv@localhostnamed]# chown root:named magedu.com.zone
[iyunv@localhostnamed]# ll magedu.com.zone
-rw-r-----1 root named 206 Aug  5 20:39magedu.com.zone



7、  配置没有问题后,我们就可以启动服务了。
1
2
3
[iyunv@localhostnamed]# service named start
Generating/etc/rndc.key:                                 [  OK  ]
Startingnamed:                                           [  OK  ]  #这样,服务就启动成功了



8、利用windows客户端进行验证
    先对windows的网络参数进行配置,将DNS服务器的地址指定到上面的DNS服务器改为172.16.30.10,
设置如下:
wKioL1PiE8GBEjyDAAKL_lOT15k788.jpg
在windows下执行命令行程序,输入以下命令检测
wKiom1PiE0WwAGdIAAHYFk5z_X4378.jpg
    从上面的结果看出,我们的windows客户端通过DNS服务器解析出来了对应www这台主机对应的IP地址,这是在上方的DNS服务器中定义过了的IP地址。

二、反向解析
   1、编辑/etc/named.rfc1912.zones文件,添加我们所要解析的magedu这个域的反向解析域,添加如下:
1
2
3
4
zone"30.16.172.in-addr.arpa" IN {
        type master;
        file "172.16.30.zone";
};



   2、在/var/named下建立172.16.30.zone域文件,配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
$TTL    3600
@       IN     SOA     ns.magedu.com.  admin.magedu.com.  (
               2014080601
               2H
                10M
               5D
                10H
)

        IN     NS      ns.magedu.com.
10      IN      PTR     ns.magedu.com.            #这里是反向解析记录
51      IN      PTR     www.magedu.com.



   3、设置文件权限及属主、属组
1
2
[iyunv@localhostnamed]# chmod 640 172.16.30.zone
[iyunv@localhostnamed]# chown root:named 172.16.30.zone



   4、重新加载配置文件,并在windows客户端下检测
1
2
[iyunv@localhostnamed]# service named reload
Reloadingnamed:                                          [  OK  ]



  在windows测试:
wKiom1PiFGnR_0LYAAFF9DPDQXA581.jpg
   至此,我们的实验就完成了,实验过程中,一定要注意的是,花括号后面的分号,一定不能少,而且,配置介绍后要使用named-checkconf和named-checkzone验证配置文件和域文件是否正确。

主从DNS服务器搭建:
环境准备:
在上一个实验上进行扩展,添加一台linux虚拟机,作为从DNS服务器

拓扑图如下所示:从DNS服务器地址如图所示
wKioL1PiFo6BCqL9AADcV1U5ENA310.jpg

实验过程:
   1、为从DNS服务器上安装bind软件
1
[iyunv@localhost~]# yum install -y bind



2、  配置从DNS服务器的主配置文件,跟主DNS服务器的一致,配置如下:
1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost ~]#vim /etc/named.conf
options {
        directory       "/var/named";
        recursion yes;
};
zone"." IN {
        type hint;
        file "named.ca";
};

include"/etc/named.rfc1912.zones";



3、编辑主配置文件中include进来的文件,即/etc/named.rfc19212.zones,添加如下内容:
1
2
3
4
5
6
[iyunv@localhost ~]#vim /etc/named.rfc19212.zones
zone "magedu.com" IN {
        typeslave;                               #这个服务器是从DNS服务器
        file"slaves/magedu.com.zone";            #域文件在slaves下,对于named这个用户,/var/named这个目录它没有写权限
        masters{ 172.16.30.10; };                #指定主DNS服务器的IP地址
};



4、检查配置文件,启动从DNS服务器
1
2
3
[iyunv@localhost~]# named-checkconf
[iyunv@localhost~]# service named start
Startingnamed:                                           [  OK  ]



5、到主DNS服务器上,加入从服务器的地址,在域文件下配置,即/var/named/magedu.com.zone下
加入以下内容,然后改变解析库版本,一般在原有的基础上加1。
1
2
3
4
5
版本库改为:2014080602

添加内容:   
IN     NS      ns
ns2     IN      A      172.16.30.30



6、  检查配置文件和域文件,没问题后重启主DNS服务器
1
2
3
[iyunv@localhostnamed]# named-checkconf
[iyunv@localhostnamed]# rndc reload
serverreload successful



7、  检测从DNS是否生效,将windows的DNS选项指向从DNS服务器,如下所示:
wKiom1PiFyDgKOhpAAJvIlcwSmM411.jpg
通过nslookup工具查看,是否能解析www.magedu.com
wKiom1PiF4zCJPXuAAHd7pwejsU658.jpg
8、另外,我们还可以检查从DNS服务器的/var/named/slaves目录
1
2
[iyunv@localhost~]# ls /var/named/slaves/
magedu.com.zone                                #同步过来了主DNS服务器的域文件




DNS服务器的子域授权
实验背景:
    假设,我们这个域(magedu.com)内有了一个新的市场部(mkt),它的IP为172.16.130.0/16这些地址,由于各种需求,他们需要建一台DNS服务器如何,能够让外网的主机可以访问到市场部的各种服务。

实验准备:
在上面的拓扑上进行扩展,添加一台linux服务器,作为市场部的DNS服务器

实验拓扑图形:地址如图所示
wKioL1PiGg2DOs1DAADum3NsxuI576.jpg

实验过程:
    1、在子域的DNS服务器上安装DNS服务
1
[iyunv@localhost~]# yum install -y bind



  2、更改子域DNS服务器上的配置,添加如下的内容
1
2
3
4
5
#[iyunv@localhost~]# vim /etc/named.rfc1912.zones
zone"mkt.magedu.com" IN {
        type master;
        file "mkt.magedu.com.zone";
};



  3、创建区域文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@localhostnamed]# vim /var/named/mkt.magedu.com.zone
$TTL    3600
$ORIGIN         mkt.magedu.com.        #市场部的域名
@       IN     SOA     ns.mkt.magedu.com.   admin.mkt.magedu.com.  (
               2014080601
               2H
               10M
               5D
               1D
)

        IN     NS      ns
        IN     MX   10 mail
ns      IN     A       172.16.100.10
mail    IN     A       172.16.100.11
www     IN     A       172.16.100.12



  4、 检查配置文件和区域文件,更改文件的权限及属主,并启动DNS服务。
1
2
3
4
5
6
7
8
[iyunv@localhostnamed]# named-checkconf
[iyunv@localhostnamed]# named-checkzone "mkt.magedu.com"/var/named/mkt.magedu.com.zone
zonemkt.magedu.com/IN: loaded serial 2014080601
OK
[iyunv@localhostnamed]#chmod 640 /var/named/mkt.magedu.com.zone
[iyunv@localhostnamed]#chown root:named  /var/named/mkt.magedu.com.zone
[iyunv@localhostnamed]# service named start
Startingnamed:                                           [  OK  ]



  5、在父域中添加子域的DNS服务器的地址(172.16.130.10)
1
2
3
4
5
#vim/var/named/magedu.com.zone
#版本库改为:2014080603
#且添加如下内容:
        IN     MX  10  mail
mkt     IN     NS      ns.mkt



  6、检查配置文件和区域文件,如果没有问题,加载它们
1
2
3
4
5
6
7
[iyunv@localhostnamed]# named-checkconf
[iyunv@localhostnamed]# named-checkzone "magedu.com" /var/named/magedu.com.zone
zonemagedu.com/IN: mkt.magedu.com/NS 'ns.mkt.magedu.com' (out of zone) has noaddresses records (A or AAAA)
zonemagedu.com/IN: loaded serial 2014080602
OK
[iyunv@localhostnamed]# rndc reload
serverreload successful



7、用windows客户端检测子域是否能被解析:
wKioL1PiHBXQj5pIAAG5sAprS0Y092.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-23366-1-1.html 上篇帖子: DNS服务器的搭建与使用详解 下篇帖子: shell安装samba服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表