从零开始的云计算生活——第十九天,勤勤恳恳,DNS服务

目录

一.故事背景

二.DNS概述

概念

作用

监听端口

默认运行用户

三. 完全限定域名

组成

域类型

四.DNS解析过程

客户端如何解析域名

五.域名服务器的分类

根据作用

根据应用场景

六.DNS服务器部署

七.配置主服务器单点架构

八.配置主从服务器架构

九.使用脚本配置服务器

十.总结


一.故事背景

在学习脚本之后,每天都在思考脚本的编写过程,将每次博客内容写成脚本运行,比想象中的难道大一些,不仅仅是把命令按顺序写下来,还要思考会发生的各种情况,并把问题解决,再运行纠错,最终达到想要的结果,就像在解一道谜题,很有意思,进入今天的内容。

二.DNS概述

概念

Domain Name Service,一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。

作用

正向解析:将已知的域名解析为IP地址 反向解析:将已知的IP地址解析为域名

监听端口

53/udp | 53/TCP

默认运行用户

named

三. 完全限定域名

FQDN(Fully Qualified Domain Name)

域名缩写机构类型
com商业系统
edu教育系统
gov政府机关
mil军队系统
net网管部门
org非盈利性组织
firm商业或公司
store提供购买商业的业务部门
arts以文化为主的实体
web主要活动与www有关的实体
rec以消遣娱乐活动为主的实体
inf提供信息服务的实体
组成

主机名.三级域.二级域名.顶级域名.

案例:www.baidu.com.

域类型
类型举例
根域.
顶级域cn、hk、uk、org、edu、com、mil、gov、net
二级域baidu、163、sina、sohu

四.DNS解析过程

客户端如何解析域名
  1. 本地DNS缓存

  2. 本地hosts文件,在DNS服务器诞生之前,所有的主机之间都是通过hosts文件进行的。

  3. 指向的DNS服务器IP:

递归查询:直接给出解析结果,客户机与本地DNS服务器之间的查询。(所答即所问) ​迭代查询:没有给出解析结果,本地DNS服务器与根等其他DNS服务器之间的查询。(所答非所问)

五.域名服务器的分类

根据作用

1.根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道                               所有的顶级域名服务器的域名和IP地址。 ​

2.顶级域名服务器:负责管理该顶级域名注册的二级域名。 ​

3.权限域名服务器:负责一个“区”的域名服务器。 ​

4.本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。                                  当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务                                    器。

根据应用场景

主服务器(Primary Name server) 为客户端提供域名解析的主要区域,主DNS服务器宕机,会启                                                          用从DNS服务器提供服务。

辅助服务器(Second Name Server) 主服务器DNS长期无应答,从服务器也会停止提供服务,主                                                             从区域治安的同步采用周期性检查+通知的机制,从服务器周                                                           期性地检查主服务器上地记录情况,一旦发现修改就会同步,                                                           另外主服务器上如果又数据被修改了,会立即通知从服务器更                                                           新记录。

高速缓存服务器(Cache-only server) 缓存服务器是一种不负责域名数据维护,也不负责域名解析                                                              地DNS服务类型。它将用户经常使用到的域名与IP地址解析                                                              记录保存在主机本地中,来提升下次解析的效率。

六.DNS服务器部署

安装bind包

查看安装生成的核心文件

/etc/named.conf #服务主配置文件


/etc/named.rfc1912.zones #服务主配置的额外配置文件


/var/named #区域文件数据目录


/var/named/named.ca #可信的根域名服务器,不要擅自更改


/var/named/named.empty #区域文件的模版文件


/var/named/named.localhost #区域文件的本地接口模版文件


/var/named/named.loopback #区域文件回环接口的模版文件


/var/named/slaves #从服务器的区域数据存储目录


/var/log/named.log #服务日志文件

七.配置主服务器单点架构

先将防火墙等关闭

进入/etc/named.conf中,先修改监听端口号,ipv6不使用可以注释掉,允许访问改成任意

