Ubuntu搭建DNS服务器

14 篇文章 0 订阅
8 篇文章 0 订阅

前言

其实在我们没有安装DNS服务之前,可以将/etc/hosts文件比作一个DNS服务配置文件,因为它实现和DNS类似。

之所以会独立出DNS服务,是因为因特网主机多,如果每个主机都靠/etc/hosts文件来维护主机名到ip的映射,那么工作量非常大,对本地更新、网络资源占用都很浪费,所以出现了DNS。

相关文件

/etc/host 本地的一个小"DNS"文件。

/etc/resolv.conf 用来指定DNS服务的地址,在没有自定义DNS地址时,发现其指向本机。如下:

root@jammg:/etc/bind# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
#nameserver 192.168.1.115

nameserver 127.0.0.1

所以,此时主机查找域名时或许是根据本地/etc/hosts.

/etc/host.conf 指定主机找哪个DNS解析的顺序.如下:

root@jammg:/etc/bind# cat /etc/host.conf
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on

所以,是先在本地搜索(hosts),然后再用bind指定的DNS区找(相关的查找信息在/etc/bind目录中)。


配置

Ubuntu15.10默认没有安装DNS 相关daemon,其中BIND是提供DNS服务的软件,安装:

#apt-get install bind9

那么,在/etc/bind下就有了DNS服务的相关配置文件,而named则是DNS服务主程序,在/usr/sbin目录下。


先来介绍一下/etc/bind目录下的文件:

root@jammg:/etc/bind# ls -la
总用量 68
drwxr-sr-x   2 root bind  4096  3月 31 11:45 .
drwxr-xr-x 150 root root 12288  3月 31 15:40 ..
-rw-r--r--   1 root root  2389  3月  8 22:59 bind.keys
-rw-r--r--   1 root root   237  3月  8 22:59 db.0
-rw-r--r--   1 root root   271  3月  8 22:59 db.127
-rw-r--r--   1 root root   237  3月  8 22:59 db.255
-rw-r--r--   1 root root   353  3月  8 22:59 db.empty
-rw-r--r--   1 root root   270  3月  8 22:59 db.local
-rw-r--r--   1 root root  3048  3月  8 22:59 db.root
-rw-r--r--   1 root bind   463  3月  8 22:59 named.conf
-rw-r--r--   1 root bind   490  3月  8 22:59 named.conf.default-zones
-rw-r--r--   1 root bind   165  3月  8 22:59 named.conf.local
-rw-r--r--   1 root bind   890  3月 31 00:28 named.conf.options
-rw-r-----   1 bind bind    77  3月 31 00:28 rndc.key
-rw-r--r--   1 root root  1317  3月  8 22:59 zones.rfc1918

其中,主要的是named.conf文件,它包括了DNS的重要配置信息,它有下面三个文件组成:

named.conf.default-zones
named.conf.local
named.conf.options

①named.conf.default-zones

包含了反解文件:db.0 db.127 正解文件:db.root db.local.

指定了DNS查找的配置信息,如db.local:

root@jammg:/etc/bind# cat db.local
;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	localhost. root.localhost. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	localhost.
@	IN	A	127.0.0.1
@	IN	AAAA	::1

@代表域名,在这里是local.(有个点)。

另外,db.root 包含了最顶层的域名和对应的地址,所有有需要的DNS都可以从这些地址得到其它域名的地址信息。

②named.conf.local暂时没用到

③named.conf.options

包含了一些设置信息,如设置为cache-only DNS,添加forwarding功能等。


测试

#dig +trace www.google.com @127.0.0.1

后面的@server就是指定使用本主机配置的DNS服务,如果返回如下信息则说明配置成功了。

www.google.com.		300	IN	A	216.58.197.100

第一次时,它是通过去找db.root配置文件的最顶层域名,由上到下一层层往下找到www.google.com的;第二次如果缓存还没过期则只需从本地获取结果。


关闭服务

#/etc/init.d/bind9 stop
还是关了本地的dns上网快点,毕竟目前只有最顶层的域名ip,要一层层找下来。


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供大致的步骤。具体细节因环境不同而异,请您根据自己的实际情况适当调整。 1. 安装 DNS 服务器Ubuntu 上安装 DNS 服务器可以使用 BIND9 工具,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install bind9 ``` 2. 配置正向解析 正向解析是指将域名解析为 IP 地址,可以通过以下步骤进行配置: - 编辑 /etc/bind/named.conf.local 文件,添加以下内容: ``` zone "example.com" { type master; file "/etc/bind/db.example.com"; }; ``` - 创建 /etc/bind/db.example.com 文件,添加以下内容: ``` $TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. @ IN A 192.168.0.100 ``` 其中,example.com 是您的域名,192.168.0.100 是您的 IP 地址,可以根据实际情况进行修改。 - 重启 BIND9 服务: ``` sudo systemctl restart bind9 ``` 3. 配置反向解析 反向解析是指将 IP 地址解析为域名,可以通过以下步骤进行配置: - 编辑 /etc/bind/named.conf.local 文件,添加以下内容: ``` zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; }; ``` - 创建 /etc/bind/db.192 文件,添加以下内容: ``` $TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. 100 IN PTR example.com. ``` 其中,example.com 是您的域名,100 是您的 IP 地址的最后一段数字,可以根据实际情况进行修改。 - 重启 BIND9 服务: ``` sudo systemctl restart bind9 ``` 完成以上步骤后,您的 DNS 服务器就可以进行正反向解析了。您可以通过在其他主机上配置 DNS 服务器为您的 Ubuntu 服务器的 IP 地址,然后在命令行中使用 nslookup 命令进行测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值