RHCE Day3 DNS服务器

DNS服务器

1、概述

域名解析服务器:本质就是一个翻译机,url地址翻译成机器可以路由查找ip地址

  • 产生原因: ip记不住,通过域名可以给对应的设备或集群的功能做出概括。
  • 连接方式: 通过互联网,internet 进行链接

2、域名

( 1 )域名划分

( 2 )顶级域名划分:

  • 根据性质划分:com企业 org 组织 gov政府 edu教育
  • 根据国家划分:cn中国 jp日本 uk 英国 us美国
  • 通用域名划分:net,xyz,top,online,com.cn

( 3 )当我们在互联网中获取www.bilibli.com域名解析服务,经过一下步骤:

  1. 问询跟服务器管理.com的服务器是谁
  2. 问管.com的服务器谁管理baidu.com的
  3. 问管baidu.com的服务器谁管理www.baidu.com的

( 4 )服务器

  • 根域名服务器 : 根域名服务器负责告诉用户哪些服务器 管理 .com .xyz .net ...
  • 顶级域名服务器 : 管理相应的顶级域名下知道xxx.com是哪他台服务器管理
  • 权威域名服务器: 管理完整域名的解析。
  • **本地域名服务器:**114.114.114.114 8.8.8.8 235.3.3.4

3、dns解析过程

4、搭建DNS域名解析服务器

( 1 )BIND介绍

BIND(Berkeley Internet Name Domain)是全球应用最广泛的 DNS(域名系统)服务软件,具备以下核心特点:

  • 功能完整性:支持主从服务器、递归解析、DNSSEC(域名系统安全扩展)等企业级 DNS 功能,可满足从个人实验到大型网络的域名解析需求。
  • 开源免费:基于开源协议发布,被 Linux、Unix 等主流操作系统广泛集成,是构建自建 DNS 服务的事实标准。
  • 架构组成:
    • 核心守护进程named(Berkeley Internet Name Domain 的简称),负责处理 DNS 查询请求。
    • 配置文件体系:/etc/named.conf(主配置文件)、区域文件(如openlab.com.zone,存储域名与 IP 的映射记录)。
  • 应用场景 :常用于企业内部网络的域名解析(如将bbs.openlab.com解析到内网服务器)、互联网服务提供商的公共 DNS 服务等场景。

( 2 )安装

shell 复制代码
dnf install bind -y

( 3 )配置文件

①/etc/named.conf

dns服务的主配置文件,里面是关于dns全局配置信息

shell 复制代码
# dns服务器全局设置
options {
        listen-on port 53 { 127.0.0.1; }; #重要: ipv4监听地址
        listen-on-v6 port 53 { ::1; }; # ipv6 监听地址
        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"; # 内存分析文件
        secroots-file   "/var/named/data/named.secroots"; # 安全根域名文件
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { 192.168.10.200; };# 重要:决定那些地址可以来获取dns解析服务
        
        recursion yes; # 重要 yes:递归查询 no:迭代查询

        dnssec-validation yes; # 是否开启加密传输,使用默认即可

        managed-keys-directory "/var/named/dynamic"; # dns密钥保存位置
        geoip-directory "/usr/share/GeoIP";

        pid-file "/run/named/named.pid"; # pid保存在该文件中
        session-keyfile "/run/named/session.key"; # 通信密钥
        }
        
       logging {
        channel default_debug {
                file "data/named.run"; #日志保存的文件
                severity dynamic; # 日志级别
        };
        
        
};

②/etc/named.rfc1912.zones : 区域信息的配置文件

③/var/named 目录

shell 复制代码
[root@server named]# ls
data  dynamic  named.ca  named.empty  
named.localhost # 正向解析的模版配置文件
named.loopback  # 反向解析的模版配置文件
slaves

④named.localhost模版说明

shell 复制代码
$TTL 1D # 生存时间
@       IN SOA  @ rname.invalid. (
                                        0       ; serial # 序列号
                                        1D      ; refresh # 刷新时间1天
                                        1H      ; retry # 重新连接间隔 1小时
                                        1W      ; expire # 过期 1 周
                                        3H )    ; minimum # 缓存3小时
