您的位置:首页 > 运维架构 > Linux

我见过最好的Linux教程——DNS服务器搭建

2019-07-25 11:24 106 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/chen010416/article/details/97237846

恰同学少年,风华正茂。

前言

说到DNS,相信大家非常的耳熟,那是因为在访问网站时都需要用到服务,可以说是掌握了网页的命脉啊
Dns服务器主要是用于帮助用户方便访问网站,在访问某一网站时,可以通过dns服务器来进行解析,
这样就可以在不知道主机ip地址的情况下通过它的名字来进行访问。
那DNS究竟是怎么样进行运作,有应该如何的安装呢?这一篇文章就来为大家揭开dns神秘的面纱。

Dns服务简介

在正式开始学习前,我先为大家介绍个文件

/etc/hosts
哈哈,大家对这个文件肯定不陌生吧,没错他就是dns的前身,最早期没有dns的主机,就是利用
/etc/hosts
文件来实现域名解析这个功能的,每一台主机上都保存了一份本地网中全部主机及其对应的ip地址清单。

好家伙 看着头都大了

但是人脑对于一连串的数字字母,记忆起来确实很吃力,这样,当需要访问某一个主机时就要先查询对方的ip地址,确实很麻烦 也增加了访问网页的复杂性,为了解决这个难题,BIND就应运而生啦, 这一套分布式管理主机ip地址的系统就是目前全世界使用最广泛的域名解析系统

DNS查询原理

在dns的系统中提供dns解析的主机被称为dns服务器或者域名服务器,而进行“域名查询“请求的主机,则被成为dns客户端,不过在dns客户端中,也有简单的dns查询服务,其中包括

/etc/host.conf resolv
hosts3

在这里就不为大家具体解释这三个文件了。
通常在进行测试调试过程中需要某一个网站的解析 我通常就喜欢用hosts 文件来进行解析 。
因为确实是方便啊 嘿嘿嘿。

后面会为大家简单介绍一下hosts文件的使用方法

切入正题

在客户端发送查询信息中包含最重要的一条信息:
被指定的dns域名 必须为完全合格域名(FQDN)
Ps :(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)。

说一下 当客户端需要域名解析是 并不是直接向域名解析服务器进行解析,而是首先在本机进行域名解析的操作 如果解析不到,才向域名解析服务器发送解析请求。

linux客户端默认解析就是首先查询host文件 如果host文件中查询不到 才会向dns服务器发送请求

hosts文件的使用方法


第一部分的内容是主机的ip地址 第二部分是域名 第三部分是主机的别名

DNS服务器安装搭建

Linux系统下假设DOS服务器通常时使用Bind程序来实现的。Bind是最知名域名服务器软件,他完整的实现了DNS协议规定的各种功能。可以在各种主流的操作系统平台上运行,并且被作为许多供应商的unix标准配置封装在产品中。

Bind基础命令
yum install -y bind bind-utils ##Bind安装包 utils是一个bind测试工具(可选择)
service named start ##开启命令
service named stop ##关闭服务命令
service named restart ##重新启动服务命令
chkconfig named on ##设置开机自启动

安装成功 我们继续往下走
与其他服务器相比,Bind的配置文件结构要复杂得多,而且在配置文件不正确的时候,Bind也无法运行。我先讲一套最简单的配置文件,使Bind能正常运行起来,并具有初步的域名解析功能。

我们首先进入主配置文件

[root@Demo ~]# vim /etc/named.conf
10 options {
11         listen-on port 53 { any; };				##开启端口监听  DNS为53号端口
12         listen-on-v6 port 53 { ::1; };
13         directory       "/var/named";
14         dump-file       "/var/named/data/cache_dump.db";
15         statistics-file "/var/named/data/named_stats.txt";
16         memstatistics-file "/var/named/data/named_mem_stats.txt";
17         allow-query     { any; };				##允许所有
18         recursion yes;
19
20         dnssec-enable no ;						##可选择yes
21         dnssec-validation no;					##可选择yes
22         dnssec-lookaside auto;
23
24         /* Path to ISC DLV key */
25         bindkeys-file "/etc/named.iscdlv.key";
26
27         managed-keys-directory "/var/named/dynamic";
28 };
29
30 logging {
31         channel default_debug {
32                 file "data/named.run";
33                 severity dynamic;
34         };
35 };
36
37 zone "." IN {									##定义一个名为“.”的区 查询类为IN
38         type hint;								## 类型为hint
39         file "named.ca";						##区文件是named.ca
40 };
41
42 include "/etc/named.rfc1912.zones";
##辅助区域配置文件,除了根域之外,其余所有区域配置都建议在这个配置文件中,主要为了方便管理,不会轻易破坏主配置文件。
43 include "/etc/named.root.key";
44
~

进入文件 创建正反向解析区域

[root@Demo ~]# vim /etc/named.rfc1912.zones

修改内容如下:

13 zone "Demo.com" IN {		##定义域名
14         type master;
15         file "named.localhost";	##正向解析文件
16         allow-update { none; };
17 };

31 zone "0.168.192.in-addr.arpa" IN {		##定义IP地址段
32         type master;
33         file "named.loopback";			##反向解析文件
34         allow-update { none; };
35 };

进入正向解析文件

[root@Demo ~]# vim /var/named/named.localhost

添加需要解析的域名:

1 $TTL 1D
2 @       IN SOA  @ rname.invalid. (
3                                         0       ; serial
4                                         1D      ; refresh
5                                         1H      ; retry
6                                         1W      ; expire
7                                         3H )    ; minimum
8         NS      @
9         A       127.0.0.1
10         AAAA    ::1
11 www     A       192.168.0.1
12 test    A       192.168.0.2
13 demo    A       192.168.0.3

进入反向解析文件

[root@Demo ~]# vim /var/named/named.loopback

添加反向解析

1 $TTL 1D
2 @       IN SOA  @ rname.invalid. (
3                                         0       ; serial
4                                         1D      ; refresh
5                                         1H      ; retry
6                                         1W      ; expire
7                                         3H )    ; minimum
8         NS      @
9         A       127.0.0.1
10         AAAA    ::1
11         PTR     localhost.
12 1       PTR     www.Demo.com
13 2       PTR     test.Demo.com
14 3       PTR     demo.Demo.com

完成重启dns服务

[root@Demo ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@Demo ~]#

使用nslookup测试 解析成功
测试时要将DNS服务器的ip地址添加到网卡地址中哦

[root@Demo ~]# echo "DNS1=192.168.1.103" >> /etc/sysconfig/network-scripts/ifcfg-eth0

然后重启网卡服务和DNS服务器

[root@Demo ~]# nslookup
> www.Demo.com
Server:         192.168.1.103
Address:        192.168.1.103#53

Name:   www.Demo.com
Address: 192.168.0.1
> 192.168.0.2
Server:         192.168.1.103
Address:        192.168.1.103#53

2.0.168.192.in-addr.arpa        name = test.Demo.com.0.168.192.in-addr.arpa.
>


这样一个简单的DNS服务器就完成了 后面我会在为大家讲包括子域DNS、辅助DNS、缓存DNS还有rndc控制域名服务器等
后面我会再为大家写一篇对DNS主配置文件和关于DNS的配置文件的一些详解。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: