DNS服务器搭建
1.什么是DNS
DNS,网域名称系统(Domain Name System),它是作为将域名和IP地址相互映射的一个分布式数据库,使用的TCP和UDP端口为53,目前,最流行的软件是DNS软件是bind,其官方网站为: https://www.isc.org 目前最流行的是9.11.2 (于2017年7月)
2.bind安装
yum安装与源码安装的区别,源码可以自主选择编译的版本,定制编译的模块,但是编译起来较为复杂,而yum安装的版本有限,且不能够自定义编译的模块。
2.1yum安装
查看bind版本
1 [root@localhost bind-9.11.2]# yum list bind 2 Loaded plugins: fastestmirror 3 Loading mirror speeds from cached hostfile 4 * base: mirrors.sohu.com 5 * extras: mirrors.sohu.com 6 * updates: mirrors.sohu.com 7 Installed Packages 8 bind.x86_64 32:9.9.4-50.el7_3.1 @updates 9 [root@localhost bind-9.11.2]#
安装:
1 [root@localhost bind-9-11]# yum install -y bind
2.2源码安装
下载网址: https://www.isc.org/downloads/
利用wget下载:
1 [root@localhost ~]# wget https://www.isc.org/downloads/file/bind-9-11-2/?version=tar-gz
解压:
1 [root@localhost ~]# tar xf bind-9.11.2.tar.gz
查看编译帮助:
1 [root@localhost ~]# cd bind-9.11.2 2 [root@localhost bind-9.11.2]# ./configure --help
编译:
1 [root@localhost bind-9.11.2]# ./configure --prefix=/usr/local/bind-9-11 --enable-ipv6 --enable-filter-aaaa --enable-full-report --without-openssl 2 [root@localhost bind-9.11.2]# make 3 [root@localhost bind-9.11.2]# make install
3.配置文件介绍
我们将采用yum安装的bind软件
配置文件介绍:
DNS主配置文件:/etc/named.conf
区域数据配置文件:/var/named/*
主配置文件介绍:
1 [root@localhost ~]# cat /etc/named.conf 2 ;options表示全局参数,在这里设置的东西将在整个文档生效 3 options { 4 ;监听的端口是53 ip为127.0.0.1 5 listen-on port 53 { 127.0.0.1; }; 6 7 ;监听ipv6的端口为53 监听的地址块为::1/128 8 listen-on-v6 port 53 { ::1; }; 9 10 ;定义资源配置文件 11 directory "/var/named"; 12 13 dump-file "/var/named/data/cache_dump.db"; 14 statistics-file "/var/named/data/named_stats.txt"; 15 memstatistics-file "/var/named/data/named_mem_stats.txt"; 16 allow-query { localhost; }; ;只允许localhost访问 17 18 ;是否允许递归 19 recursion yes; 20 21 dnssec-enable yes; 22 dnssec-validation yes; 23 24 bindkeys-file "/etc/named.iscdlv.key"; 25 26 managed-keys-directory "/var/named/dynamic"; 27 28 ;DNS pid文件存放路径 29 pid-file "/run/named/named.pid"; 30 session-keyfile "/run/named/session.key"; 31 }; 32 33 ;日志文件 34 logging { 35 channel default_debug { 36 file "data/named.run"; 37 severity dynamic; 38 }; 39 }; 40 41 ;资源 42 zone "." IN { 43 ;hind 根 master 主 slave 从 forward 转发 44 type hint; 45 ;文件位置 options directory中的相对路径 46 file "named.ca"; 47 }; 48 49 ;包含文件 50 include "/etc/named.rfc1912.zones"; 51 include "/etc/named.root.key"; 52 53 [root@localhost ~]#
正向解析文件介绍
1 ;/etc/named.rfc1912.zones 是在/etc/named.conf中include包含的的文件,也属于配置文件 2 [root@localhost named]# sed -n 13,17p /etc/named.rfc1912.zones 3 zone "localhost.localdomain" IN { ;localhost.localdomain在named.localhost 中可以用@取代 4 type master; ;类型为主配置文件 5 file "named.localhost"; ;域文件 6 allow-update { none; }; 7 }; 8 [root@localhost named]# 9 10 [root@localhost named]# cat named.localhost 11 $TTL 1D $设置TTL时间 全局变量 12 @ IN SOA @ rname.invalid. ( ;这里的@取决于在/etc/named设置的值 13 0 ; serial ;ID号 14 1D ; refresh : 刷新时间 15 1H ; retry : 重试时间 16 1W ; expire : 结束时间 17 3H ) ; minimum :返回否定时间 18 NS @ ;添加NS记录 19 A 127.0.0.1 ;添加A记录(ipv4) 20 AAAA ::1 ;添加AAAA记录(ipv6) 21 [root@localhost named]#
反向文件解析介绍
1 [root@localhost named]# sed -n 31,35p /etc/named.rfc1912.zones 2 zone "1.0.0.127.in-addr.arpa" IN { ;地址是127.0.0.1反过来写加上.in-addr.arpa 这是反向解析的格式 3 type master; ;类型为主服务器配置文件 4 file "named.loopback"; ;域文件 5 allow-update { none; }; 6 }; 7 ;这是解析的文件,和上面正向解析文件一致 8 [root@localhost named]# cat /var/named/named.loopback 9 $TTL 1D 10 @ IN SOA @ rname.invalid. ( 11 0 ; serial 12 1D ; refresh 13 1H ; retry 14 1W ; expire 15 3H ) ; minimum 16 NS @ 17 A 127.0.0.1 18 AAAA ::1 19 PTR localhost. 20 [root@localhost named]#
4.打造一个DNS服务器
规划:
DNS服务器名称以及IP:wang-li.top 192.168.155.204
www服务器域名以及IP:www.wang-li.top 192.168.155.205
ftp服务器域名以及IP:ftp.wang-li.top www.wang-li.top的别名
4.1 DNS 主配置文件如下:
1 [root@DNS1 etc]# cat named.conf 2 options { 3 ;设置目录 4 directory "/var/named"; 5 ;允许递归的网络段 6 allow-recursion {192.168.155.0/24;}; 7 }; 8 9 zone "." IN { 10 type hint; 11 file "named.ca"; 12 }; 13 14 zone "localhost" IN { 15 type master; 16 file "named.localhost"; 17 }; 18 19 ;增加zone文件 20 zone "wang-li.top" IN { 21 ;类型为master 22 type master; 23 ;文件地址位于/var/named/wang-li.top.zone 24 file "wang-li.top.zone"; 25 ;不允许传送 26 allow-transfer {none;}; 27 }; 28 [root@DNS1 etc]#
4.2 zone 文件如下:
1 [root@DNS1 named]# cat /var/named/wang-li.top.zone 2 $TTL 1200 ;设置TTL值 为1200s 后面就无需设置TTL值了 3 @ IN SOA ns1 admin ( ;SOA记录 4 20170802 ;版本号 5 1H ;刷新时间 6 5M ;重试时间 7 1W ;过期时间 8 1D ;否定时长 9 ) 10 11 IN NS ns1 ;增加ns1的记录 12 ns1 IN A 192.168.155.204 ;增加ns1的A记录 13 www IN A 192.168.155.205 ;增加www的A记录 14 ftp IN CNAME www ;增加ftp的CNAME(别名)记录 15 [root@DNS1 named]#
4.3 修改/etc/resolv.conf文件并且测试搭建的DNS服务器
修改/etc/resolv.conf nameserver内容为我们刚刚搭建好的DNS服务器ip
1 [root@DNS1 named]# cat /etc/resolv.conf 2 # Generated by NetworkManager 3 nameserver 192.168.155.204 4 [root@DNS1 named]#
使用dig命令进行检测
检测DNS服务器名称是否OK
1 [root@DNS1 named]# dig -t NS wang-li.top | grep "ANSWER SECTION" -A 2 2 ;; ANSWER SECTION: 3 wang-li.top. 1200 IN NS ns1.wang-li.top. 4 5 [root@DNS1 named]#
检测www解析是否OK
1 [root@DNS1 named]# dig -t A www.wang-li.top | grep -i "ANSWER SECTION" -A 2 2 ;; ANSWER SECTION: 3 www.wang-li.top. 1200 IN A 192.168.155.205 4 5 [root@DNS1 named]#
检测ftp解析是否OK
1 [root@DNS1 named]# dig -t A ftp.wang-li.top | grep -i "ANSWER SECTION" -A 2 2 ;; ANSWER SECTION: 3 ftp.wang-li.top. 1200 IN CNAME www.wang-li.top. 4 www.wang-li.top. 1200 IN A 192.168.155.205 5 [root@DNS1 named]#
总结:
1 在named.conf中 2 1.如添加一个zone,需要注意的是type值为 3 hint:根(这里用于添加zone为.的时候用) 4 master:主 5 slave:从 6 2.在添加file的时候,路径为相对路径,是按照option中directory中的地址来设定的 7 3.注意配置文件是以分号;结尾 8 9 在zone文件中 10 1.TTL可添加,可不添加,$TTL是把TTL的值加到全局设定中去 11 2.SOA记录必须要有,格式为:区域名称 IN SOA 服务器名称 邮箱(版本号,刷新时间,重试时间,过期时间,否定时间),其中W:周 D:天 H:时 M:分 12 3.添加完SOA记录后,必须要为NS赋予A记录或者AAAA的IP地址(A:IPv4 AAAA:IPv6) 13 4.A:地址 CNAME:别名