Linux网络服务——DNS域名解析服务(正向解析,反向解析,主从服务器,分离解析)

一、BIND概述

1.1BIND 域名服务基础

  • DNS系统的作用及类型
  • BIND的安装和配置

1.2 使用BIND构建域名服务器

  • 构建缓存域名服务器
  • 构建主、从域名服务器

1.3 BIND软件安装

BIND软件是应用最广泛的DNS服务程序,官方站点:https://www.isc.org/

1.4 BIND服务

主要执行程序:/usr/sbin/named
默认监听端口:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named/

1.5 BIND服务控制

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

二、DNS概述

2.1 DNS概述

把域名翻译成IP地址的软件称为域名系统,即DNS。它是一种管理名字的方法。
(1)域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
(2)DNS功能:它允许用户在查找网络资源的时候使用层次化的对用户友好的IP地址。

2.2 DNS系统作用

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

2.3 DNS系统的分布式数据结构

域命名结构:
A根域 世界上总共有13台根服务器
B顶级域 分类方式:1.类型 2.区域
C二级域
D主机名/三级域
E区域(是由DNS名称空间中的单个区域或由具有上下隶属关系的紧密相邻的多个子域组成的一个管理单位.在DNS服务器中必须先建立区域, 然后再根据需要在区域中建立子域以及在区域或子域 中添加资源记录,才能完成其解析工作. )
a主要区域:负责在新区域的计算机上管理和维护本区域的资源记录。
b辅助区域:辅助DNS区域上的区域数据无法修改,所有数据都是复制主DNS服务器的记录。
c存根区域:只是此区域的权威名称服务器相关信息的来源。
F子域
G资源记录(资源记录是一个域名到值的绑定,它包括以下字段:域名、值、类型、分类和生命期。)在这里插入图片描述

2.4 DNS系统类型分类

2.4.1.缓存域名服务器

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

2.4.2.主域名服务器

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

2.4.3.从域名服务器

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

三、配置文件

1:主配置文件 负责 DNS全局功能 例如:日志文件位置,访问权限等
2:区域配置文件 负责构建解析区域 例如:多域名解析
3:区域数据配置文件 负责管理主机解析记录 例如:解析映射
4./etc/resolv.conf它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。
resolv.conf的关键字主要有四个,分别是:
nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序

四、实验

实验环境

centos7.6操作系统,VMware虚拟机

实验目的

了解正向解析、方向解析、主从DNS服务器、以及分离解析

实验步骤

正向解析

1.关闭核心防护,清空防火墙缓存
在这里插入图片描述
2.安装BIND软件包
在这里插入图片描述
3.查看软件安装目录在这里插入图片描述
4.修改主配置文件,保存退出
在这里插入图片描述在这里插入图片描述
5.修改区域配置文件,保存并退出在这里插入图片描述在这里插入图片描述
6.修改区域数据配置文件,保存退出
注意:locakhost文件的属主和属组不一样在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
7.将本机IP放入DNS客户机配置文件
在这里插入图片描述
8.启动服务
在这里插入图片描述
9.解析地址
在这里插入图片描述
9.查看端口服务信息在这里插入图片描述
10、查看udp端口信息在这里插入图片描述



正向解析
setenforce 0
iptables -F
vim /etc/named.conf
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 named]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
[root@localhost named]# cd /var/named/
[root@localhost named]# ls
data     kgc.com.local  named.ca     named.localhost  slaves
dynamic  kgc.com.zone   named.empty  named.loopback
[root@localhost named]# cp -p named.localhost kgc.com.zone
[root@localhost named]# vim kgc.com.zone
IN MX     5            mail.kgc.com
mail    IN A           192.168.88.88
www  IN  A           192.168.66.66
smtp  IN CNAME   mail
*        IN  A            6.6.6.6
:wq
[root@localhost named]#systemctl start named
[root@localhost named]#echo "nameserver 192.168.220.110" > /etc/resolv.conf
host www.kgc.com
host mail.kgc.com
host smtp.kgc.com
host abc.kgc.com
反向解析