再打开named.rfc1912.zones文件,将全部案例注释掉

选择复制正向解析文件和反向解析文件

定义一个域名和路径,反写地址段

再去/var/named 中复制两个模板(将权限也一起复制)

进入正向解析文件,内容如下:

将第二个@改成域名 ,后面是邮件地址写一个,中间五排不改动,NS指定域名服务器,A是ipv4地址解析记录,AAAA则是ipv6(用不上删除即可),在A前写主机名A后写IP,之后可以再加一个别名记录,邮件解析记录(当你解析mail时,会指向设置的ip地址,但不保证能通)

解析记录说明:
正向解析文件中:
    A:IPv4正向解析记录
    AAAA:IPV6正向解析记录
    NS:DNS服务器解析记录
    MX:邮件解析记录
    CNAME:别名解析记录
反向解析文件中:
    PTR:反向解析记录

反向解析记录先为空,然后将/etc/named.rfc1912.zones反向解析部分注释掉

成功运行named

打开另一台主机,打开/etc/resolv.conf修改内容

成功修改本机DNS

解析地址

再打开反向解析,并对应修改内容

重启服务后,监听53口,全部解析成功

当主机停止named服务时,就无法完成解析

八.配置主从服务器架构

从属服务器不需要修改域文件,先修改主文件

从服务器先下载bind,然后编辑/etc/named.conf和named.rfc1912.zones

主服务器重启named服务,然后从服务器打开服务

此时报错,发现之前文件不让更新,将这两行去掉更改结束

成功激活后,去第二台的/etc/resolv.conf加入从属的地址

此时监控会出现从属地址,关闭主服务器named服务,再次解析

依然可以解析。

九.使用脚本配置服务器

主服务器脚本配置

#!/bin/bash
#关闭防火墙
systemctl disable --now firewalld
if [ $(getenforce) != "disabled" ];then
sed -i 's/=$(getenforce)/=disabled/g' /etc/selinux/config
fi

yum install -y bind
if [ $? -ne 0 ];then
echo "请检查网络或者检查安装包名称是否正确"
fi

read -p "请输入监听端口的ip地址:" ip
sed -i "13s/.* /listen-on port 53 { ${ip}; /g"  /etc/named.conf
sed -i "21s/.* /allow-query     { any; /g"  /etc/named.conf

read -p "请书写一个域名(xxx.com):" zones
read -p "请书写ip地址的反写(例如ip为192.168.100.1,则书写100.168.192)" pi
echo "zone \"${zones}\" IN {
        type master;
        file \"${zones}.zones\";
        allow-update { none; };
};
zone \"${pi}.in-addr.arpa\" IN {
        type master;
        file \"${pi}.zones\";
        allow-update { none; };
};">/etc/named.rfc1912.zones

cp -p /var/named/named.empty /var/named/${zones}.zones
cp -p /var/named/named.empty /var/named/${pi}.zones

echo "\$TTL 3H
@       IN SOA  ${zones}.  admin.${zones}. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry1W      ; expire
                                        3H )    ; minimum
        NS      dns1.${zones}.
dns1    A       ${ip}">/var/named/${zones}.zones

a=`echo ${ip}  | cut -d"." -f4`
echo "\$TTL 3H
@       IN SOA  ${zones}.  admin.${zones}. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       NS      dns1.${zones}.
$a      PTR       ${ip}">/var/named/${pi}.zones
while :;
do
read -p "请输入想要起的域名的别名(输入0退出):" othername
if [ "$othername" == "0" ];then
echo "别名命名结束"
break
else
echo "$othername    CNAME   dns1.${zones}. ">>/var/named/${zones}.zones
echo "$a          PTR      ${othername}.${zones}.">>/var/named/${pi}.zones
fi
done

systemctl start named

运行结果和过程 

在验证的服务器上编写一个修改resolv.conf文件的脚本,然后进行验证

十.总结

配置DNS内容相对简单,上次脚本运行屡屡出错,这次虽然坎坷,但是最终达成结果,继续努力对脚本的练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值