一文看懂 Linux DNS服务器安装、配置和维护 | 收藏级干货
@[TOC](文章目录)
# 前言
DNS域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。DNS协议运行在UDP协议之上,使用端口号是53
### 一、域名解析
##### 1、域名解析介绍
域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便的访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。
域名解析也叫域名指向,说白了就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定
域名解析的作用主要就是为了便于记忆;一个域名对应一个IP地址,一个IP地址可以对应多个域名
##### 2、域名解析过程
Internet上的计算机是通过IP地址来定位的,当应用过程需要将一个主机域名映射为IP地址时,就会调用域名解析函数,解析函数将待转换的域名放在DNS请求中,以UDP报文方式发送给本地域名服务器。本地的域名服务器查找到域名后,将对应的IP地址放在应答报文中返回
##### 3、DNS域名分布式结构
①一级域名
.com #代表国际的商业组织
.net #代表国际的网络运营商
.edu #代表教育机构
.cn #代表中国
.org #代表非盈利组织
②二级域名
.net.cn #代表中国的网络运营商
.com.cn #代表中国的商业组织
.edu.cn #代表中国的教育机构
③三级域名
.sina.com.cn #具体公司域名
### 二、DNS服务介绍与搭建DNS服务器
##### 1、DNS解析的作用
正向解析
- 根据主机名称(域名)查找其对应的IP地址
- 这是最基本、最常用的功能
反向解析
- 根据IP地址查找其对应的主机名称(域名)
- 反垃圾邮件/安全防护等领域使用
##### 2、构建DNS服务器
主配置文件(设置监听地址/端口、区域数据存放位置等):/etc/named.conf
```powershell
[root@localhost ~]# yum -y remove firewalld //卸载防火墙
[root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[root@localhost ~]# cp /etc/named.conf /etc/namd.conf.bak //备份DNS主配置文件
[root@localhost ~]# vim /etc/named.conf //修改主配置文件
options {
directory "/var/named"; //指定地址库文件的位置
};
zone "baidu.cn" IN { //IN 为internet的缩写,互联网
type master; //hint根域名;master为主DNS服务器
file "baidu.cn.zone"; //地址库文件的名字,需要自己在/var/named下创建
};
```
地址库文件(定义DNS区域、类型、地址文件路径等):/var/named/
```powershell
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -p named.localhost baidu.com.zone
[root@localhost ~]# vim /var/named/baidu.com.zone
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
baidu.cn. NS localhost.baidu.cn. //nameserver,定义域名对应的名称服务器
localhost.baidu.cn. A 192.168.1.5 //A代表IPV4的正向解析记录
www.baidu.com. A 1.2.3.4
ftp.tedu.cn. A 5.6.7.8
[root@localhost ~]# systemctl restart named //重启服务
[root@localhost ~]# systemctl enable named //设置开机自启
```
##### 3、多区域DNS服务
```powershell
[root@localhost ~]# vim /etc/named.conf //修改主配置文件
zone "qq.cn" IN {
type master; //根域名,master主DNS服务器
file "qq.cn.zone"; #地址库文件的名字,需要自己在/var/named下去创建
};
zone "baidu.cn" IN {
type master;
file "baidu.cn.zone";
};
[root@localhost ~]# vim /var/named/baidu.com.zone
...
baidu.com. NS C
C A 192.168.1.2
www A 1.2.3.4
[root@localhost ~]# vim /var/named/qq.cn.zone
qq.cn. NS C
C A 192.168.1.3
ss A 5.6.7.8
[root@localhost ~]# systemctl restart named //重启服务
[root@localhost ~]# systemctl enable named //设置开机自启
```