vim /etc/named.conf
options {
        listen-on port 53 { any; };
        allow-query     { any; };

vim /etc/named.rfc1912.zones
zone "66.168.192.in-addr.arpa" IN {
        type master;
        file "kgc.com.local";
        allow-update { none; };
};           

cd  /var/named
cp -p kgc.com.zone kgc.com.local
vim kgc.com.local
vim kgc.com.local
$TTL 1D
@       IN SOA  kgc.com. admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kgc.com.
        A       127.0.0.1
66 IN   PTR     www.kgc.com.
~                                                   
[root@promote named]# host 192.168.66.66
66.66.168.192.in-addr.arpa domain name pointer www.kgc.com.
主从DNS服务器
主服务器192.168.220.110
[root@promote named]# vim /etc/named.rfc1912.zones 
[root@localhost named]# vim /etc/named.rfc1912.zones 
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-tansfer { 192.168.220.100; };
};
:wq

从服务器192.168.220.100
[root@localhost ~]# ping 192.168.220.110
PING 192.168.220.110 (192.168.220.110) 56(84) bytes of data.
64 bytes from 192.168.220.110: icmp_seq=1 ttl=64 time=1.04 ms
64 bytes from 192.168.220.110: icmp_seq=2 ttl=64 time=0.506 ms

[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# ls slaves/
slaves文件夹是空的,当配置好主从服务器时,那么slaves文件夹里面会自动备份文件

[root@localhost named]# vim /etc/named.conf
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; };
:wq

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

[root@localhost named]# systemctl start named
[root@localhost named]# ls slaves/
kgc.com.zone

[root@localhost named]# echo "nameserver 192.168.220.100" > /etc/resolv.conf
[root@localhost named]# host www.kgc.com
www.kgc.com has address 192.168.66.66
[root@localhost named]# host mail.kgc.com
mail.kgc.com has address 192.168.88.88
[root@localhost named]# host.smtp.kgc.com
[root@localhost named]# host smtp.kgc.com
smtp.kgc.com is an alias for mail.kgc.com.
mail.kgc.com has address 192.168.88.88
[root@localhost named]# host aaa.kgc.com
aaa.kgc.com has address 6.6.6.6

主
[root@promote named]# vim kgc.com.zone 
ftp  IN A       192.168.77.77 加了一个ftp
[root@promote named]# systemctl restart named
[root@promote named]# host ftp.kgc.com
ftp.kgc.com has address 192.168.77.77

从

[root@localhost named]# systemctl reload named.service 
[root@localhost named]# host ftp.kgc.com
ftp.kgc.com has address 6.6.6.6   不会自动刷新slaves里面的文件,只有删掉slaves里面文件才会自动备份新的主服务器的文件

[root@localhost named]# ls slaves/
kgc.com.zone
[root@localhost named]# rm -rf slaves/kgc.com.zone 
[root@localhost named]# ls slaves/
[root@localhost named]# systemctl restart named
[root@localhost named]# ls slaves/
kgc.com.zone

[root@localhost named]# host ftp.kgc.com
ftp.kgc.com has address 192.168.77.77
要先进行删除原文件,再进行重载自动备份
分离解析

#表示分步

