Linux中配置DNS全过程

 更新时间:2025年12月05日 09:19:25   作者:半梦半醒*  
本文详细介绍了DNS(域名系统)的工作原理,包括域名解析的定义、作用以及解析方式,同时,文章还讲解了如何搭建DNS服务,包括配置主DNS和辅助DNS,通过配置DNS,可以将域名映射到IP地址,以便于人们记忆和访问互联网上的资源

一、什么是DNS

DNS (Domain Name System) 是域名服务 ,它是由解析器和域名服务器组成的。

域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。(将网址解析成IP,或者将IP解析成网址)

将域名映射为IP地址的过程就称为"域名解析"。

在Internet上域名与IP地址之间是一对一(或者多对一)的,也可采用DNS轮循实现一对多,域名虽然便于人们记忆,

但机器之间只认IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

网址有一个专有名词:完全合格域名

完全合格域名 = 主机名称 + 域名(根域 + 顶级域 + 二级域)

根域:.

顶级域:分为组织域和国家或地区域。

  • 组织域采用3个字符代号,如.com .edu .gov
  • 国家或地区域,采用两个字符代号,如.cn .jp

二级域:二级域注册到个人、组织或者公司名称,如baidu、taobao等

主机名称:主机名称处于域名空间的最底层,主机名与上述各级域名结合构成FQND(完全合格域名)

每个域用一个点号“.”分开

以www.baidu.com为例:

  • www:主机名称
  • baidu.com:域名
  • 根域:日常生活中一般省略(www.baidu.com.)最后的.表示根域,配置DNS时需要带上
  • 顶级域:.com
  • 二级域:baidu

一个完全合格域名只能对应一个IP,一个IP可以对应多个完全合格域名。

二、DNS查询方式(两种)

  • 递归查询:DNS客户端与DNS服务器之间
  • 迭代查询:DNS服务器与DNS服务器之间
  • 访问一个网站是既有递归又有迭代

三、DNS解析方式

  • 正向解析:FQDN(完全合格域名)----------> IP
  • 反向解析:IP -----------> FQDN(完全合格域名)

四、DNS服务搭建

搭建DNS服务有两种方式:

  • 1.bind
  • 2.unbound

DNS服务器类型:

  • 主DNS服务器(条目或者称为映射信息是手写进主DNS当中)
  • 辅助DNS服务器(用来做备份)
  • unbound 不能提供辅助DNS服务器
  • 所以一般用bind进行部署

1、在没有DNS之前,怎样解决

/etc/hosts 本地解析配置文件

  • 主机1:192.168.100.10
  • 主机2:192.168.100.20

正常情况下:两台主机相互ping IP地址是可以ping通的,但是ping不通主机名

主机1:

[root@stw ~]# ping 192.168.100.20
PING 192.168.100.20 (192.168.100.20) 56(84) bytes of data.
64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.801 ms
64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=1.06 ms
^C
--- 192.168.100.20 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.801/0.933/1.065/0.132 ms

[root@stw ~]# ping stw2.example.com
ping: stw2.example.com: Name or service not known

在本地解析文件中加上对方的IP地址以及对应映射的主机名

[root@stw ~]# vim /etc/hosts
[root@stw ~]# ping stw2.example.com
PING stw2.example.com (192.168.100.20) 56(84) bytes of data.
64 bytes from stw2.example.com (192.168.100.20): icmp_seq=1 ttl=64 time=0.561 ms
64 bytes from stw2.example.com (192.168.100.20): icmp_seq=2 ttl=64 time=8.10 ms
^C
--- stw2.example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.561/4.332/8.103/3.771 ms

注意:只在主机1中添加,则只有主机1能ping通主机2,主机2仍然ping不通主机1,想要主机2也ping通主机1,需要在主机2的配置文件中中也写入主机1的IP地址与主机名的映射关系。

2、配置主DNS

(1)配置yum仓库,安装软件包

[root@stw ~]# cd /etc/yum.repos.d/
[root@stw yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@stw yum.repos.d]# rm -rf *
[root@stw yum.repos.d]# ls
[root@stw yum.repos.d]# vim server.repo
[root@stw yum.repos.d]# cat server.repo
[aa]
name=aa1
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@stw yum.repos.d]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@stw yum.repos.d]# yum -y install bind bind-chroot
  • /etc/named.conf 映射的DNS主配置文件
  • /var/named 解析文件的目录
  • DNS默认侦听端口:53(指自己的地址,一般作为DNS服务器的话:any)
  • /var/named/chroot/etc/named.rfc1912.zones 记录DNS正向和反向的全局解析配置文件

作用:

  • 1、确定DNS类型 :主DNS(master) 辅助DNS(slave)
  • 2、定义 域与网段的映射关系
  • 3、告知具体的解析条目的文件名在哪里:正向解析数据库 反向解析数据库

(2)编辑主配置文件/etc/named.conf

[root@stw ~]# vim /etc/named.conf 

(3)编辑全局配置文件(三个地方需要更改)

更改对应的域名和映射的网段,服务类型:master(主DNS),正向解析与反向解析的文件名

[root@stw ~]# vim /etc/named.rfc1912.zones

把文件复制到对应目录下

[root@stw ~]# cd /var/named/
[root@stw named]# cp -p named.localhost stw.com
[root@stw named]# cp -p named.empty com.stw
[root@stw named]# ls
chroot  com.stw  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves  stw.com

TTL 1D 缓存周期

SOA起始授权机构(后面的@改成服务器的主机名)

  • NS:后面接DNS的服务器
  • 主机记录:A

