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
相关推荐
半梦半醒*2 小时前
k8s——service详解
linux·运维·docker·容器·kubernetes
浪潮IT馆2 小时前
Alibaba Cloud Linux 3 安装 SVN
linux·运维·svn
Fanmeang2 小时前
华为路由器核心技术详解:数据包的智能导航系统
运维·网络·华为·路由器·路由表·路由协议
How_doyou_do3 小时前
模态框的两种管理思路
java·服务器·前端
vvw&3 小时前
如何在 Ubuntu 上安装 PostgreSQL
linux·运维·服务器·数据库·ubuntu·postgresql
徒 花3 小时前
Nginx
运维·nginx·云原生
程序猿追4 小时前
异腾910B NPU实战:vLLM模型深度测评与部署指南
运维·服务器·人工智能·机器学习·架构
看我干嘛!4 小时前
GME 和MGRE综合实验
运维·服务器·网络
x_lrong4 小时前
Linux虚拟机配置jupyter环境并在宿主机访问
linux·运维·笔记·jupyter·虚拟机