IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> DNS域名解析服务 -> 正文阅读

[系统运维]DNS域名解析服务

DNS域名解析服务

一、BIND域名服务基础

1、DNS系统的作用

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名
  • DNS系统的分布式数据结构

533db320b664aae101bc5fdd272dee1

2、DNS系统类型

  • 缓存域名服务器
    • 也称为DNS高速缓存服务器
    • 通过向其他域名服务器查询获得域名——》IP地址记录
    • 将域名查询结果缓存到本地,结果重复查询时的速度

只提供域名解析结果的缓存功能,目的在于提高查询速度和效率, 但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定 其他 DNS 服务器作为解析来源

  • 主域名服务器
    • 特定DNS区域的权威服务器,具有唯一性
    • 负责维护该区域内所有域名——》IP地址的映射记录
    • 需要自行建立所负责区域的地址数据文件

管理和维护所负责解析的域内解析库的服务器

  • 从域名服务器
    • 也称为复制域名服务器,是对主域名服务器的热备份
    • 其维护的域名——》IP地址记录来源于主域名服务器
    • 需要从主域名服务器自动同步区域地址数据库

从主服务器或从服务器"复制"(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增

刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

通知机制:主服务器解析库发生变化时,会主动通知从服务器

关于host文件的优先级

[root@localhost ~]# vim /etc/hosts
#编辑host文件用作测试
192.168.254.11 www.baidu.com
#输入内容
[root@localhost ~]# ping www.baidu.com
#进行测试,要能ping通
[root@localhost ~]# ping www.baidu.com
PING www.baidu.com (192.168.254.11) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.254.11): icmp_seq=1 ttl=64 time=0.010 ms
64 bytes from www.baidu.com (192.168.254.11): icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from www.baidu.com (192.168.254.11): icmp_seq=3 ttl=64 time=0.026 ms
64 bytes from www.baidu.com (192.168.254.11): icmp_seq=4 ttl=64 time=0.026 ms
64 bytes from www.baidu.com (192.168.254.11): icmp_seq=5 ttl=64 time=0.024 ms

[root@localhost ~]# vim /etc/nsswitch.conf
#进入文件修改dns的优先级
hosts:      files dns myhostname改为hosts:      dns files myhostname
#将dns调到前面,优先级就会改变

[root@localhost ~]# ping www.baidu.com
PING www.wshifen.com (103.235.46.39) 56(84) bytes of data.
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=225 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=6 ttl=128 time=224 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=7 ttl=128 time=222 ms

#进行测试
#可以看到两次测试所ping的IP地址是不一样的
#由此可见本地文件host的优先级高于dns的服务器

3.1查询方式

递归查询:不需要自己动手

迭代查询:需要自己动手

3.2查询原理过程

正向解析查询过程:
①先查本机的缓存记录

②查询hosts文件

③查询dns域名服务器,交给dns域名服务器处理

以上过程成为递归查询:我要一个答案你直接会给我结果

④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步

⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器

⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器

⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器

⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

windows系统查询dns缓存命令:ipconfig /displaydns

windows系统清理dns缓存命令:ipconfig /flushdns

linux清dns缓存需要安装nscd软件,启动、执行nscd -i hosts

ec9835484a772e63e2494f880b924ff

Client -->hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递 归) --> DNS Server Cache -->DNS iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…

首先访问缓存服务器,缓存服务器有,直接返回到用户;

如果没有则去找根服务器;

根域名服务器不会直接告诉你结果,会让用户去找二级域名服务器;

(以上是迭代查询);

二级域名服务器也不会告诉用户结果,会让用户去找三级域名服务器;

三级域名服务器会去找自己的子域;

子域得到结果后给三级域名服务器;

三级域名服务器再告诉缓存服务器;

缓存服务器再告诉用户;

3.3开启centos的缓存

[root@localhost ~]# yum -y install nscd
[root@localhost ~]# systemctl enable --now nscd

[root@localhost ~]# nscd -g
#查看缓存统计信息
[root@localhost ~]# nscd -i hosts
#清除DNS客户端缓存

二、使用BIND构建域名服务器

1.1正向解析

各种资源记录

区域解析库:由众多资源记录RR(Resource Record)组成

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

  1. SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录SOA,是起始授权机构记录,说明了在众多 NS 记录里哪一台才是主要的服务器。在任何DNS记录文件中,都是以SOA ( Startof Authority )记录开始。SOA资源记录表明此DNS名称服务器是该DNS域中数据信息的最佳来源。

  2. A(internet Address):作用,域名解析成IP地址

  3. AAAA(FQDN): --> IPV6

  4. PTR(PoinTeR):反向解析,ip地址解析成域名

  5. NS(Name Server):,专用于标明当前区域的DNS服务器,服务器类型为域名服务器

  6. CNAME : Canonical Name,别名记录

  7. MX(Mail eXchanger)邮件交换器

  8. TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮

