安装DNS服务器软件bind
bind是DNS服务软件包,安装部署配置一台DNS服务器可以直接通过yum来安装也可以选择编译安装,接下来我们选后者编译安装
准备工作:
1.去官网下载bind包www.isc.org
2.把下载好的包rz上传到Linux
[root@root ~]# rz
3.安装开发者包组:[root@root ~]# yum -y groupinstall "Development tools"
[root@root ~]# yum -y groupinstall "Development tools"
4.解压缩包:[root@root ~]# tar xvf bind-9.10.5-P3.tar.gz
[root@root ~]# tar xvf bind-9.10.5-P3.tar.gz
5.创建对应的系统账号:[root@root ~]# useradd -r -d /var/named -s /sbin/nologin -u 53 named
[root@root ~]# useradd -r -d /var/named -s /sbin/nologin -u 53 named
6.因为是用useradd创建的,系统账号家目录不会自动生成,并设置好所有者所属组;
[root@root ~]# mkdir /var/named
[root@root ~]# chgrp named /var/named/
7.创建一个安装目录,以后再该目录下安装
[root@root ~]# mkdir /app/bind9
编译安装bind
编译安装综合来讲就三大步,在解压包后生成的目录下分别执行三个命令:
注意:编译安装时必须在解压后生成的目录下
[root@root ~]#cd bind-9.10.5-P3
(1)configure:
[root@root bind-9.10.5-P3]# ./configure
(2)make:
[root@root bind-9.10.5-P3]# make
(3)make install:
[root@root bind-9.10.5-P3]# make install
1.执行configure,并指定安装路径为/app/bind9,并禁用openssl;
[root@root bind-9.10.5-P3]#./configure --prefix=/app/bind9 --without-openssl
安装目录为/app/bind9 禁用openssl
2.执行make和make install
这两个可以一条命令执行
[root@root bind-9.10.5-P3]#make && make install
简单部署配置DNS服务器
修改编辑相关变量和配置文件以及测试
1.把/app/bind9/sbin和/app/bind9/bin路径加到$PATH变量里面。
用vim编辑器在/etc/profile.d目录下创建一个bind9.sh文件
bind9.sh文件内容
bind9.sh创建完成之后需要执行". /etc/profile.d/bind9.sh"命令让其生效并"echo $PATH"查看是否添加成功
2.在安装路径的etc下创建配置文件配置DNS
/app/bind9/etc目录下创建named.conf,指定数据文件保存目录/var/named和根文件类型以及文件名root.ca
3.切到/var/named目录去抓13个根服务器重定向到我们在配置文件里指定的路径下的root.ca文件里
[root@root named]#cd /var/named
[root@root named]#dig -t NS . @172.16.0.1 > root.ca
Ps:为了满足好奇心还是用代码块的方式看一下神奇的13个根服务器到底长啥样...
[root@root named]#cat root.ca
; <<>> DiG 9.10.5-P3 <<>> -t NS . @172.16.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 386996 IN NS k.root-servers.net.
. 386996 IN NS c.root-servers.net.
. 386996 IN NS f.root-servers.net.
. 386996 IN NS e.root-servers.net.
. 386996 IN NS i.root-servers.net.
. 386996 IN NS h.root-servers.net.
. 386996 IN NS j.root-servers.net.
. 386996 IN NS l.root-servers.net.
. 386996 IN NS a.root-servers.net.
. 386996 IN NS g.root-servers.net.
. 386996 IN NS d.root-servers.net.
. 386996 IN NS b.root-servers.net.
. 386996 IN NS m.root-servers.net.
;; ADDITIONAL SECTION:
e.root-servers.net. 74925 IN A 192.203.230.10
e.root-servers.net. 74925 IN AAAA 2001:500:a8::e
d.root-servers.net. 41600 IN A 199.7.91.13
d.root-servers.net. 41600 IN AAAA 2001:500:2d::d
h.root-servers.net. 41600 IN A 198.97.190.53
h.root-servers.net. 41600 IN AAAA 2001:500:1::53
j.root-servers.net. 41600 IN A 192.58.128.30
j.root-servers.net. 208801 IN AAAA 2001:503:c27::2:30
g.root-servers.net. 41600 IN A 192.112.36.4
g.root-servers.net. 74925 IN AAAA 2001:500:12::d0d
k.root-servers.net. 41600 IN A 193.0.14.129
k.root-servers.net. 41600 IN AAAA 2001:7fd::1
a.root-servers.net. 74925 IN A 198.41.0.4
a.root-servers.net. 208801 IN AAAA 2001:503:ba3e::2:30
i.root-servers.net. 41600 IN A 192.36.148.17
i.root-servers.net. 74925 IN AAAA 2001:7fe::53
c.root-servers.net. 74925 IN A 192.33.4.12
c.root-servers.net. 41600 IN AAAA 2001:500:2::c
f.root-servers.net. 41600 IN A 192.5.5.241
f.root-servers.net. 41600 IN AAAA 2001:500:2f::f
m.root-servers.net. 208801 IN A 202.12.27.33
m.root-servers.net. 208801 IN AAAA 2001:dc3::35
l.root-servers.net. 54228 IN A 199.7.83.42
l.root-servers.net. 54228 IN AAAA 2001:500:9f::42
b.root-servers.net. 41600 IN A 192.228.79.201
b.root-servers.net. 41600 IN AAAA 2001:500:200::b
;; Query time: 4 msec
;; SERVER: 172.16.0.1#53(172.16.0.1)
;; WHEN: Thu Jul 27 15:00:49 CST 2017
;; MSG SIZE rcvd: 811
[root@root named]#
上面的环节注意给named读权限!!!
4.把域建起来,比如:gaorihan.com
4.1 编辑配置文件
gaorihan.com是域名,gaorihan.com.zone是/var/named下的数据库文件名
4.2 在/var/named路径下创建域的文件并检查语法
SOA记录、NS记录是必须写的记录,而且在最上面。A记录也是必须有的
4.3 把man帮助路径添加到系统man帮助的配置文件/etc/man.config里
5.启动服务并测试
1).本终端
[root@root named]#named -f -g -d 3 -u named
2).另一个终端执行ss -tnul命令查看端口连接情况。
DNS的TCP和UDP都是53端口
3)再别的主机上dig一下,看看能不能gaorihan.com域名解析成我们在记录里加进去的IP地址6.6.6.6
[root@root ~]#dig www.gaorihan.com @172.16.252.217
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> www.gaorihan.com @172.16.2
52.217;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.gaorihan.com. IN A
;; ANSWER SECTION:
www.gaorihan.com. 86400 IN A 6.6.6.6 <
;; AUTHORITY SECTION:
gaorihan.com. 86400 IN NS dns1.gaorihan.com.
;; ADDITIONAL SECTION:
dns1.gaorihan.com. 86400 IN A 172.16.252.217
;; Query time: 6 msec
;; SERVER: 172.16.252.217#53(172.16.252.217)
;; WHEN: Thu Jul 27 17:27:55 2017
;; MSG SIZE rcvd: 85
[root@root ~]#dig www.gaorihan.com @172.16.252.217
结语
DNS服务器的主要作用就是将主机名解析成IP地址的过程,解决域名到IP地址的转换。目前互联网这么发达,几乎所有的服务器都在向外提供各种服务,DNS记录也会越来越多,掌握部署配置DNS服务器是必备技能。