(4)编辑正向解析文件

[root@stw ~]# cd /var/named
[root@stw named]# ls
chroot  com.stw  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves  stw.com
[root@stw named]# vim stw.com

(5)编辑反向解析的文件

[root@stw named]# vim com.stw

(6)重启服务,关掉防火墙,更改selinux

[root@stw named]# systemctl restart named
[root@stw named]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@stw named]# systemctl stop firewalld.service 
[root@stw named]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@stw named]# getenforce 
Enforcing
[root@stw named]# setenforce 0
[root@stw named]# getenforce 
Permissive

(7)客户端更改网卡的DNS(指向服务器端),重启服务,查看是否解析

[root@stw2 ~]# cd /etc/sysconfig/network-scripts/
[root@stw2 network-scripts]# vim ifcfg-ens33
[root@stw2 network-scripts]# systemctl restart network
[root@stw2 network-scripts]# nslookup
> stw.example.com           //正向解析
Server:		192.168.100.10
Address:	192.168.100.10#53

Name:	stw.example.com
Address: 192.168.100.10
> 192.168.100.10    //反向解析
Server:		192.168.100.10
Address:	192.168.100.10#53

10.100.168.192.in-addr.arpa	name = stw.example.com.
> 

3、配置辅助DNS

(1)配置yum仓库,安装软件包(略)

(2)编辑主配置文件/etc/named.conf

[root@stw2 ~]# vim /etc/named.conf

(3)编辑全局配置文件(四个地方需要更改)

更改对应的域名和映射的网段,服务类型:slave(辅助DNS),正向解析与反向解析的文件名,定义主DNS地址(告诉辅助DNS主DNS的地址)

[root@stw2 ~]# vim /etc/named.rfc1912.zones 

辅助DNS中,正向解析文件和反向解析文件不需要编辑

(4)重启服务,关掉防火墙,更改selinux

[root@stw2 ~]# systemctl stop firewalld.service 
[root@stw2 ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@stw2 ~]# setenforce 0
[root@stw2 ~]# getenforce 
Permissive
[root@stw2 ~]# vim /etc/selinux/config 
[root@stw2 ~]# systemctl restart named
[root@stw2 ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@stw2 ~]# cd /var/named/
[root@stw2 named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@stw2 named]# cd slaves
[root@stw2 slaves]# ls
com.stw  stw.com

(5)更改网卡配置文件

[root@stw2 ~]# cd /etc/sysconfig/network-scripts/
[root@stw2 network-scripts]# vim ifcfg-ens33
[root@stw2 network-scripts]# cd
[root@stw2 ~]# systemctl restart network

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • apache负载均衡的安装和实现方法

    apache负载均衡的安装和实现方法

    在负载均衡技术中,硬件设备是比较昂贵的,对于负载均衡的学习者如果不是在企业中应用或者是学员中学习,很少有机会能碰到实际操作的训练。所以,很多朋友都会选择软件方面的设置进行研究。现在我们就来介绍一下再Apache下的Tomcat负载均衡的一些使用问题
    2012-10-10
  • linux中的相对路径的表示方法

    linux中的相对路径的表示方法

    在本篇文章里小编给各位分享的是关于linux中的相对路径的表示方法,需要的朋友们可以学习下。
    2020-03-03
  • 如何禁止网站内容被搜索引擎收录的几种方法讲解

    如何禁止网站内容被搜索引擎收录的几种方法讲解

    今天小编就为大家分享一篇关于如何禁止网站内容被搜索引擎收录的几种方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • linux中的系统挂载(卸载)U盘(文件系统)

    linux中的系统挂载(卸载)U盘(文件系统)

    这篇文章主要介绍了linux中的系统挂载(卸载)U盘(文件系统),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Linux文件重定向的高级技巧与实践

    Linux文件重定向的高级技巧与实践

    在Linux中,文件重定向是指将命令的输入和输出重定向到文件或其他设备,而不是默认的标准输入(stdin)和标准输出(stdout),它是通过不同的符号来实现的,本文给大家介绍了Linux文件重定向的高级技巧与实践,需要的朋友可以参考下
    2025-07-07
  • 详解Linux下挂载新硬盘方法

    详解Linux下挂载新硬盘方法

    这篇文章主要介绍了详解Linux下挂载新硬盘方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 在Linux系统上安装Spring boot应用的教程详解

    在Linux系统上安装Spring boot应用的教程详解

    这篇文章主要介绍了在Linux系统上安装Spring boot应用,本文通过实例文字相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • Linux查看系统的上次重启时间的几种方法小结

    Linux查看系统的上次重启时间的几种方法小结

    这篇文章主要介绍了Linux查看系统的上次重启时间的几种方法,通过这些方法,你可以轻松查看 Linux 系统的重启时间,这里列出了系统的每次重启时间,最新的重启记录在最上面,这条命令会显示本次启动的内核日志,包括系统启动的时间,需要的朋友可以参考下
    2025-10-10
  • Git 删除远程服务器文件同时保留本地文件实例详解

    Git 删除远程服务器文件同时保留本地文件实例详解

    这篇文章主要介绍了Git 删除远程服务器文件同时保留本地文件实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • Linux下删除SVN版本库的详细过程

    Linux下删除SVN版本库的详细过程

    在Linux系统中,删除Subversion(SVN)版本库是一个相对简单的过程,然而,在执行删除操作之前,确保你已经备份了所有重要的数据,因为删除操作是不可逆的,本文将指导你如何安全地删除SVN版本库,需要的朋友可以参考下
    2025-02-02

最新评论