#    权威域名解析服务器
        NS      ns.xxxx.com
mail.xxx.com        A       127.0.0.1
image.xxx.com    		AAAA    ::1
        
# @ 当前的区域名称 xxx.com
# IN internet
# SOA 开始的授权记录
# rname.invalid. :管理员的邮箱正向域名解析服务器配置

实验

1、配置正向解析服务器

shell 复制代码
服务端配置
#1、安装 BIND 服务
[root@server ~]# dnf install bind -y
#2、修改主配置文件/etc/named.conf
[root@server ~]# vim /etc/named.conf
-------------------------------------------------------------------------
options {
    listen-on port 53 { any; };  
    .....
    allow-query     { 192.168.10.200; }; 
};
-------------------------------------------------------------------------#3、修改区域配置文件/etc/named.rfc1912.zones
[root@server ~]# vim /etc/named.rfc1912.zones
在此文件中增加以下内容
------------------------------------------------------------------------
zone "openlab.com" IN {
    type master;  // 主服务器
    file "openlab.com.zone";  // 区域数据文件名
    allow-update { none; };  // 不允许动态更新
};
------------------------------------------------------------------------
#4、创建区域数据文件/var/named/openlab.com.zone
[root@server ~]# cd /var/named
[root@server named]# cp -a named.localhost openlab.com.zone
[root@server named]# vim openlab.com.zone
在此文件中添加以下内容(❗所有域名后需加.):
------------------------------------------------------------------------
$TTL 1D  ; 生存时间1天
@       IN SOA  ns.openlab.com.  admin.openlab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   ns.openlab.com.  
ns      IN A    192.168.10.100   
ftp     IN A    192.168.10.101  
bbs     IN A    192.168.10.102  
image   IN A    192.168.10.103  
-------------------------------------------------------------------------
#5、启动并启用 BIND 服务
[root@server named]#systemctl start named
[root@server named]#systemctl enable named

#########################################################################

客户端配置
#1.编辑/etc/resolv.conf
[root@clinet ~]# vim /etc/resolv.conf
在此文件中添加以下内容
-------------------------------------------------------------------------
nameserver 192.168.10.100  # DNS服务器IP(即服务端IP)
-------------------------------------------------------------------------
#2、检验
[root@clinet ~]# nslookup ftp.openlab.com
Server:		192.168.10.100
Address:	192.168.10.100#53
Name:	ftp.openlab.com
Address: 192.168.10.101
[root@clinet ~]# nslookup bbs.openlab.com
Server:		192.168.10.100
Address:	192.168.10.100#53
Name:	bbs.openlab.com
Address: 192.168.10.102
[root@clinet ~]# nslookup image.openlab.com
Server:		192.168.10.100
Address:	192.168.10.100#53
Name:	image.openlab.com
Address: 192.168.10.103

2、配置反向解析服务器

shell 复制代码
服务端
#1. 修改主配置文件 让named服务可以监听任意地址服务任意ip
[root@server ~]#cd /var/named
[root@server named]# vim /etc/named.conf
-------------------------------------------------------------
listen-on port 53 { any; };
allow-query     { any; };
-------------------------------------------------------------
#2.添加反向解析声明 到named.rfc1912.zones
[root@server named]# vim /etc/named.rfc1912.zones
-------------------------------------------------------------
zone "10.168.192.in-addr.arpa" IN { #双引号内的反向解析的区域名
        type master;
        file "192.168.10.arpa";#反向解析的文件/var/named/172.25.254.arpa
        allow-update { none; };
};
-------------------------------------------------------------
#3.创建 102.168.10.arpa
[root@server named]# cp -a named.loopback 192.168.10.arpa
[root@server named]# vim 192.168.10.arpa
--------------------------------------------------------------
$TTL 1D
@       IN SOA  ns.openlab.com. 123.qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.  #声明域名解析服务地址
openlab.com.  A   192.168.10.100  # 声明该区域的ip是什么
101          PTR  www.openlab.com.
102          PTR  bbs.openlab.com.
103          PTR  image.openlab.com.
104          PTR  timeline.openlab.com.
--------------------------------------------------------------
#4.重启named服务 
[root@server named]#systemctl restart named

############################################################################

