一步一步_DNS域名解析BIND实验

实验:BIND正向解析

在这里插入图片描述

  1. 实验环境
    (a)本实验需要联网
    (b)关闭SElinux
[DNS]$ vim /etc/sysconfig/selinux
[DNS]$ SELINUX=disabled

©关闭防火墙

[DNS]$ systemctl stop firewalld 
[DNS]$ systemctl disable firewalld 

(d)配置yum源(本地+EPEL)

#把原来的repo保存下,也可以删除了
[DNS]$ mkdir /etc/yum.repos.d/yum/
[DNS]$ mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum/
[DNS]$ vim /etc/yum.repos.d/cdrom.repo
    [base]
    name=cdrom
    baseurl=file:///mnt   #这里我是把光盘挂载到/mnt目录下了
    gpgcheck=0
    enabled=1

    [epel]
    name=EPEL
    baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
    gpgcheck=0
    enabled=1
[DNS]$ yum clean all && yum repolist
#大概会有2万3个包,如果还是就要检查下是什么问题了
  1. 主机IP地址
    DNS服务端地址:192.168.99.100
    HTTP服务端地址:192.168.99.200

DNS服务端操作(192.168.99.100)

  1. 安装BIND
[DNS]$ yum -y install bind
  1. 修改bind配置文件
#修改对应的行
[DNS]$ vim /etc/named.conf
    13     listen-on port 53 { localhost; };
    21     allow-query     { any; };

#在/etc/named.rfc1912.zones加上这段
#这段说明了添加magedu.com这个域
[DNS]$ vim /etc/named.rfc1912.zones
    zone "magedu.com" {
    type master;  #类型
    file "magedu.com.zone";   #相应的域配置文件,下面进行修改
    };
  1. DNS区域数据库⽂件
[DNS]$ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA master admin.magedu.com. (
            2019042210 ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H ) ; minimum
    NS master
master A 192.168.99.100 #注意:本机地址
dbserver1 A 1.1.1.1     #注意,不能缩进
dbserver2 A 2.2.2.2
websrv1 A 192.168.36.6
websrv2 A 192.168.99.200   #这里写客户端的IP
  1. 检查
#检查配置文件
[DNS]$ named-checkconf
#检查区域文件
[DNS]$ named-checkzone magedu.com /var/named/magedu.com.zone
#启动服务
[DNS]$ systemctl start named 
#加载配置文件和区域文件
[DNS]$ rndc reload

在这里插入图片描述

HTTP服务器

  1. 要先安装一个工具
[HTTP]$ yum -y install bind-utils
  1. dig命令来测试
[HTTP]$ dig web1.magedu.com @192.168.99.100
[HTTP]$ dig web2.magedu.com @192.168.99.100
[HTTP]$ dig db1.magedu.com @192.168.99.100
[HTTP]$ dig db2.magedu.com @192.168.99.100

在这里插入图片描述

  1. 我们用网页来测试下。客户端是就得先装个http服务
[HTTP]$ yum -y install httpd
[HTTP]$ echo "hello,kugou" > /var/www/html/index.html
[HTTP]$ systemctl start httpd

物理电脑,也就是你的windows

  1. 修改你的DNS为虚拟机配置的DNS服务器的IP
    在这里插入图片描述

  2. 测试下,成功了
    在这里插入图片描述


实验:反向解析

  1. 实验环境:
    host A :DNS服务器:192.168.99.100
    host B :客户端:192.168.99.200

host A

#安装BIND
[DNS]$ yum -y install bind
[DNS]$ vim /etc/named.conf
#修改这2行
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };

[DNS]$ vim /etc/named.rfc1912.zones
#添加这一段
    zone "37.168.192.in-addr.arpa" {
        type master;
        file "192.168.37.zone";
    };

[DNS]$ vim /var/named/192.168.37.zone
$TTL 1D
@ IN SOA master admin (1 1D 1H 1W 3H)
    NS master
master A 192.168.99.101
6 PTR www.jd.com
7 PTR www.taobao.com
8 PTR www.aliyun.com

#启动服务
[DNS]$ systemctl start named 
#加载配置文件和区域文件
[DNS]$ rndc reload

host B

[root]$ dig -x 192.168.37.6 @192.168.99.101

在这里插入图片描述


实验:主从DNS服务器

  • 同步方式
    1. 主DNS服务器推送到从DNS服务器
    2. 周期同步
  1. 实验环境:
    主DNS:host B:192.168.99.200
    从DNS:host A:192.168.99.100
    客户端:host C:192.168.99.104