件)记录,https验证等

SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析;SOA记录设置一些数据版本和更新以及过期时间等信息。

服务器上安装BIND

[root@localhost ~]# rpm -q bind
未安装软件包 bind 
[root@localhost ~]# yum install bind bind-utils -y
#								服务端	客户端
[root@localhost ~]# rpm -q bind bind-utils 
bind-9.9.4-50.el7.x86_64
bind-utils-9.9.4-50.el7.x86_64
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
#关闭防火墙
[root@localhost ~]# getenforce 
Permissive
#查看是否关闭

[root@localhost ~]# cd /var/
[root@localhost var]# cd named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# netstat -ntap |grep named
[root@localhost named]# systemctl start named
[root@localhost named]# netstat -ntap |grep "named"
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      55869/named         
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      55869/named         
tcp6       0      0 ::1:53                  :::*                    LISTEN      55869/named         
tcp6       0      0 ::1:953                 :::*                    LISTEN      55869/named         
[root@localhost named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=127.0.0.1

[root@localhost named]# systemctl restart network

[root@localhost named]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 127.0.0.1

[root@localhost named]# systemctl restart network
[root@localhost named]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=128 time=6.03 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=128 time=5.63 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=128 time=5.34 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=128 time=5.06 ms

客户机

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.254.11
#改成服务器的IP地址

[root@localhost ~]# systemctl restart network
[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
[root@localhost ~]# host www.baidu.com
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

服务器

[root@localhost named]# vim /etc/named.conf 
listen-on port 53 { any; };
allow-query     { any; };
#修改配置文件
[root@localhost named]# rndc reload
server reload successful
#重启服务

客户机

[root@localhost ~]# host www.baidu.com
Host www.baidu.com not found: 5(REFUSED)
#此时请求被拒绝了,去给它赋予权限

回到服务器

[root@localhost named]# vim /etc/named.conf
allow-query     { any; };
#修改配置文件
[root@localhost named]# rndc reload
server reload successful
#重启服务

再回到客户机,可以开始解析了

[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.11
www.a.shifen.com has address 180.101.49.12

回到服务器,做CNAME别名记录

[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "rui.com" IN {		#修改自定义
        type master;
        file "rui.com.zone";  #修改自定义
        allow-update { none; };
};

[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

[root@localhost named]# pwd
/var/named
#注意当前目录
[root@localhost named]# cp -p named.localhost rui.com.zone

[root@localhost named]# ll rui.com.zone
-rw-r-----. 1 root named 152 621 2007 rui.com.zone
#看一眼权限

[root@localhost named]# vim rui.com.zone
$TTL 1D
@       IN SOA  master.rui.com. admin.rui.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.rui.com.
master  IN      A       192.168.254.11
www             A       192.168.254.12
                MX 10   mail1.rui.com.
                MX 20   mail2.rui.com.
mail1   IN      A       192.168.254.22
mail2   IN      A       192.168.254.23
ftp     IN      CNAME   WWW

[root@localhost named]# rndc reload
server reload successful

回到客户机测试

[root@localhost ~]# host mail1.rui.com
mail1.rui.com has address 192.168.254.22

如果再加上这一段

image-20210928194517387

前面的w可以无限多

image-20210928194627310

如果想只输入域名而不输入主机名

image-20210928194843797

image-20210928194914909

注意每次都需要重启服务

打开另一台机器,做以下操作

image-20210929140833014

image-20210929140755055

回到服务器

image-20210929141004808

改成上一台机器的IP地址

image-20210929141105045

开启httpd服务,重启reload

image-20210929141154688

正向解析结束

2.反向解析

[root@localhost named]# vim /etc/named.rfc1912.zones
#先修改区域配置文件
zone "254.168.192.in-addr.arpa" IN {
        type master;
        file "yum.com.zone";
        allow-update { none; };
};

[root@localhost named]# cp -p rui.com.zone yun.com.zone
#复制正向解析文件
[root@localhost named]# vim yun.com.zone
$TTL 1D
@       IN SOA  master.yun.com. admin.yun.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master.yun.com.
master  IN      A       192.168.254.11
100     IN      PTR     www.yun.com.
99      IN      PTR     db.yun.com.

[root@localhost named]# rndc reload
server reload successful


去客户机验证

[root@localhost ~]# host 192.168.254.100
100.254.168.192.in-addr.arpa domain name pointer www.yum.com.
[root@localhost ~]# host 192.168.254.99
99.254.168.192.in-addr.arpa domain name pointer db.yun.com.

反向解析结束

3.主从复制

主服务器地址:192.168.254.11

从服务器地址:192.168.254.30

#主服务器配置
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

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

[root@localhost named]# vim /etc/named.conf
listen-on port 53 { any; };
allow-query     { any; };

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "rui.com" IN {
        type master;
        file "rui.com.zone";
        allow-update { none; };
};

[root@localhost ~]# systemctl start named
#主服务器配置好后再启动

#从服务器配置
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

[root@localhost ~]# yum install bind bind-utils -y
#从服务器安装bind软件

[root@localhost named]# vim /etc/named.conf 
//      listen-on port 53 { 127.0.0.1; };
//      allow-query     { localhost; };
#将这两条删除或注释掉

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "rui.com" IN {
        type slave;
        file "slaves/rui.com.zone";
        masters { 192.168.254.11; };
};

[root@localhost ~]# systemctl start named
#从服务器配置好后再启动

验证

[root@localhost named]# dig www.rui.com @192.168.254.30
#@后面加从服务器地址

主服务器上修改

[root@localhost named]# vim rui.com.zone
$TTL 1D
@       IN SOA  master admin.rui.com. (
                                        #1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.254.11
#slavel  A       192.168.254.30
www     A       192.168.254.12

# #后为修改的内容

[root@localhost named]# vim /etc/named.rfc1912.zones
zone "rui.com" IN {
        type master;
        file "rui.com.zone";
        #allow-transfer { 192.168.254.30; }; 从服务器IP
};

[root@localhost named]# rndc reload
server reload successful

从服务器上验证

[root@localhost named]# dig -t axfr rui.com

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -t axfr rui.com
;; global options: +cmd
rui.com.		86400	IN	SOA	master.rui.com. admin.rui.com. 0 86400 3600 604800 10800
rui.com.		86400	IN	NS	master.rui.com.
master.rui.com.		86400	IN	A	192.168.254.11
www.rui.com.		86400	IN	A	192.168.254.12
rui.com.		86400	IN	SOA	master.rui.com. admin.rui.com. 0 86400 3600 604800 10800
;; Query time: 1 msec
;; SERVER: 192.168.254.30#53(192.168.254.30)
;; WHEN: 三 929 18:29:52 CST 2021
;; XFR size: 5 records (messages 1, bytes 160)
#提高安全配置

4.分离解析

为Linux服务器配置两块网卡,都仅主机模式

image-20210930114837370

ens33:192.168.100.1/24

ens37:12.0.0.1/24

win7作为外网:ip:12.0.0.12 255.0.0.0 dns:12.0.0.1 12.0.0.1

image-20210930121859533

win10作为内网:192.168.100.100

image-20211005215250132

[root@localhost ~]# yum install bind bind-utils -y
#先安装bind

[root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
IPADDR=192.168.100.1
NETMASK=255.255.255.0


[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
#将ens33内容复制给ens37
[root@localhost network-scripts]# vim ifcfg-ens37
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=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=12.0.0.1
NETMASK=255.255.255.0


[root@localhost network-scripts]# systemctl restart network
#重启网卡


将windows网卡模式设置为仅主机模式,并将两台Windows的IP地址配好

回到服务器

[root@localhost network-scripts]# vim /etc/named.conf 
#进入后将这两条注释掉

image-20211005215900279

在最下面找到这一段,将其删除,避免麻烦

image-20211005220212207

[root@localhost network-scripts]# vim /etc/named.rfc1912.zones 
#输入这两段,删除其它内容
view "lan" {
        match-clients { 192.168.100.0/24; };
        zone "rui.com" IN {
          type master;
          file "rui.com.lan";
        };

        zone "." IN {
          type hint;
          file "named.ca";
        };

};

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

        zone "." IN {
          type hint;
          file "named.ca";
        };

};


[root@localhost named]# cp -p named.localhost rui.com.lan
[root@localhost named]# vim rui.com.lan

$TTL 1D
@       IN SOA  master.rui.com. admin.rui.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       192.168.100.1
www     A       192.168.100.20


[root@localhost named]# cp -p rui.com.lan rui.com.wan
[root@localhost named]# vim rui.com.wan

$TTL 1D
@       IN SOA  master.rui.com admin.rui.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       12.0.0.1
www     A       12.0.0.1
                      


在Windows7和Windows10上使用nslookup 查看

image-20211005231309463

image-20211005231337556

总结

了解DNS,能够进行正向解析,反向解析,主从解析,和分离解析的操作。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:37:31  更:2021-10-06 12:38:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:35:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码