理论+实验·DNS域名解析服务

理论+实验·DNS域名解析服务

DNS系统的作用

正向解析:根据域名查找对应的IP地址===>常用

反向解析:根据IP地址查找对应的域名

DNS系统的分布式数据结构

img

全球一共13台根域服务器(中国1\欧洲2

http://www.baidu.com.

根 .

顶级域名 com分(类型,区域这两种进行区分)

二级域名 baidu

baidu.com.

主机名(服务器名) www

协议 http:// 80端口

​ https:// 443端口 SSL 安全套接字层 (里面的内容都是加密的)

极少数情况会有三级域名出现

DNS系统类型

缓存域名服务器

​ 也成为DNS高速缓存服务器

​ 通过向其他域名服务器查询获得域名===>IP地址记录

​ 将域名查询结果存到本地,提高重复查询时的速度

客户机访问某个网站的DNS解析过程

客户机利用电信分配的DNS会找到离客户机最近的位置会有一个DNS缓存服务器

可以查找到DNS缓存里面的域名与ip对应的记录

如果没有对应的记录,DNS缓存服务器会直接去找根域服务器

根域服务器会告诉DNS缓存服务器顶级域名服务器在什么地方

DNS缓存服务器就会去找顶级域名服务器

顶级域名服务器会告诉DNS缓存服务器(如果告诉了二级域在哪里

DNS缓存服务器回去找二级域服务器 {主机A记录域名===>IP}

二级域服务器会告诉DNS缓存服务器

DNS缓存服务器会记录下来

告诉客户机对应的IP

然后客户机就可以去访问对应的网站

网站会将网页推给客户机,下载到客户机的缓存里面

DNS系统类型

主域名服务器

​ 特定DNS区域的权威服务器,具有唯一性

​ 负责维护该区域内所有域名===>IP地址的映射记录

​ 需要自行建立所负责区域的地址数据文件

从域名服务器

​ 也成为辅助域名服务器,是对主域名服务器的热备份

​ 其维护的域名===>IP地址记录来源于主域名服务器

​ 需要从主域名服务器自动同步区域地址数据库

BIND服务

BIND软件安装

BIND(Berkeley Internet Name Daemon)

​ BIND是应用最广泛的DNS服务程序

​ 官方站点:https://www.isc.org/

host===>本地自测的命令

BIND服务器端程序

​ 主要执行程序

​ 默认监听端口:53

​ 主配置文件

​ /etc/named.conf

​ 保存DNS解析记录的数据文件位于

​ /var/named===>随时可更改

BIND服务控制

​    systemctl [status|stop|restart] named.service

配置文件

1:主配置文件 负责DNS全局功能 例如:日志文件文职,访问权限等

2:区域配置文件 负责构建解析区域 例如:多域名的解析

3:区域数据配置文件 负责管理主机解析记录 例如:解析映射

主配置文件named.conf

全局配置部分

​ 设置DNS服务器的全局参数

​ 包括监听地址和端口、区域数据文件存放的目录等

​ 使用options{…};的配置段

option{

  listen-on port 53 { 173.16.16.1; }; ===>监听地址和端口

  directory "/var/named"; ===>区域数据文件的默认存放位置

  allow-query { 192.168.1.0/24;173.16.16.0/24; }; ===>允许使用本DNS服务的网段

}

区域配置部分

​ 设置本服务器提供域名解析的特定DNS区域

​ 包括域名、服务器角色、数据文件名等

​ 使用zone"区域名" IN{…};的配置段

zone "test.com" IN{

​    type master;   ===>type:区域类型

​    file "test.com.zone";   ===>file:区域数据文件

​    allow-transfer { 173.16.16.2; };

};

zone "16.16.173.in-addr.arpa" IN{

​    type master;

​    file "173.16.16.arpa";   ===>反向173.16.16.0/24区域 "IN"关键字可省略

};

区域数据配置文件

全局TTL配置项及SOA记录

​ $TTL(Time To Live,生存时间)

​ SOA(Start Of Authority,授权信息开始)

​ 分号";"开始的部分表示注释信息

$TTL    86400   ===>有效解析记录的生存周期

@   IN   SOA   test.com. admin.test.com.(   ===>SOA标记、域名、管理邮箱

​    2011030501                                              ===>更新序列号,可以是10位以内的整数

​    3H                                                             ===>刷新时间,重新下载地址数据的间隔

​    15M                                                           ===>重试延时,下载失败后的重试间隔

​    1W                                               ===>失效时间,超过该事件仍无法下载则放弃(从服务器更新参数)

​    1D                                                             ===>无效解析记录的生存周期

)

正向解析记录

​ NS域名服务器(Name Server)记录

​ MX邮件交换(Mail Exchange)记录

A地址(Address)记录,指用在正向解析区域中

​ CNAME别名(Canonical Name)记录

@	IN	NS	ns1.test.com.

 IN	MX 10	mail.test.com.

ns1	IN	A	58.119.74.203

www	IN	A	173.16.16.1

mail	IN	A	173.16.16.4

ftp	IN	CNAME	www

实验·DNS正向解析、邮件交换解析、别名解析、泛域名解析、反向解析

实验环境

CentOS 7.6 一台

需求分析

实现DNS服务器的正向解析、邮件交换解析、别名解析、泛域名解析、反向解析

实验步骤

[root@localhost ~]# yum -y install bind*   #安装bind软件包

[root@localhost ~]# vi /etc/named.conf  #修改主配置文件

......

 listen-on port 53 { any; };

......

 allow-query     { any; };

......

[root@localhost ~]# vi /etc/named.rfc1912.zones #修改区域配置文件

......

zone "zhaobin.com" IN {
        type master;
        file "zhaobin.com.local";
        allow-update { none; };
};

......

zone "0.0.20.in-addr.arpa" IN {
        type master;
        file "zhaobin.com.local";
        allow-update { none; };
};

......

[root@localhost ~]# cd /var/named/   #进入该目录

[root@localhost named]# cp -p named.localhost zhaobin.com.local  #复制文件不更改文件的权限等信息

[root@localhost named]# vi zhaobin.com.local  #修改区域数据配置文件

$TTL 1D00
@       IN SOA  zhaobin.com. admin.zhaobin.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      zhaobin.com.
        A       127.0.0.1
IN      MX      5       mail.zhaobin.com.
mail    IN      A       20.0.0.99
www     IN      A       20.0.0.88
ftp     IN      CNAME   mail

* IN      A       1.1.1.1

66      IN      PTR     www.zhaobin.com.

[root@localhost named]# echo "nameserver 20.0.0.10" > /etc/resolv.conf  #配置dns

[root@localhost named]# systemctl start named  #启动服务 

[root@localhost named]# setenforce 0 #关闭核心防护

[root@localhost named]# systemctl stop firewalld  #关闭防火墙

[root@localhost named]# host www.zhaobin.com  #正向解析

www.zhaobin.com has address 20.0.0.88

[root@localhost named]# host ftp.zhaobin.com   #别名解析

ftp.zhaobin.com is an alias for mail.zhaobin.com. 

mail.zhaobin.com has address 20.0.0.99

[root@localhost named]# host mail.zhaobin.com  #邮件交换解析

mail.zhaobin.com has address 20.0.0.99

[root@localhost named]# host aaa.zhaobin.com  #泛域名解析

aaa.zhaobin.com has address 1.1.1.1

[root@localhost named]# host 20.0.0.66   #反向解析

66.0.0.20.in-addr.arpa domain name pointer www.zhaobin.com.

实验·DNS主从复制

实验环境

两台CentOS 7.6

需求分析

一台作为主DNS服务器 ===>IP 20.0.0.10

另一台作为备份服务器===>IP20.0.0.20

网关都设为20.0.02

实验环境

主DNS服务器
[root@localhost ~]# yum -y install bind*   #安装bind软件包

[root@localhost ~]# vi /etc/named.conf  #修改主配置文件

......

listen-on port 53 { any; };

......

allow-query     { any; };

......

[root@localhost named]# vi /etc/named.rfc1912.zones  #修改区域配置文件

zone "zhaobin.com" IN {
        type master;
        file "zhaobin.com.master";
        allow-transfer { 20.0.0.20; };  
};

[root@localhost ~]# cd /var/named/  #进入该目录

[root@localhost named]# vi zhaobin.com.master #修改区域数据配置文件

......

www     IN      A       20.0.0.88

[root@localhost named]# cp -p named.localhost zhaobin.com.master  #保留文件的权限复制

[root@localhost named]# setenforce 0  #关闭核心防护

[root@localhost named]# systemctl stop firewalld  #关闭核心防护

[root@localhost named]# systemctl start named  #开启服务

[root@localhost named]# ehco "nameserver 20.0.0.2" > /etc/resolv.comf  #添加DNS

[root@localhost named]# host www.zhaobin.com  #验证解析一下

www.zhaobin.com has address 20.0.0.88
从DNS服务器
[root@localhost ~]# yum -y install bind*   #安装bind软件包

[root@localhost ~]# vi /etc/named.conf  #修改主配置文件

......

listen-on port 53 { any; };

......

allow-query     { any; };

......

[root@localhost named]# vi /etc/named.rfc1912.zones  #修改区域配置文件

zone "zhaobin.com" IN {
        type slave;
        file "slaves/zhaobin.com.master";
        masters { 20.0.0.20; };  
};

[root@localhost ~]# cd /var/named/slaves  #进入该目录

[root@localhost slaves]# cp -p named.localhost zhaobin.com.master  #保留文件的权限复制

[root@localhost slaves]# setenforce 0  #关闭核心防护

[root@localhost slaves]# systemctl stop firewalld  #关闭核心防护

[root@localhost slaves]# systemctl start named  #开启服务

[root@localhost slaves]# ll       #可以看到从服务器可以向主DNS服务器同步到信息
总用量 4
-rw-r--r--. 1 named named 237 7月   7 19:19 zhaobin.com.master

实验·DNS分离解析

实验环境

image-20200708213409822

需求分析

内部网络可以访问web服务

外部网络也可以访问web服务

实验步骤===>所有的主机跟服务器都改为仅主机模式

双网卡Linux
[root@localhost ~]# yum -y install bind* ===>安装软件包

image-20200708195917261

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ===>进入该目录

[root@localhost network-scripts]# ip add===>查看另一张的网卡名
......
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:09:83:a1 brd ff:ff:ff:ff:ff:ff
    inet 20.0.0.30/24 brd 20.0.0.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4abf:3160:f35f:b1ce/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
......
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:09:83:ab brd ff:ff:ff:ff:ff:ff
    inet6 fe80::e71e:2733:a2b1:997a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 ===>复制一份网卡配置文件

[root@localhost network-scripts]# vi ifcfg-ens33  ===>修改配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=20.0.0.1
PREFIX=24

[root@localhost network-scripts]# vi ifcfg-ens36  ===>修改配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.1
PREFIX=24

[root@localhost network-scripts]# systemctl restart network ===>重启网络服务

[root@localhost network-scripts]# vi /etc/named.conf  ===>修改主配置文件

......

listen-on port 53 { any; };
......
allow-query     { any; };

......

[root@localhost network-scripts]# vi /etc/named.rfc1912.zones  ===>修改区域配置文件

view "lan" {
  match-clients { 192.168.100.0/24; };
  zone "zhaobin.com" IN {
    type master;
    file "zhaobin.com.lan";
  };
  zone "." IN {                       ===>
    type hint;                  ===>
    file "named.ca";                  ===> 把"/etc/named.conf"里面的这几行删除
  };                             ===>
};

view "wan" {
  match-clients { 20.0.0.0/24; };
  zone "zhaobin.com" IN {
    type master;
    file "zhaobin.com.wan";
  };
};

[root@localhost network-scripts]# cd /var/named/ ===>进入该目录

[root@localhost named]# cp -p named.localhost zhaobin.com.lan ===>保留属性复制

[root@localhost named]# cp -p named.localhost zhaobin.com.wan ===>保留属性复制

[root@localhost named]# vi zhaobin.com.lan ===>修改区域数据配置文件

   ......

​	A       192.168.100.1
www     IN      A       192.168.100.88

[root@localhost named]# vi zhaobin.com.wan ===>修改区域数据配置文件

......

​	A       20.0.0.1
......

www     IN      A       20.0.0.1

[root@localhost named]# systemctl start named ===>启动服务

[root@localhost named]# setenforce 0 ===>关闭核心防护

[root@localhost named]# systemctl stop firewalld ===>关闭防火墙

[root@localhost ~]# vi /etc/sysctl.conf  ===>修改配置文件

net.ipv4.ip_forward=1

[root@localhost ~]# sysctl -p ===>使配置文件立即生效
net.ipv4.ip_forward = 1

[root@localhost named]# echo "nameserver 192.168.100.1" > /etc/resolv.conf  ===>配置DNS

[root@localhost named]# echo "nameserver 20.0.0.1" >> /etc/resolv.conf ===>配置DNS
内部网络Linux
[root@localhost ~]# vi /ETC/network-scripts/ifcfg-ens36  ===>修改配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0

GATEWAY=192.168.100.1

[root@localhost ~]# systemctl restart network ===>重启网卡
外部网络Win10

image-20200708213455798

web服务
[root@localhost ~]# yum -y install httpd===>安装软件包

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 ===>修改网卡信息

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=b4fbc92e-5728-4f4d-bc3f-a505739f62d1

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.100.88

NETMASK=255.255.255.0

GATEWAY=192.168.100.1

[root@localhost ~]# systemctl restart network ===>重启网卡

实验结果

可以浏览到内部网络的web服务

猜你喜欢

转载自blog.csdn.net/weixin_47153668/article/details/107216491