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 524 15:46 hello.com.zone.slave
[root@localhost slaves]# ll  //同步的文件已更新
总用量 4
-rw-r--r--. 1 named named 373 524 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小实验的主要内容,如果未能解决你的问题,请参考以下文章

NFS共享web资源,DNS轮询实现Web负载均衡的小实验

DNS解析综合学习案例实验详细代码

微信小程序代码片段

201555332盛照宗—网络对抗实验1—逆向与bof基础

Android课程---Android Studio使用小技巧:提取方法代码片段

android小知识点代码片段