【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
- x.x.x.in-addr.arpa
2.Record 记录
以下是常用记录
- A记录
- 记录主机名与IP地址的对应关系
- 三级域名 A记录 IPV4地址
- www.baidu.com A 3.3.3.3
- AAAA记录
- 记录主机名与IP地址的对应关系
- 三级域名 A记录 IPV6地址
- www.baidu.com A ::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
- CNAME记录
- 别名记录、一个域名指向另一个域名
- www.baidu.com CNAME www.a.shifen.com
- MX记录
-
标识邮件服务器
-
必须配合A记录同时使用
-
MX 5 mail01.linux.com.
-
mail01.linux.com A 5.5.5.5
-
MX 10 mail02.linux.com
-
mail02.linux.com A 7.7.7.7
-
数字5: 邮件服务器的优先级,数字越小,优先级越高
- NS记录
- 标识DNS服务器
- 必须配合A记录同时使用
- NS ns01.linux.com.
- ns01.linux.com A 6.6.6.6
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.在主配置文件创建域
[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