一、dns简介及域名
-
DNS(Domain Name System) : 作为将域名和IP地址相互映射的一个分布式数据库,能便捷互联网的访问。使用53端口,通常以UDP较快的数据传输协议来查询,如果没有查询到,将再次启动TCP重新查询,两者同时启动port53.
-
因特网在采取命名的时候采用层次树状结构命名方法。
-
国家顶级域名(cn代表中国等)、通用顶级域名(com公司企业)
二、域的划分
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的 顶级域名服务器的域名和IP地址。全世界只有13台。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
权限域名服务器:负责一个"区"的域名服务器。
本地域名服务器:本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个 主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
三、解析过程
当DNS服务器收到查询请求后,首先在浏览器/系统缓存中找,接着在host文件中找,再在本地DNS服务器找(先找区域记录---->再找DNS服务器缓存),如果查不到,可能是因为该服务器不是请求域的授权服务器,并且以前查询的缓存中没有需要的记录,这时DNS服务器必须向转发域名服务器(转发域名服务器负责所有非本地域名的查询)发送请求。如果没有转发域名服务器则找根域名服务器(采用迭代查询)。
当主域名服务器关闭、出现故障或负载过重时,辅助域名服务器作为备份服务器提供域名解析服务。辅助服务器从主域名服务器获得授权,并定期向主服务器询问是否有新数据,如果有则调入并更新域名解析数据,以达到与主域名服务器同步的目的。
四、服务器配置
1.相关服务端
|-------|-----------------|
| 软件安装包 | bind |
| 服务名称 | named |
| 主配置文件 | /etc/named.conf |
| 数据目录 | /var/named |
| 端口 | tcp/53 udp/53 |
2.安装启用
bash
dnf install bind -y
systemctl enable --now named
3.开放服务
bash
[root@dns-sever ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; # 本地所有网络接口开启53端口
listen-on-v6 port 53 { ::1; };
allow-query { any; }; # 允许查询A记录的客户端列表
forwarders {114.114.114.114;}; # 非本域的DNS查询请求将被转发
dnssec-validation no; # 禁用DNS检测使dns能够缓存外部信息到本记录
4.高速缓存
(1)含义
是一个非权威的dns,在dns服务器中本身并没有数据,当客户需要解析解析域名十四首先查询缓存中是否有数据,如果没有就会从指定的dns服务器中缓存;它可以大大节省内网在做地址解析上所需要花费的时间。
(2)配置参数
bash
[root@dns-sever ~]# vim /etc/named.conf
> forwarders { 114.114.114.114; };
[root@dns-sever ~]# systemctl restart named
bash
[root@hai ~]# vim /etc/resolv.conf
> namserver 172.25.254.100
测试:
5.DNS正向解析
(1) 在zones文件中设定维护的域
bash
[root@dns-sever ~]# vim /etc/named.rfc1912.zones
#配置文件内容
zone "long.org" IN {
type master;
file "long.org.zone";
allow-update { none; };
};
(2)指定生成A记录文件
bash
[root@dns-sever ~]# cd /var/named/
[root@dns-sever named]# cp -p named.localhost long.org.zone
$TTL 1D # dns地址保存时间默认"S"
@ IN SOA dns.ling.org. root.long.org. ( #SOA授权起始
0 ; serial # 域名版本序列号
1D ; refresh # 刷新时间(辅助dns)
1H ; retry # 重试时间
1W ; expire # 过期时间
3H ) ; minimum # A记录最短有效时间
NS dns.long.org. # nameserver 域名
haha A 172.25.254.100 # A 记录
dns A 172.25.254.100
www CNAME long.a.long.org. # Canonical Name (规范名称,A记录别名)
long.a A 172.25.254.100
long.a A 172.25.254.200
long.org. MX 1 172.25.254.111. # 邮件解析记录
(3)测试:
查询邮件记录
(4)查询结果反馈值
|----------|--------|
| 状态码 | 状态码含义 |
| NOERROR | 查询成功 |
| REFUSED | 查询被拒绝 |
| SERVFAIL | 查询失败 |
| NXDOMAIN | 查询无此结果 |
6.DNS反向解析
(1) 作用
当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录 客户提供域名,dns服务器负责把域名解析成对应IP
(2) zones文件设定要维护的域
bash
[root@dns-sever ~]# vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
(3) 指定生成A记录文件
bash
[root@dns-sever ~]# cd /var/named/
[root@dns-sever named]# cp -p named.loopback 172.25.254.ptr
[root@dns-sever named]# vim 172.25.254.ptr
$TTL 1D
@ IN SOA dns.long.org. root.long.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.long.org.
dns A 172.25.254.100
AAAA ::1
111 PTR www.long.org.
(4) 测试
7.DNS多向解析方案
(1) 作用
在企业中服务器不可能在同一个网段,不同网段的服务器是不是需要用多台dns来满足服务器需求? 根据这一企业需求我们可以在DNS中通过访问设置,让不同网段的服务器都解析到自己网段的相应地址 这就是DNS多项解析
(2) 配置实验环境
本实验需要用到一台服务器以及两个客户端,服务器需要双网卡配置不同网段IP,两台客户端配置服务器的不同网段IP地址。本次实验服务器为172.25.254.0/24和192.168.0.0/24网段,客户端long为192.168.0.0/24网段。
(3) 主配置文件
bash
# 注释在主配置文件中默认的zone语句块
vim /etc/named.conf
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
# 添加view语句块来限制访问数据走向
view localnet {
match-clients { 192.168.0.0/24;}; # 匹配访问来源的,匹配访问来源可以填写多个,每个之间用空格分隔
zone "."IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.localnets";
};
view any{
match-clients { any; };
zone "."IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
(4) 生成并配置zones文件
bash
[root@dns-sever ~]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnets
[root@dns-sever ~]# vim /etc/named.rfc1912.localnets
zone "long.org" IN {
type master;
file "long.org.zone";
allow-update { none; };
};
(5) 生成并配置A记录文件
bash
[root@dns-sever ~]# cp -p /var/named/long.org.zone /var/named/long.org.localnet
[root@dns-sever ~]# vim /var/named/long.org.localnet
(6) 测试
分别在两台客户端主机中修改dns
bash
# 客户端1
[root@hai ~]# vim /etc/resolv.conf
nameserver 172.25.254.100
# 客户端2
[root@long ~]# vim /etc/resolv.conf
nameserver 192.168.0.100
8.主从DNS服务器(两台服务器)
(1) 作用
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就 是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器 (Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅 助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中, 而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性
(2) 对辅助DNS进行配置
bash
# 修改zones文件设定要做主从的域
[root@hai ~]# vim /etc/named.rfc1912.zones
zone "long.org" IN {
type slave;
masters { 172.25.254.100;};
file "slaves/long.org.zone";
};
[root@hai ~]# systemctl restart named
(3) 解决数据同步问题(决下数据同步的延迟问题)
bash
[root@dns-sever ~]# vim /etc/named.rfc1912.zones
zone "long.org" IN {
type master;
file "long.org.zone";
allow-update { none; };
also-notify { 172.25.254.200;}; # 在主dns中设置数据更改后主动通知对象
};
[root@dns-sever ~]# vim /var/named/long.org.zone #serial 更改A记录后一定要更新serial值