客户端
#1.配置 自己的dns服务到网络中
[root@clinet ~]# nmcli connection modify ens160 ipv4.dns 192.168.10.100
[root@clinet ~]# nmcli connection up ens160
#2.验证 nslookup
[root@clinet ~]# nslookup 192.168.10.101
101.10.168.192.in-addr.arpa	name = www.openlab.com.
[root@clinet ~]# nslookup 192.168.10.102
102.10.168.192.in-addr.arpa	name = bbs.openlab.com.

3、主从服务器配置

shell 复制代码
配置主服务器 

#1、修改声明文件,将正向和反向声明做转发处理,转发给从服务器
[root@server ~]# vim /etc/named.rfc1912.zones
----------------------------------------------------------------------------
zone "openlab.com" IN {
        type master;
        file "openlab.com.zone";
        allow-transfer{192.168.10.101;}; # 允许转发给从服务器
};
...........................................................................
zone "254.25.172.in-addr.arpa" IN {
        type master;
        file "192.168.10.arpa";
        allow-transfer { 192.168.10.101; };
};
----------------------------------------------------------------------------

###########################################################################

配置从服务器

#1、关闭防火墙
[root@server002 ~]#systemctl disable --now firewalld
[root@server002 ~]#setenforce 0
#2、修改/etc/named.conf
[root@server002 ~]#vim /etc/named.conf
----------------------------------------------------------------------------
listen-on port 53 { any; };
allow-query     { any; };
----------------------------------------------------------------------------
#3、修改/etc/named.rfc1912.zones
[root@server002 ~]#vim /etc/named.rfc19212.zones
----------------------------------------------------------------------------
zone "openlab.com" IN {
        type slave;  # 身份为从服务器
        masters {192.168.10.100;}; # 从服务器的主为 172.25.254.100
        file "slaves/openlab.com.zone"; # 从服务器的区域数据文件保存位置
};
...........................................................................
zone "254.25.172.in-addr.arpa" IN {
        type slave;
        masters {192.168.10.100;};
        file "slaves/172.25.254.arpa";
};
----------------------------------------------------------------------------

主从服务器都重启服务

systemctl restart named

############################################################################

配置客户端

#1、将主从ip写到客户端的dns中,然后使用nslookup 进行正反向解析测试
[root@clinet ~]# nmcli connection modify ens160 +ipv4.dns 192.168.10.101
[root@clinet ~]# nmcli connection up ens160
#2、检验
#①主从都在线时 使用主进行解析
[root@clinet ~]# nslookup bbs.openlab.com
Server:		192.168.10.100
Address:	192.168.10.100#53
Name:	bbs.openlab.com
Address: 192.168.10.102

#②当将主强制下线后 从进行解析
[root@clinet ~]# nslookup bbs.openlab.com
Server:		192.168.10.101
Address:	192.168.10.101#53
Name:	bbs.openlab.com
Address: 192.168.10.102
相关推荐
cws2004012 分钟前
HeidiSQL 使用操作说明书
运维·数据库·windows·mysql·heidisql
prettyxian8 分钟前
【linux】进程概念(1)PCB、系统调用与 proc 目录全解析
linux·运维·服务器
YJlio8 分钟前
Streams 学习笔记(12.2):看见 NTFS 隐藏的备用数据流(ADS)
服务器·笔记·学习
霜雪i15 分钟前
Linux MD5
linux·服务器
乾元16 分钟前
用 AI 做联动:当应用层出现问题,网络如何被“自动拉入决策回路”
运维·开发语言·网络·人工智能·ci/cd·自动化
youxiao_9021 分钟前
Docker 容器(一)
运维·docker·容器
小尧嵌入式29 分钟前
Linux进程线程与进程间通信
linux·运维·服务器·c语言·开发语言·数据结构·microsoft
Arvin62738 分钟前
docker /var/lib/docker/overlay2磁盘满的处理方法
运维·docker·容器
Bruce_Liuxiaowei41 分钟前
网站敏感文件_目录大全(分类记忆+风险标注)
运维·网络·网络协议·http·网络安全·https
csdn_aspnet1 小时前
MobaXterm 运维实战、技巧与自动化
运维·自动化·mobaxterm