CentOS7--DNS
DNS-实验报告

一、master(173.16.16.5)
selinux firewall 状态
[root@ns1 ~]# getenforce
Disabled
[root@ns1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
bind软件包
[root@ns1 ~]# rpm -qa | grep bind
bind-license-9.9.4-29.el7_2.3.noarch
bind-libs-9.9.4-29.el7_2.3.x86_64
rpcbind-0.2.0-33.el7_2.1.x86_64
bind-libs-lite-9.9.4-29.el7_2.3.x86_64
bind-9.9.4-29.el7_2.3.x86_64
bind-utils-9.9.4-29.el7_2.3.x86_64
主机名
[root@master ~]# hostnamectl set-hostname ns1.benet.com
[root@master ~]# bash
[root@ns1 ~]# hostname
ns1.benet.com
hosts
[root@ns1 ~]# vi /etc/hosts
[root@ns1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
173.16.16.5 ns1.benet.com ns1
173.16.16.6 ns2.benet.com ns2
dns解析文件
[root@ns1 ~]# vi /etc/resolv.conf
[root@ns1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 173.16.16.5
nameserver 173.16.16.6
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
ip地址
[root@ns1 ~]# ifconfig
docker0: flags=4099 mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
ether 02:42:7d:c6:fb:fc txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno16777728: flags=4163 mtu 1500
inet 173.16.16.5 netmask 255.255.0.0 broadcast 173.16.255.255
inet6 fe80::20c:29ff:fec4:bc5d prefixlen 64 scopeid 0x20
ether 00:0c:29:c4:bc:5d txqueuelen 1000 (Ethernet)
RX packets 972 bytes 88779 (86.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 439 bytes 62629 (61.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 24 bytes 2036 (1.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24 bytes 2036 (1.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
named.conf文件内容
[root@ns1 ~]# vi /etc/named.conf
[root@ns1 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-transfer{ 173.16.16.6;};
};
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-transfer{173.16.16.6; };
};
zone "67.45.123.in-addr.arpa" IN {
type master;
file "123.45.67.arpa";
allow-transfer { 173.16.16.6;};
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
benet.come.zone
[root@ns1 ~]# vim /var/named/benet.com.zone
[root@ns1 ~]# cat /var/named/benet.com.zone
$TTL 86400
@ IN SOA benet.com. admin.benet.com. (
2016072601;serial
4H;refresh
30M;retry
12H;expire
1D;min cache
)
@ IN NS ns1.benet.com.
IN NS ns2.benet.com.
IN MX 10 mail.benet.com.
ns1 IN A 173.16.16.5
ns2 IN A 173.16.16.6
mail IN A 123.45.67.89
www IN A 123.45.67.88
ftp IN A 123.45.67.90
* IN A 123.45.67.88
[root@ns1 ~]#
accp.com.zone
[root@ns1 ~]# vim /var/named/accp.com.zone
[root@ns1 ~]# cat /var/named/accp.com.zone
$TTL 86400
@ IN SOA accp.com. admin.accp.com. (
2016072601 ;serial
4H ;refresh
30M ;retry
12H ;expire
1D ;min cache
)
@ IN NS ns1.benet.com.
IN NS ns2.benet.com.
ns1 IN NS 173.16.16.5
ns2 IN NS 173.16.16.6
www IN A 58.109.87.65
forum IN A 58.109.87.66
[root@ns1 ~]#
反向解析文件
[root@ns1 ~]# vim /var/named/123.45.67.arpa
[root@ns1 ~]# cat /var/named/123.45.67.arpa
$TTL 86400
@ IN SOA benet.com. admin.benet.com. (
2016072601 ;serial
4H ;refresh
30M ;retry
12H ;expire
1D ;min cache
)
@ IN NS ns1.benet.com.
IN NS ns2.benet.com.
IN MX 10 mail.benet.com.
88 IN PTR www.benet.com.
89 IN PTR mail.benet.com.
90 IN PTR ftp.benet.com.
[root@ns1 ~]#
重启named
[root@ns1 ~]# systemctl restart named
[root@ns1 ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2016-07-27 06:54:55 CST; 15s ago
Process: 30862 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=0/SUCCESS)
Process: 30859 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 30865 (named)
CGroup: /system.slice/named.service
└─30865 /usr/sbin/named -u named
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'G.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'G.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'G.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'B.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'B.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'C.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'C.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'E.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'G.ROOT-SERVERS....#53
Jul 27 06:54:55 ns1.benet.com named[30865]: error (network unreachable) resolving 'B.ROOT-SERVERS....#53
Hint: Some lines were ellipsized, use -l to show in full.
[root@ns1 ~]#
正向测试
[root@ns1 ~]# dig www.benet.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> www.benet.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
反向测试
[root@ns1 ~]# dig 173.16.16.5
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 173.16.16.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
二、slave(173.16.16.6)
hostname
[root@slave ~]# hostnamectl set-hostname ns2.benet.com
[root@slave ~]# bash
[root@ns2 ~]# hostname
ns2.benet.com
selinux firewall状态
[root@ns2 ~]# getenforce
Disabled
[root@ns2 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
slave bind信息
[root@slave ~]# rpm -qa | grep bind
bind-license-9.9.4-29.el7_2.3.noarch
bind-libs-9.9.4-29.el7_2.3.x86_64
rpcbind-0.2.0-33.el7_2.1.x86_64
bind-libs-lite-9.9.4-29.el7_2.3.x86_64
bind-9.9.4-29.el7_2.3.x86_64
bind-utils-9.9.4-29.el7_2.3.x86_64
hosts
[root@ns2 ~]# vi /etc/hosts
[root@ns2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
173.16.16.5 ns1.benet.com ns1
172.16.16.6 ns2.beent.com ns2
resolv.conf
[root@ns2 ~]# vi /etc/resolv.conf
[root@ns2 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 173.16.16.5
nameserver 173.16.16.6
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
从DNS IP地址
[root@ns2 ~]# ifconfig
docker0: flags=4099 mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
ether 02:42:cc:3f:5a:cc txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno16777736: flags=4163 mtu 1500
inet 173.16.16.6 netmask 255.255.0.0 broadcast 173.16.255.255
inet6 fe80::20c:29ff:fe68:c48d prefixlen 64 scopeid 0x20
ether 00:0c:29:68:c4:8d txqueuelen 1000 (Ethernet)
RX packets 4477 bytes 2207357 (2.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1840 bytes 210619 (205.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 204 bytes 16404 (16.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 16404 (16.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@ns2 ~]#
从DNS主配置文件
[root@ns2 ~]# vim /etc/named.conf
[root@ns2 ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "benet.com" IN {
type slave;
masters { 173.16.16.5;};
file "slaves/benet.com.zone";
};
zone "accp.com" IN {
type slave;
masters { 173.16.16.5;};
file "slaves/accp.com.zone";
};
zone "67.45.123.in-addr.arpa" IN {
type slave;
masters { 173.16.16.5;};
file "slaves/123.45.67.arpa";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
[root@ns2 ~]#
slaves文件夹下的文件
[root@ns2 ~]# ls /var/named/slaves/
[root@ns2 ~]# systemctl reload named
Job for named.service invalid.
因为named没有启动
启动named
[root@ns2 ~]# systemctl start named
再次查看slaves文件夹
[root@ns2 ~]# ls /var/named/slaves/
123.45.67.arpa accp.com.zone benet.com.zone
正向解析测试
[root@ns2 ~]# dig www.benet.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> www.benet.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
反向测试
[root@ns2 ~]# dig 123.45.67.88
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 123.45.67.88
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
三、clien(173.16.16.7)
selinux firewall状态
[root@client ~]# getenforce
Disabled
[root@client ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
hosts
[root@client ~]# vi /etc/hosts
[root@client ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
173.16.16.5 ns1.benet.com ns1
173.16.16.6 ns2.benet.com ns2
[root@client ~]#
将DNS服务器设为173.16.16.5,测试
[root@client ~]# vim /etc/resolv.conf
[root@client ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 173.16.16.5
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
正向测试
[root@client ~]# dig www.benet.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> www.benet.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
反向测试
[root@client ~]# dig 123.45.67.89
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 123.45.67.89
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
将首选DNS服务器设为173.16.16.6,测试域名解析
[root@client ~]# vim /etc/resolv.conf
[root@client ~]# systemctl restart network
[root@client ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 173.16.16.6
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
正向测试
[root@client ~]# dig www.benet.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> www.benet.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
方向测试
[root@client ~]# dig 123.45.67.88
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 123.45.67.88
;; global options: +cmd
;; Got answer:
;; ->>HEADER<