DNS小实验
Posted 还行少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DNS小实验相关的知识,希望对你有一定的参考价值。
一 正向解析
1、下载安装服务
[root@localhost ~]# yum -y install bind //centos7中DNS服务由bind提供
2、修改DNS配置文件
[root@localhost ~]# vim /etc/named.conf //DNS的主配置文件
。。。
options {
listen-on port 53 { any; }; //监听端口,设为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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; //允许谁来查看 设为any
[root@localhost ~]# vim /etc/named.rfc1912.zones //区域配置文件
...
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "hello.com" IN { //定义正向DNS区域
type master; //定义DNS类型
file "hello.com.zone"; //设置对应的正向区域数据库文件
allow-update { none; }; //设置允许动态更新的客户端地址(none为禁止)
};
...
[root@localhost named]# cp -p /var/named/named.localhost /var/named/hello.com.zone //连模板的属性一起复制
[root@localhost named]# vi /var/named/hello.com.zone //配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www A 192.168.30.3 //添加一条主机记录
3、启动服务
[root@localhost ~]# systemctl start named //服务名为named
[root@localhost ~]# netstat -anup | grep 53 //监听dns端口,已启动
udp 0 0 0.0.0.0:5353 0.0.0.0:* 8532/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 20080/named
udp 0 0 192.168.213.10:53 0.0.0.0:* 20080/named
udp 0 0 192.168.30.3:53 0.0.0.0:* 20080/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 20080/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 11310/dnsmasq
udp 0 0 0.0.0.0:52098 0.0.0.0:* 8532/avahi-daemon:
udp6 0 0 ::1:53 :::* 20080/named
[root@localhost ~]#
4、验证结果
二 反向解析
1、在正向解析的基础上做反向解析
2、修改DNS配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones //修改区域配置文件
...
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "30.168.192.in-addr.arpa" IN { //配置反向解析的区域
type master; //定义DNS类型
file "hello.com.zone"; //设置对应的反向区域数据库文件(可和正向解析不同名)
allow-update { none; }; //设置允许动态更新的客户端地址(none为禁止)
};
...
[root@localhost named]# vi /var/named/hello.com.zone //修改配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www A 192.168.30.3 //添加一条主机记录
3 PTR www.hello.com. //添加反向解析记录(注意域名最后的.)
3、重启DNS服务
[root@localhost ~]# systemctl restart named //重启DNS服务
[root@localhost ~]# netstat -anup | grep 53 //监听DNS端口,已启动DNS
udp 0 0 0.0.0.0:5353 0.0.0.0:* 8532/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 75737/named
udp 0 0 192.168.213.10:53 0.0.0.0:* 75737/named
udp 0 0 192.168.30.3:53 0.0.0.0:* 75737/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 75737/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 11310/dnsmasq
udp 0 0 0.0.0.0:52098 0.0.0.0:* 8532/avahi-daemon:
udp6 0 0 ::1:53 :::* 75737/named
[root@localhost ~]#
4、验证结果
三 缓存DNS服务器
1、在前两个实验的基础上做缓存服务器
2、在缓存DNS服务器上下载安装服务
[root@localhost ~]# yum -y install bind //下载安装DNS服务
3、修改配置文件
[root@localhost ~]# vim /etc/named.conf //DNS的主配置文件,删除其他的配置,保留以下配置
options {
directory "/var/named";
forwarders { 192.168.30.3; }; 指定一个DNS服务器
allow-query { any; };
};
4、重启服务
[root@localhost ~]# systemctl restart named
[root@localhost ~]# netstat -anup | grep 53
udp 0 0 0.0.0.0:5353 0.0.0.0:* 8558/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 77266/named
udp 0 0 192.168.30.4:53 0.0.0.0:* 77266/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 77266/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 9937/dnsmasq
[root@localhost ~]#
5、验证结果
四 主从域名服务器
1、在第一二个实验的基础上做主从域名服务器
2、修改主域名服务器配置
zone "hello.com" IN {
type master;
file "hello.com.zone"; //设置对应的数据库文件
allow-transfer { 192.168.30.4; }; //填写从服务器的地址
also-notify { 192.168.30.4; }; //同步给192.168.30.4
};
...
zone "30.168.192.in-addr.arpa" IN {
type master;
file "hello.com.zone"; //设置对应的数据库文件
allow-transfer { 192.168.30.4; }; //填写从服务器的地址
also-notify { 192.168.30.4; }; //同步给192.168.30.4
};
3、从域名服务器下载安装服务
[root@localhost ~]# yum -y install bind //下载安装DNS服务
4、修改从服务器配置
zone "hello.com" IN {
type slave;
file "slaves/hello.com.zone.slave"; //设置对应的数据库文件
masters { 192.168.30.3; }; //填写主服务器的地址
};
zone "30.168.192.in-addr.arpa" IN {
type slave;
file "slaves/hello.com.zone.slave"; //设置对应的数据库文件
masters { 192.168.30.3; }; //填写主服务器的地址
};
5、重启服务
[root@localhost ~]# systemctl restart named
[root@localhost ~]# cd /var/named/slaves/
[root@localhost slaves]# ls //区域数据文件已同步
hello.com.zone.slave
6、验证结果
[root@localhost slaves]# nslookup 192.168.30.3 192.168.30.4 //前IP为解析的地址,后为DNS服务器地址
3.30.168.192.in-addr.arpa name = www.hello.com.
[root@localhost slaves]# nslookup 192.168.30.3 192.168.30.3
3.30.168.192.in-addr.arpa name = www.hello.com.
[root@localhost slaves]# nslookup www.hello.com 192.168.30.3
Server: 192.168.30.3
Address: 192.168.30.3#53
Name: www.hello.com
Address: 192.168.30.3
[root@localhost slaves]# nslookup www.hello.com 192.168.30.4
Server: 192.168.30.4
Address: 192.168.30.4#53
Name: www.hello.com
Address: 192.168.30.3
[root@localhost slaves]#
修改主配置文件
[root@localhost ~]# vim /var/named/hello.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial //将其增大,最大十位数
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
ftp A 192.168.30.3 //将www改为ftp
3 PTR www.hello.com.
重启主服务器的dns
[root@localhost ~]# systemctl restart named
查看从服务器
[root@localhost slaves]# ll
总用量 4
-rw-r--r--. 1 named named 275 5月 24 15:46 hello.com.zone.slave
[root@localhost slaves]# ll //同步的文件已更新
总用量 4
-rw-r--r--. 1 named named 373 5月 24 15:57 hello.com.zone.slave
[root@localhost slaves]#
[root@localhost slaves]# nslookup ftp.hello.com 192.168.30.4 //已同步
Server: 192.168.30.4
Address: 192.168.30.4#53
Name: ftp.hello.com
Address: 192.168.30.3
[root@localhost slaves]# nslookup ftp.hello.com 192.168.30.3 //已同步
Server: 192.168.30.3
Address: 192.168.30.3#53
Name: ftp.hello.com
Address: 192.168.30.3
[root@localhost slaves]# nslookup 192.168.30.3 192.168.30.3
3.30.168.192.in-addr.arpa name = www.hello.com.
[root@localhost slaves]# nslookup 192.168.30.3 192.168.30.4
3.30.168.192.in-addr.arpa name = www.hello.com.
[root@localhost slaves]#
五 DNS分离解析
环境
网关+DNS服务器 :centos7 ens33:192.168.30.3 ens37:100.0.0.1
http服务器:centos7 192.168.30.4
外网客户端:虚拟机win10 ip:100.0.0.5
内网客户端:真机win10 ip:192.168.30.254
1、下载安装DNS服务
[root@localhost ~]# yum -y install bind
2、修改配置
[root@localhost ~]# vim /etc/named.conf //删除此配置文件中的zone
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
[root@localhost ~]# vim /etc/named.rfc1912.zones //删除所有zone,使用view
view "lan" {
match-clients { 192.168.192.0/24; };
zone "hello.com" IN {
type master;
file "hello.com.zone.lan";
};
};
view "wan" {
match-clients { 100.0.0.0/8; };
zone "hello.com" IN {
type master;
file "hello.com.zone.wan";
};
};
[root@localhost named]# cp -p named.localhost hello.com.zone.lan //复制区域数据文件
[root@localhost named]# cp -p named.localhost hello.com.zone.wan
[root@localhost ~]# vim /var/named/hello.com.zone.lan //内网配置
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.30.4
www IN A 192.168.30.4
[root@localhost ~]# vim /var/named/hello.com.zone.wan //外网配置
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 100.0.0.1
www A 100.0.0.1
3、重启服务
[root@localhost ~]# rndc reload //重载DNS服务
server reload successful
[root@localhost ~]# netstat -anup | grep 53 //监听53端口,dns已启动
udp 0 0 0.0.0.0:5353 0.0.0.0:* 8532/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 77839/named
udp 0 0 100.0.0.1:53 0.0.0.0:* 77839/named
udp 0 0 192.168.30.3:53 0.0.0.0:* 77839/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 77839/named
udp 0 0 192.168.122.1:53 0.0.0.0:* 11310/dnsmasq
udp 0 0 0.0.0.0:52098 0.0.0.0:* 8532/avahi-daemon:
udp6 0 0 ::1:53 :::* 77839/named
[root@localhost ~]#
4、将内网web服务地址映射到公网网卡上
[root@lo0-100 ~]# iptables -t nat -A PREROUTING -d 100.0.0.1 -i ens37 -j DNAT --to-destination 192.168.30.4
[root@lo0-100 ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT all -- anywhere lo0-100.BSTNMA-VFTTP-361.verizon-gni.net to:192.168.30.4
5、开启路由转发功能
vim /etc/sysctl.conf //配置内核参数开启路由转发,echo 1 > /proc/sys/net/ipv4/ip_forward为临时配置
net.ipv4.ip_forward=1
sysctl -p 从文件加载系统参数
6、验证结果
[root@lo0-100 ~]# nslookup www.hello.com 100.0.0.1
Server: 100.0.0.1
Address: 100.0.0.1#53
Name: www.hello.com
Address: 100.0.0.1
[root@lo0-100 ~]# nslookup www.hello.com 192.168.30.3
Server: 192.168.30.3
Address: 192.168.30.3#53
Name: www.hello.com
Address: 192.168.30.4
[root@lo0-100 ~]#
以上是关于DNS小实验的主要内容,如果未能解决你的问题,请参考以下文章