运维 之 DNS域名解析

前言

我们每天打开的网站,他是如何来解析,并且我们怎么能得到网站的内容反馈的界面呢?那什么是DNS呢(DNS(DomainNameservice,域名服务,主要用于因特网上作为域名和IP地址相互映射)那今天我们将来学习DNS服务器的构建,DNS服务可以算是Linux服务中比较难的一个了,尤其是配置文件书写,少一个字符都有可能造成错误。

DNS解析过程

  1. 客户机访问某个网站,请求域名解析,首先查找本地HOSTS文件,如果有对应域名、IP记录,直接返回给客户机。如果没有则将该请求发送给本地的域名服务器;
  2. 本地DNS服务器能够解析客户端发来的请求,服务器直接将答案返回给客户机;
  3. 本地DNS服务器不能解析客户端发来的请求,分为两种解析方法:
  • 采用递归解析:本地DNS服务器向根域名服务器发出请求,根域名服务器对本地域名服务的请求进行解析,得到记录再给本地DNS服务器,本地DNS服务器将记录缓存,并将记录返给客户机;
  • 采用迭代解析:本地DNS服务器向根域名服务器发出请求,根域名服务器返回给本地域名服务器一个能够解析请求的根的下一级域名服务器的地址,本地域名服务器再向根返回的IP地址发出请求,最终得到域名解析记录。

下面开始搭建DNS服务器 for Centos 7:

安装bind

复制代码
yum install bind* -y

编辑配置文件

复制代码
vim /etc/named.conf


options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        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";
        allow-query { any; };
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /*Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};


zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

定义根和自定义区域

复制代码
vim /etc/named.rfc1912.zones


#add named by wyh
zone "wyh.com" IN {
        type master;
        file "wyh.com.zone";
        allow-update { none; };
};
zone "188.92.182.in-addr.arpa" IN {
        type master;
        file "wyh.com.arpa";
        allow-update { none; };
};

编辑正向解析文件

复制代码
vim /var/named/wyh.com.zone


$TTL 86400
@    IN SOA  ns.wyh.com. root (
                     42    ; serial
                     3H    ; refresh
                     15M   ; retry
                     1W    ; expire
                     1D)   ; minimum
@            IN NS    ns.wyh.com.
ns            IN A    182.92.188.163
www          IN A    182.92.188.163
@            IN MX 10    mail.wyh.com.
mail         IN A    182.92.188.163

编辑反向解析文件

复制代码
vim /var/named/wyh.com.arpa


$TTL 86400
@    IN SOA    ns.wyh.com. root (
                        42    ; serial
                        3H    ; refresh
                        15M   ; retry
                        1W    ; expire
                        1D)    ; minimum
@    IN NS    ns.wyh.com.
163    IN PTR    mail.wyh.com.
163    IN PTR    ns.wyh.com.
163    IN PTR    www.wyh.com.

测试

  • 找一台客户端,PC或者服务器,将客户端的DNS修改为服务器端DNS,访问解析的域名能正常访问即证明DNS服务器搭建成功。

来自: 运维 之 DNS域名解析https://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247487525&idx=1&sn=7e6c4639c2fbe640b3a883a76b48ca98&chksm=c3159869f462117f2714696147297b9f4e669c46c290a06e8c9440a71165e29de80c01d7738d&token=355315523&lang=zh_CN#rd

相关推荐
MXsoft6185 分钟前
**运维标准化建设:让杂乱无章的工作变成可复制****流程**
运维
maosheng114615 分钟前
第二次作业(RHCE(https+http))
运维
杨云龙UP21 分钟前
MySQL主库高峰期备份引发504故障:从库手动切换接管 + 主从恢复同步 + Docker版DB2重启实战_2026-05-17
linux·运维·数据库·mysql·docker·容器·centos
曾帅16831 分钟前
linux ubuntu 挂载硬盘
linux·运维·ubuntu
摸鱼仙人~31 分钟前
Learn Git Branching:提交的技巧
git
Yjiokm39 分钟前
proot-distro 安装指定版本 ubuntu
linux·运维·ubuntu
stereohomology42 分钟前
DeepSeek对我首个Github开源项目mcp的点评
开源·github·mcp
lifewange1 小时前
ls -ltr
linux·运维·服务器
星浩AI1 小时前
如何为 AI 编码工具构建持久化记忆:用 agentmemory 形成知识复利
github·claude·vibecoding
stereohomology1 小时前
Qwen36plus对我首个开源在Github的mcp的点评和建议
开源·github