DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。
互联网的不同计算机之间通信是通过IP地址来进行实现的,每台联网计算机都需要通过 IP 地址来互相联系,但由于 IP 地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的 IP 地址,这样对于我们日常工作生活访问不同网站是很困难的。
对此,人们在IP地址的基础上有发展出了一种更易识别的符号化标识,标识由人们自行选择的字母和数字构成,相比 IP 地址更易被识别和记忆,逐渐代替 IP 地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。
域名虽然好记更易于被用户所接受,但计算机只能识别纯数字的IP地址,不能直接识别域名,因此就需要将域名翻译成IP地址,DNS域名解析服务就担任这种翻译工作
DNS用于将域名和IP地址进行相互映射,使人更方便的访问互联网
DNS默认以UDP这个较快速的数据传输协议来查询,但没有查询到完整的信息时,就会再次以TCP协议重新查询则启动DNS时,会同时启动TCP以及UDP的port53。
利用两台linux主机,配置dns主从服务器,能够实现正常的正反向解析
配置文件:
- /etc/named.conf --> 主配置文件
- /etc/named.rfc1912.zones --> 域配置文件(此配置文件会默认加载到主配置文件)
- /var/named/ --> 所有的域名解析文件所在目录
主服务器:
从服务器:
主从服务器关闭防火墙、关闭selinux,安装DNS相应软件包(bind)
# 关闭防火墙、selinux
systemctl status firewalld.service
setenforce 0
# 安装DNS软件包
yum install bind -y
vim /etc/named.conf # 编辑主配置文件
# 对主配置文件进行“局部”的修改
options {
listen-on port 53 { 192.168.217.132; }; # 监听本机ip地址和端口
allow-query { any; }; # 允许所有主机的访问
allow-transfer { 192.168.217.133; }; # 允许对从服务器的 "传送数据"
}
vim /etc/named.rfc1912.zones # 编辑与配置文件(对其模板进行修改即可)
# 正向解析
zone "openlab.com" IN { # 域在此写二级域名
type master; # 类型为主
file "named.openlab"; # 解析文件路径(默认在/var/named/目录下)
};
# 反向解析
zone "217.168.192.in-addr.arpa" IN { # 此处IP反着写
type master; # 类型为主
file "named.openlab.arpa"; # 解析文件路径(默认在/var/named/目录下)
};
对域名解析文件模板进行复制再配置
# 对模版完全复制加-a
cp -a /var/named/named.localhost /var/named/named.openlab
cp -a /var/named/named.localhost /var/named/named.openlab.arpa
域名解析文件配置
# 正向解析
vim /var/named/named.openlab
# 内容:↓↓↓
$TTL 1D
@ IN SOA @ dragon.163.com. ( # SOA起始授权,对openlab.com的主机进行授权
0 ; serial
1M ; refresh
1M ; retry
3M ; expire
1M ) ; minimum
NS dns.openlab.com. # NS:管理这个域名的服务器主机名字,即由哪一台主机去解析当前所定义的域主机
NS ns.opnelab.com. # 从服务器的主机名
dns A 192.168.217.132 # 主机的IPv4的IP地址
ns A 192.168.217.133
www A 192.168.217.136
ftp A 192.168.217.111
mstp A 192.168.217.110
stp CNAME mstp # 代表这个主机别名的主机名字
--------------------------------------------------------------------------------------------
# 反向解析
vim /var/named/named.openlab.arpa
# 内容:↓↓↓
$TTL 1D
@ IN SOA @ dragon.163.com. (
0 ; serial
1M ; refresh
1M ; retry
3M ; expire
1M ) ; minimum
NS dns.openlab.com.
NS ns.openlab.com.
133 PTR ns.openlab.com.
132 PTR dns.openlab.com.
136 PTR www.openlab.com.
111 PTR ftp.openlab.com.
110 PTR mstp.openlab.com.
110 PTR stp.openlab.com.
配置完后在本机对其进行测试
DNS的ip地址文件:vim /etc/resolv.conf(可对其进行修改,对配置的DNS服务器进行测试)
解析工具:
nslookup 、 dig
systemctl restart named # 重启DNS服务器(start是开启)
测试:
[root@openEuler ~]# nslookup
> server 192.168.217.132 # 临时让本机IP地址为DNS服务器
Default server: 192.168.217.132
Address: 192.168.217.132#53
> www.openlab.com # 测试正向解析
Server: 192.168.217.132
Address: 192.168.217.132#53
Name: www.openlab.com
Address: 192.168.217.136
> 192.168.217.111 # 测试反向解析
111.217.168.192.in-addr.arpa name = ftp.openlab.com.
vim /etc/named.conf # 编辑主配置文件
# 对主配置文件进行“局部”的修改
options {
listen-on port 53 { 192.168.217.132; }; # 监听本机ip地址和端口
allow-query { any; }; # 允许所有主机的访问
}
vim /etc/named.rfc1912.zones # 编辑与配置文件(对其模板进行修改即可)
# 正向解析
zone "openlab.com" IN { # 域在此写二级域名
type slave; # 类型为主
file "slaves/named.openlab"; # 解析文件路径(默认在/var/named/目录下)
masters { 192.168.217.132; }; # 主DNS的IP地址
};
# 反向解析
zone "217.168.192.in-addr.arpa" IN { # 此处IP反着写
type slave; # 类型为主
file "slaves/named.openlab.arpa"; # 解析文件路径(默认在/var/named/目录下)
masters { 192.168.217.132; }; # 主DNS的IP地址
};
启动DNS服务,观察域名解析文件是否拉取过来
watch ls /var/named/slaves/ --> 监控文件变化
# 再开启一台窗口实时监控
watch ls /var/named/slaves/
# 然后在开启DNS服务
systemctl start named
以此可见拉取成功
在主服务器上修改DNS的IP地址为从服务器的IP,测试是否可以解析成功
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.217.133 # 修改DNS地址
测试:
nslookup、dig解析工具都可以
以下都展示↓↓↓↓↓↓