主DNS:host B

[DNS]$ vim /etc/named.conf
#修改这2行
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 22     allow-transfer  { 192.168.99.100; };
#如果没有这条transfer,那么任意主机都能当主DNS的从服务器,存在安全风险
#写上你允许同步的服务器IP

[DNS]$ vim /etc/named.rfc1912.zones
#添加这一段
    zone "jibiao.work" {
        type master;
        file "jibiao.work.zone";
    };

[DNS]$ vim /var/named/jibiao.work.zone
$TTL 1D
@ IN SOA ns1 admin (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
    NS  ns1   #表示本DNS
    NS  ns2   #表示从DNS
ns1 A 192.168.99.220    #本机IP
ns2 A 192.168.99.200    #从DNS服务器IP

#启动服务
[DNS]$ systemctl start named 
[DNS]$ rndc reload

从DNS: host A

[DNS]$ vim /etc/named.conf
#修改这2行
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 22     allow-transfer  { none; };
#如果没有这条transfer,那么任意主机都能当主DNS的从服务器,存在安全风险

[DNS]$ vim /etc/named.rfc1912.zones
#添加这一段
    zone "jibiao.work" {
        type slave;
        masters { 192.168.99.200;};
        file "slaves/jibiao.work.slave";
    };

#启动服务
[DNS]$ systemctl start named 
[DNS]$ rndc reload

注意:后续要使得同步,主DNS的serial号要大于从DNS上的

客户端

#安装dig这个工具
[root]$ yum -y install bind-utils

[root]$ dig -t axfr jibiao.work @192.168.99.100
[root]$ dig -t axfr jibiao.work @192.168.99.200
#检查是否能获取到IP

实验:父子域DNS

  1. 实验环境:
    父域DNS服务器:192.168.99.200
    子域DNS服务器:192.168.99.100

父域DNS服务器:192.168.99.200

[DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 36     dnssec-enable no;
 37     dnssec-validation no;

[DNS]$ vim /etc/named.rfc1912.zones
#添加这一段
    zone "jibiao.work" {
    type master;
    file "jibiao.work.zone"; 
    };

[root]$ vim /var/named/jibiao.work.zone
$TTL 1D
@ IN SOA master admin.jibiao.work. (
                2019042214 ; serial
                1D ; refresh
                1H ; retry
                1W ; expire
                3H ) ; minimum
         NS master
sanji    NS sanjidns
master A 192.168.99.200
sanjidns A 192.168.99.100
#这条说明了
sanji NS sanjiname
sanjiname A 192.168.99.100
#
websrv A 3.3.3.3
www CNAME websrv
www.shanghai A 1.1.1.1

[root]$ systemctl start named #第一次启动服务
[root]$ rndc reload

子域DNS服务器:192.168.99.100

[DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };


[DNS]$ vim /etc/named.rfc1912.zones
#添加这一段
    zone "sanji.jibiao.work" {
    type master;
    file "sanji.jibiao.work.zone"; 
    };

[root]$ vim /var/named/sanji.jibiao.work.zone
$TTL 1D
@ IN SOA master admin (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
    NS master
master A 192.168.99.100
websrv A 3.3.3.3
www CNAME websrv


[root]$ systemctl start named 第一次启动服务
[root]$ rndc reload

客户机

  1. 先安装dig工具
[root]$ yum -y install bind-utils
  1. 检查下是否成功了
    注意:jibiao.com是配置在主机101上(父),sanji.jibiao.com是配置在102(子)上的.
[root]$ dig www.sanji.jibiao.com @192.168.99.101
[root]$ dig www.jibiao.com @192.168.99.101

在这里插入图片描述


实验:缓存服务器

在这里插入图片描述

forward服务器: 192.168.99.101

  1. 安装BIND
[forward]$ yum install bind -y
  1. 修改配置文件
[forward]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 34     dnssec-enable no;
 35     dnssec-validation no;
 36     forward only;  #收到DNS查询请求都会转发到本地DNS去查询
 37     forwarders { 192.168.99.240;};

#添加区域
[forward]$ vim /etc/named.rfc1912.zones 
#加上这段
zone "magedu.com" {
type master;
file "magedu.com.zone";
};

#配置区域文件
[forward]$ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA master admin.magedu.com. (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
    NS master  
master  A   192.168.99.101
www     CNAME   websrv
websrv  A   1.1.1.1
ftp     A   2.2.2.2
*       A   3.3.3.3

[forward]$ chgrp named /var/named/magedu.com.zone
[forward]$ systemctl start named 第一次启动服务
[forward]$ rndc reload 不是第一次启动服务

cache服务器: 192.168.99.102(本地DNS)

  1. 安装BIND
yum install bind -y
  1. 配置文件
[cache]$ vim /etc/named.conf 
#注释掉两行,第13行和第21行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

[cache]$ vim /etc/named.rfc1912.zones
zone "wang.com" {
type master;
file "wang.com.zone";
};

[cache]$ vim /var/named/wang.com.zone
$TTL 1D
@ IN SOA master admin.wang.com. (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
    NS master
master  A   192.168.99.101
www     CNAME   websrv
websrv  A   1.1.1.1
ftp     A   2.2.2.2
*       A   3.3.3.3

[cache]$ systemctl start named 第一次启动服务
[cache]$ rndc reload 不是第一次启动服务

客户端:99网段的就可以了

  1. 先安装dig工具
[root]$ yum -y install bind-utils
  1. 检查下是否成功了
    注意:wang.com是配置在主机102上(cache)的,magedu.com是配置在101(forward)上的,详看上面的图
[root]$ dig www.wang.com @192.168.99.101
[root]$ dig ftp.wang.com @192.168.99.101
[root]$ dig www.magedu.com @192.168.99.101
[root]$ dig ftp.magedu.com @192.168.99.101

实验:模拟智能CDN

  1. 实验环境
    DNS服务器:192.168.99.101
    模拟北京IP:192.168.99.104
    模拟上海IP:192.168.99.103
    模拟其它IP:192.168.99.102
#
[root]$ vim /etc/named.conf
#在59行加上下面这写
acl beijingnet {
    192.168.99.104;
#当然也可以写网段(192.168.99.0/24),但是我这里没有那么多网段,我就用主机表示了,效果是一样的
};

acl shanghainet {
    192.168.99.103;
};

acl other {
    any;
};


view view_beijing {
    match-clients { beijingnet;};
    include "/etc/named.rfc1912.zones.bj";
};

view view_shanghai {
    match-clients { shanghainet;};
    include "/etc/named.rfc1912.zones.sh";
};

}view view_other {
    match-clients { othernet;};
    include "/etc/named.rfc1912.zones";
};

在这里插入图片描述

[root]$ vim /etc/named.rfc1912.zones.bj
zone "magedu.com"{
    type master;
    file "magedu.com.zone.bj"
}

vim /etc/named.rfc1912.zones.sh
zone "magedu.com" {
    type master;
    file "magedu.com.zone.sh"
}

vim /etc/named.rfc1912.zones
zone "magedu.com" {
    type master;
    file "magedu.com.zones"
}

[root]$ chgrp named /etc/named.rfc1912.zones*
[root]$ vim /var/named/magedu.com.zone.bj
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
    NS ns1
ns1 A  192.168.99.101
www A  4.4.4.4

[root]$ vim /var/named/magedu.com.zone.sh
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
    NS ns1
ns1 A  192.168.99.101
www A  3.3.3.3

[root]$ vim /var/named/magedu.com.zone.other
$TTL 1D
@ IN SOA ns1 admin ( 1 1H 1H 1D 3H)
    NS ns1
ns1 A  192.168.99.101
www A  2.2.2.2

客户端验证:

  1. 先用192.168.99.102模式其它地区的主机
    在这里插入图片描述

  2. 先用192.168.99.103模式上海地区的主机
    在这里插入图片描述

  3. 先用192.168.99.104模式北京地区的主机
    在这里插入图片描述


实验:DNS综合实验

  1. 实验环境(8个虚拟机,物理机16G内存以上)
    1. 用户:192.168.99.107
    2. HTTP服务器:192.168.99.78
    3. 主DNS服务器(二级):192.168.99.200
    4. 从DNS服务器(二级):192.168.99.100
    5. .COM顶级域服务器:192.168.99.220
    6. 根域服务器:192.168.99.230
    7. DNS本地服务器:192.168.99.240
    8. DNS转发服务器:192.168.99.101

在这里插入图片描述

  1. 实验开始

用户:192.168.99.107

  1. 装个dig工具就行了
#安装bind的工具,一会要用到dig
[用户]$ yum -y install bind-utils 

HTTP服务器:192.168.99.78

  1. 配置HTTP服务
[HTTP]$ yum -y install httpd
[HTTP]$ echo "The Web pages" > /var/www/html/index.html
[HTTP]$ systemctl start httpd  #centos7
[HTTP]$ service httpd start #centos6
[HTTP]$ ss -tnl  #检查80端口是否启动

在这里插入图片描述

主DNS服务器(二级):192.168.99.200

  1. 先安装BIND
[主DNS]$ yum -y install bind
  1. 修改配置文件
#主配置文件
[主DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 22     allow-transfer  { 192.168.99.100; };
#transfer后带的是从DNS的IP

#区域配置文件
[主DNS]$ vim /etc/named.rfc1912.zone 
zone "magedu.com" {
    type master;
    file "magedu.com.zone";
};

#区域文件
[主DNS]$ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA ns1 admin (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
    NS ns1
    NS ns2   #从DNS服务器
ns1 A 192.168.99.200    #本机IP
ns2 A 192.168.99.100    #从DNS服务器的IP
www A 192.168.99.78     #HTTP服务器的IP

#启动DNS服务
[主DNS]$ systemctl start named
[主DNS]$ rndc reload

从DNS服务器(二级):192.168.99.100

  1. 先安装BIND
[从DNS]$ yum -y install bind
  1. 修改配置文件
[从DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 22     allow-transfer  { none; };
#transfer后带的是从DNS的IP

[从DNS]$ vim /etc/named.rfc1912.zone 
zone "magedu.com" {
    type slave;
    masters { 192.168.99.100;}; #主DNS服务器的IP
    file "slaves/magedu.com.zone.slave";
};

#从服务器不需要配置区域文件  
#启动DNS服务
[从DNS]$ systemctl start named
[从DNS]$ rndc reload

.COM顶级域服务器:192.168.99.220

  1. 先安装BIND
[顶级域DNS]$ yum -y install bind
  1. 修改配置文件
[顶级域DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };

[顶级域DNS]$ vim /etc/named.rfc1912.zone 
zone "com" {
    type master;
    file "com.zone";
};

[顶级域DNS]$ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA ns1 admin (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
          NS  ns1
magedu    NS  ns2   
magedu    NS  ns3
ns3 A 192.168.99.220    #本机IP
ns1 A 192.168.99.200    #从DNS服务器IP
ns2 A 192.168.99.100    #主DNS服务器IP

#启动DNS服务
[顶级域DNS]$ systemctl start named
[顶级域DNS]$ rndc reload

根域服务器:192.168.99.230

  1. 先安装BIND
[根域DNS]$ yum -y install bind
  1. 修改配置文件
[根域DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };

[根域DNS]$ vim /etc/named.rfc1912.zone 
zone "." {
    type master;
    file "zone";
};

[根域DNS]$ vim /var/named/magedu.com.zone
$TTL 1D
@ IN SOA ns1 admin (
        0 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
       NS  ns1
com    NS  ns2   
ns1 A 192.168.99.230    #本机IP
ns2 A 192.168.99.220    #COM服务器IP

#启动DNS服务
[根域DNS]$ systemctl start named
[根域DNS]$ rndc reload

DNS本地服务器:192.168.99.240

#配置根DNS服务器的IP,这样的话,当本地DNS找不到域名的时候,就会向根域服务器去找
[本地DNS]$ vim /var/named/named.ca
    a.root-servers.net. 360000 IN A 192.168.99.230
#把后面的a.b.c.到m.删除了,见图

[本地DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 34     dnssec-enable no;
 35     dnssec-validation no;

 #启动DNS服务
[本地DNS]$ systemctl start named
[本地DNS]$ rndc reload

在这里插入图片描述

DNS转发服务器:192.168.99.101

[转发DNS]$ vim /etc/named.conf
 13     listen-on port 53 { localhost; };
 21     allow-query     { any; };
 34     dnssec-enable no;
 35     dnssec-validation no;
 36     forward only;  #收到DNS查询请求都会转发到本地DNS去查询
 37     forwarders { 192.168.99.240;};

 #启动DNS服务
[转发DNS]$ systemctl start named
[转发DNS]$ rndc reload

用户:192.168.99.107

#DNS转发服务器 --> DNS本地服务器 --> 根域DNS --> COM域DNS --> magedu.com域DNS
[用户]$ dig www.magedu.com @192.168.99.101

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42758707/article/details/94427779
今日推荐