【Linux基础服务教程】DNS域名解析服务

一、DNS服务介绍

  • DNS 应用层协议
  • 全称:Domain Name System 域名系统
  • 作用
    • 正向解析
      • 根据主机名查询对应 的IP
    • 反向解析
      • 根据IP查询对应的主机名

1.zone区域

  • 正向区域

  • 反向区域

    • x.x.x.in-addr.arpa
      • 1.168.192.in-addr.arpa
      • 1.1.10.in-addr.arpa

2.Record 记录

以下是常用记录

  1. A记录
  • 记录主机名与IP地址的对应关系
  • 三级域名 A记录 IPV4地址
  • www.baidu.com A 3.3.3.3
  1. AAAA记录
  • 记录主机名与IP地址的对应关系
  • 三级域名 A记录 IPV6地址
  • www.baidu.com A ::1
  1. PTR记录
  • 反向指针记录
  • 记录IP地址、主机名的对应关系
  • 10.168.192.in-addr.arpa
  • 8 PTR test1.linux.com. #此域名对应IP为192.168.10.8
  • 12 PTR test2.linux.com. #此域名对应IP为192.168.10.12
  1. CNAME记录
  1. MX记录
  1. NS记录

3.DNS服务用到的软件包和配置文件

  • 软件

    • bind
    • bind-chroot
      • 增强DNS服务安全性
  • 配置文件

    • 主配置文件
      • /var/named/chroot/etc/named.conf
    • 数据文件/记录文件
      • /var/named/chroot/var/named/*

二、配置DNS实现正向解析

二级域名:linux.com

服务器 地址 三级域名
DNS服务器 192.168.140.10 ns01.linux.com
FTP服务器 10.1.1.1 ftpserver.linux.com
web服务器 10.1.1.2 web.linux.com
Mail服务器 10.1.1.3 mail01.linux.com

1.关闭防火墙和SElinux

过程省略

2.安装DNS软件包

[root@dns_server ~]# yum install bind bind-chroot 

3.在主配置文件创建域

域:linux.com

[root@dns_server ~]# vim /var/named/chroot/etc/named.conf

options {
    directory "/var/named";      #指定记录文件的存放位置 
};

zone "linux.com" {             #指定区域名
    type master;               #指定区域类型为主区域
    file "linux.com.zone";     #指定linux.com区域对应的记录文件名称
};

4.创建记录文件、添加记录

[root@dns_server ~]# cp /usr/share/doc/bind-9.11.4/sample/var/named/named.localhost  /var/named/chroot/var/named/linux.com.zone	#复制官方文档教程文件并改名
[root@dns_server ~]# vim /var/named/chroot/var/named/linux.com.zone

$TTL 1D
@	IN SOA	linux.com. xxxx.qq.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns01.linux.com.
ns01	A	192.168.140.10
ftpserver	A	10.1.1.1
web		A	10.1.1.2
	MX  5	mail01.linux.com.
mail01	A	10.1.1.3

5.启动DNS服务、并设置开机自启

[root@dns_server ~]# systemctl enable --now named named-chroot

6.验证DNS服务器是否启动

[root@dns_server ~]# ps -elf | grep name
5 S named      7290      1  0  80   0 - 97735 sigsus 11:05 ?        00:00:00 /usr/sbin/named -u named -c /etc/named.conf
5 S named      7329      1  0  80   0 - 63898 sigsus 11:05 ?        00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot
0 S root       7356   6942  0  80   0 - 28177 pipe_w 11:06 pts/0    00:00:00 grep --color=auto name

[root@dns_server ~]# netstat -tunlp | grep name
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.140.10:53       0.0.0.0:*               LISTEN      7329/named          
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      7290/named          
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      7290/named          
tcp6       0      0 ::1:53                  :::*                    LISTEN      7290/named          
tcp6       0      0 ::1:953                 :::*                    LISTEN      7290/named          
udp        0      0 192.168.140.10:53       0.0.0.0:*                           7329/named          
udp        0      0 127.0.0.1:53            0.0.0.0:*                           7329/named          
udp        0      0 127.0.0.1:53            0.0.0.0:*                           7290/named          
udp6       0      0 ::1:53                  :::*                                7290/named  
  • DNS默认服务端口53/tcp/udp

7.验证DNS

windows工具nslookup

C:\>nslookup
默认服务器:  gjjline.bta.net.cn
Address:  202.106.0.20

> server 192.168.140.10
默认服务器:  [192.168.140.10]
Address:  192.168.140.10

> ftpserver.linux.com
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    ftpserver.linux.com
Address:  10.1.1.1

> web.linux.com
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    web.linux.com
Address:  10.1.1.2

> mail01.linux.com
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    mail01.linux.com
Address:  10.1.1.3

三、配置DNS实现反向解析

1.添加反向域

[root@dns_server named]# vim /var/named/chroot/etc/named.conf

options {
    directory "/var/named";
};

zone "linux.com" {
    type master;
    file "linux.com.zone"; 
};

zone "1.1.10.in-addr.arpa" {
    type master;
    file "10.1.1.zone";
};

2.添加记录文件

[root@dns_server ~]# vim /var/named/chroot/var/named/10.1.1.zone

[root@dns_server named]# vim /var/named/chroot/var/named/10.1.1.zone
$TTL 1D
@	IN SOA	linux.com. xxxx.qq.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns01.linux.com.
ns01	A	192.168.140.10
1	PTR	ftpserver.linux.com.
2	PTR	web.linux.com.
3	PTR	mail01.linux.com.

3.重启服务

[root@dns_server named]# systemctl restart named named-chroot

4.验证反向解析

C:\Users\admin>nslookup
默认服务器:  gjjline.bta.net.cn
Address:  202.106.0.20

> server 192.168.140.10
默认服务器:  [192.168.140.10]
Address:  192.168.140.10

>
> 10.1.1.1
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    ftpserver.linux.com
Address:  10.1.1.1

> 10.1.1.2
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    web.linux.com
Address:  10.1.1.2

> 10.1.1.3
服务器:  [192.168.140.10]
Address:  192.168.140.10

名称:    mail01.linux.com
Address:  10.1.1.3

> exit

5.linux测试工具dig

[root@localhost ~]# dig -t A mail01.linux.com

四、配置DNS主从

1.环境准备

  • 192.168.140.10 主DNS
  • 192.168.140.11 备DNS

2.关闭防火墙和SElinux

过程省略

3.修改主DNS配置文件,添加从服务器地址

[root@dns_server ~]# vim /var/named/chroot/etc/named.conf 

options {
    directory "/var/named"; 
};

zone "linux.com" {
    type master;  
    file "linux.com.zone";
    allow-transfer { 192.168.140.11; };    #指定从服务器地址
};

zone "1.1.10.in-addr.arpa" {
    type master;
    file "10.1.1.zone";
    allow-transfer { 192.168.140.11; }; 	#指定从服务器地址
};

4.修改主DNS配置文件

[root@dns_server ~]# vim /var/named/chroot/var/named/linux.com.zone	#修改正向解析配置文件

$TTL 1D
@	IN SOA	linux.com. xxxx.qq.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns01.linux.com.
        NS      ns02.linux.com.	#添加第二个DNS记录
ns01	A	192.168.140.10
ns02    A       192.168.140.11	#添加从DNS的IP
ftpserver	A	10.1.1.1
web		A	10.1.1.2
	MX  5	mail01.linux.com.
mail01	A	10.1.1.3
[root@dns_server named]# vim /var/named/chroot/var/named/10.1.1.zone	#修改反向解析配置文件
$TTL 1D
@	IN SOA	linux.com. xxxx.qq.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	ns01.linux.com.
        NS      ns02.linux.com.	#添加第二个DNS记录
ns01	A	192.168.140.10
ns02    A       192.168.140.11	#添加从DNS的IP
1	PTR	ftpserver.linux.com.
2	PTR	web.linux.com.
3	PTR	mail01.linux.com.

5.重启主DNS服务

[root@dns_server ~]# systemctl restart named named-chroot

6.在从服务器安装DNS软件包

[root@localhost ~]# yum install bind bind-chroot 

7.在从服务器创建相同域

[root@localhost ~]# vim /var/named/chroot/etc/named.conf

options {
   directory "/var/named";
};

zone "linux.com" {
    type slave;         #指定区域类型为从,代表要从主服务器上复制记录文件
    file "slaves/linux.com.zone";     #记录文件的存放位置 
    masters { 192.168.140.10; };     #指定主服务器地址
};

zone "1.1.10.in-addr.arpa" {
    type slave;
    file "slaves/10.1.1.zone";
    masters { 192.168.140.10; }; 	#指定主服务器地址
};

8.从DNS设置开机自启并启动服务

[root@localhost ~]# systemctl enable --now named named-chroot

9.验证主从是否完成同步

[root@localhost ~]# ls /var/named/chroot/var/named/slaves/
linux.com.zone	10.1.1.zone

10.测试从服务器

C:\Users\admin>nslookup
默认服务器:  gjjline.bta.net.cn
Address:  202.106.0.20

>
> server 192.168.140.11
默认服务器:  [192.168.140.11]
Address:  192.168.140.11

>
> ftpserver.linux.com
服务器:  [192.168.140.11]
Address:  192.168.140.11

名称:    ftpserver.linux.com
Address:  10.1.1.1

> web.linux.com
服务器:  [192.168.140.11]
Address:  192.168.140.11

名称:    web.linux.com
Addresses:  10.1.1.2
          10.1.1.10

> mail01.linux.com
服务器:  [192.168.140.11]
Address:  192.168.140.11

名称:    mail01.linux.com
Address:  10.1.1.3

五、本地hosts文件

  • 作用:记录主机名、IP地址的对应关系
  • 格式
    • IP地址 主机名
  • 文件目录:/etc/hosts