服务器1
[root@promote ~]# yum install bind -y 安装bind
添加网卡然后改为仅主机模式
[root@promote ~]# ifconfig 
#
[root@promote ~]# cd /etc/sysconfig/network-scripts/
[root@promote network-scripts]# vim ifcfg-ens33
IPADDR=12.0.0.1
NETMASK=255.255.255.0
:wq
#
[root@promote network-scripts]# cp ifcfg-ens33 ifcfg-ens36
#
[root@promote network-scripts]# vim ifcfg-ens36
NAME=ens36
DEVICE=ens36
IPADDR=192.168.100.1
NETMASK=255.255.255.0
:wq
#
[root@promote network-scripts]# service network restart 
Restarting network (via systemctl):                        [  确定  ]
#
[root@promote network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.1  netmask 255.255.255.0  broadcast 12.0.0.255
        inet6 fe80::7fc5:140b:bf58:bfb8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:60:ee:f7  txqueuelen 1000  (Ethernet)
        RX packets 7288  bytes 10271965 (9.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1547  bytes 111202 (108.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.1  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::ccd0:5ade:28c5:20c3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:60:ee:01  txqueuelen 1000  (Ethernet)
        RX packets 58  bytes 5896 (5.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 117  bytes 18167 (17.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#
改win10仅主机,配置ip地址和子网掩码网关,dns
12.0.0.12
255.0.0.1
12.0.0.1
12.0.0.1
ping 12.0.0.1
C:\Users\zhouwei>ping 12.0.0.1
正在 Ping 12.0.0.1 具有 32 字节的数据:
来自 12.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 12.0.0.1 的回复: 字节=32 时间<1ms TTL=64
#
第二台Linux主机设置为仅主机模式
[root@promote ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=192.168.100.1
:wq
#
[root@promote ~]# service network restart 
Restarting network (via systemctl):                        [  确定  ]
#
[root@promote ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.100  netmask 255.255.255.0  broadcast 192.168.100.255

#
[root@promote ~]# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.508 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=64 time=0.308 ms
#
第一台Linux主机配置路由表
[root@promote network-scripts]# vim /etc/sysctl.conf 
net.ipv4.ip_forwald=1   开启路由功能
:wq
[root@localhost ~]# sysctl -p      使它立即生效
net.ipv4.ip_forward = 1
#
win10
C:\Users\zhouwei>ping 192.168.100.1
正在 Ping 192.168.100.1 具有 32 字节的数据:
来自 192.168.100.1 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.100.1 的回复: 字节=32 时间<1ms TTL=64
#
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
12.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.100.0   0.0.0.0         255.255.255.0   U     101    0        0 ens36
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
#
[root@localhost network-scripts]# vim /etc/named.conf 
options {
        listen-on port 53 { any; };
        allow-query     { any; };
:wq

#
[root@localhost network-scripts]# vim /etc/named.rfc1912.zones 
view "lan" {
   match-clients { 192.168.100.0/24; };
   zone "kgc.com" IN {
        type master;
        file "kgc.com.lan";
   };
    zone "." IN {
        type hint;
        file "named.ca";
   };
};


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

#
[root@localhost network-scripts]# cd /var/named/
[root@localhost named]# ls
ata  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
#
[root@localhost named]# cp -p named.localhost kgc.com.lan
[root@localhost named]# vim kgc.com.lan 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.100.1
www IN  A       192.168.88.88
#
[root@localhost named]# cp -p kgc.com.lan kgc.com.wan
[root@localhost named]# vim kgc.com.wan 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       12.0.0.1
www IN  A       12.0.0.1
#
[root@localhost named]# systemctl start named
#
[root@localhost named]# echo "nameserver 12.0.0.1" > /etc/resolv.conf
[root@localhost named]# host www.kgc.com
www.kgc.com has address 12.0.0.1
[root@localhost named]# echo "nameserver 192.168.100.1" > /etc/resolv.conf
[root@localhost named]# host www.kgc.com
www.kgc.com has address 192.168.88.88
#
[root@localhost named]# systemctl stop firewalld.service关闭防火墙,win10才会识别到DNS解析地址,如果不关识别不到
#
win10  C:\Users\zhouwei>nslookup www.kgc.com
C:\Users\zhouwei>nslookup www.kgc.com
服务器:  UnKnown
Address:  12.0.0.1
名称:    www.kgc.com
Address:  12.0.0.1

总结:要打开第一台计算机的named服务,然后关闭防火墙,一定要关闭防火墙,不然外部PC访问不到该服务器的DNS。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值