1. “DNS”—高速缓存服务器
(1)DNS应用
DNS(Domain Name System)—域名系统:是互联网的一项服务
作为将域名和IP地址相互映射的一个分布式数据库,帮助人们方便的访问互联网
DNS使用的是TCP和UDP端口53
(2)DNS应用
(1)在浏览器里面输入域名 www.baidu.com,浏览器并不知道这是谁,只有通过 dns 找到域名对应的ip我才可以正常的访问百度。
(2)DNS作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
(3)DNS的对应端口是53,53端口—dns服务器获取信息通过53端口获取,dns默认开启的端口
(3)DNS的查找步骤:
步骤一:客户端上的 Stub 解析器将查询发送至 /etc/resolv.conf 中的名称服务器。
步骤二:如果 dns 对于请求的信息具有权威性 , 则会将权威答案发送至客户端。
如果 dns 在其缓存中有请求的信息 ,则会将非权威答案发送至客户端。
如果缓存中没有该信息 , dns 将搜索权威名称服务器以查找信息
步骤三:从根区域开始 , 按照 DNS 层次结构向下搜索,直至对于信息具有权威性的名称服务器 , 以此为客户端获得答案,在此情况中名称服务器将信息传递至客户端并在自己的缓存中保留一个副本 , 以备以后查找。
2. 实验前配置环境 & 搭建DNS
保证实验环境的纯净:rht-vmctl reset desktop
hostnamecrl set-hostname dns-server.westos.com
配置ip
配置yum源
使desktop虚拟机可以联网:真机配置
测试机配置:ip—172.25.60.253
搭建DNS
yum install bind -y
systemctl start named ##敲击键盘,原因是加密设备不够,从/dev/random中获得(就是随机敲击键盘或移动鼠标)
netstat -antlpue|grep named ##查看named开启的接口
vim /etc/named.conf ##bind服务配置文件
11 listen-on port 53 { any; }; ##在所有的端口中开启53
17 allow-query { any; }; ##所有的内网主机可以访问
18 forwarders {114.114.114.114;}; ##去114.114.114.114服务其中查找域名地址
33 dnssec-validation no; ##不需要认证
测试:253主机
查询状态 | |
---|---|
NOERROR | 查询成功 |
REFUSED | 拒绝 |
SERVFAIL | 查询失败 |
NXDOMAIN | 世界上没有这个域名 |
DNS配置文件
主配置文件 /etc/named.conf
子配置文件:/etc/name.rfc1912.zones
数据目录:/var/named
DNS资源记录
DNS:区域采集资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型 |
---|
A:名称至IPv4地址 |
AAAA:名称至IPV6地址 |
CNAME:名称至“规范名称”(包含A/AAAA记录的令一个名称) |
PTR:IPV4/IPV6地址至名称 |
MX:用于名称的邮件交换器(向何处发送其电子邮件) |
NS;域名的名称服务器 |
SOA:“授权起始”,DNS区域的信息(管理信息) |
权威dns和非权威dns
1.权威名称服务器(权威dns):直接有客户需要的答案,客户输入域名就可直接访问。存储并提供某区域 ( 整个DNS 域或 DNS 域的一部分 ) 的实际数据
2.权威名称服务器的类型包括:
Master : 包含原始区域数据,有时称作 “主要 ”名称服务器
Slave : 备份服务器 ,通过区域传送从 Master 服务器获得的区域数据的副本,有时称作 “次要 ”名称服务器.
1.非权威 / 递归名称服务器(非权威dns):里面没有客户需要的答案,但它会通过询问114.114.114.114 等权威DNS找到答案传递给用户,客户端通过其查找来自权威名称服务器的数据。
2.递归名称服务器的类型包括:
仅缓存名称服务器 : 仅用于查找 , 对于非重要数据之外的任何内容都不具有权威性.
3. dns的正向解析
1
dns维护的域名文件
vim /etc/named.rfc1912.zones
2
cd /var/named ##bind的数据目录
cp -p named.localhost westos.com.zone
vim westos.com.zone
$TTL 1D 客户主机保存你A记录的时间,最大时间是1天
@ IN SOA dns.westos.com. root.westos.com. ( ##@=westos.com zjy.westos.org.表示由谁维护
0 ; serial
1D ; refresh ##重新刷新的时间是一天
1H ; retry ##你访问我的时候没有地址,一个小时后再次尝试
1W ; expire ##文件过期的时间是1周
3H ) ; minimum ##最短过期时间是3小时
NS dns.westos.com.
dns A 172.25.60.251
www A 172.25.60.111 ##当你询问www是谁的时候,我回答你是111
Systemctl restart named
3
Vim /etc/resolv.conf ##地址解析
Nameserver 172.25.60.251
测试:dig www.westos.com
4. CNAME域名重定向
外部域名 CNAME=change name 内部域名
vim westos.org.zone
$TTL 1D
@ IN SOA dns.westos.com. zjy.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.60.251
www CNAME bbs.westos.com.
bbs A 172.25.254.111
bbs A 172.25.254.222
Systemctl restart named
测试:dig bbs.westos.com
5. MX邮件交换器
vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. zjy.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.60.251
www CNAME bbs.westos.com.
bbs A 172.25.254.111
bbs A 172.25.254.222
westos.com. MX 1 172.25.60.251.
systemctl restart named
测试:
mail root@westos.com ##编辑邮件
mailq ##查看邮件队列
6. PTR反向解析
反向解析:通过ip获取域名
PTR—反向解析记录
1 /etc/named.rfc1912.zones中规定dns反向解析读取的文件名,zxyos.com.ptr文件中写入dns反向解析的信息
vim /etc/named.rfc1912.zones
zone "60.25.172.in-addr.arpa" IN { ##ip为 .254.25.60.in-addr.arpa(反向)
type master;
file "172.25.60.ptr"; ##172.25.60.ptr为dns反向解析读取的文件
allow-update { none; };
};
2
Cd /var/named
cp -p named.loopback 172.25.60.ptr
Vim 172.25.60.ptr
$TTL 1D
@ IN SOA dns.westos.org. zjy.westos.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.126
111 PTR www.westos.org.
Systemctl restart named
测试:dig -x 172.25.60.111
7.双向解析
内网用户查到的是内网地址,外网用户查到的是外网地址
dns-server虚拟机:
1 设置两个网段的ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
2 设置一台1.1.1.0网段的虚拟机
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/resolv.conf
3 dns双向解析
cp -p westos.com.zone westos.com.local.zone
vim westos.org.local.zone
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 1.1.1.251
www CNAME bbs.westos.com.
bbs A 1.1.1.111
bbs A 1.1.1.222
westos.com. MX 1 1.1.1.251.
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.local.zones
vim /etc/named.rfc1912.local.zones
zone "westos.com" IN {
type master;
file "westos.com.local.zone";
allow-update { none; };
};
vim /etc/named.conf
view localnet {
match-clients {1.1.1.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.local.zones";
};
view anyclient {
match-clients {any;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
include "/etc/named.root.key";
systemctl restart named
测试:
ip—1.1.1.252 访问内网
ip—172.25.60.250 访问外网
8.辅助dns
目的:减小缓解dns服务器压力
冗余:多台机器备用保证工作的稳定性
主备:主机器损坏时,备用机器顶替其工作
集群:多台机器同时工作,辅助机分担主机工作压力
配置一台辅助dns
1
vim /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network
vim /etc/yum.repos.d/yum.repo
yum install bind -y
systemctl start named
systemctl stop firewalld
2
vim /etc/named.conf
listen-on port 53 { any; }; /*开启53端口*/
allow-query { any; };
dnssec-validation no;
Vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type slave; ##辅助dns
masters { 172.25.60.251;}; /*为172.25.60.251主机服务*/
file "slaves/westos.com.zone"; /*读取的配置文件为 slaves目录下的westos.com.zone文件*/
allow-update { none; };
};
vim /etc/resolv.conf
nameserver 172.25.60.253 /*dns指向为辅助机自己*/
systemctl restart named
配置主dns主机
vim /etc/named.conf ##注释掉原来的双向解析
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none;};
also-notify { 172.25.60.253; };
};
systemctl restart named
测试:在辅助dns中dig www.westos.org
9.DNS的更新
9.1 基于ip的更新
getenforce ##查看selinux的状态
setenforce 0 ##如果selinux为强制状态,修改为警告状态
vim /etc/named.rfc1912.zones
zone "westos.org" IN {
type master;
file "westos.org.zone";
allow-update { 172.25.254.226; }; ##允许226这台主机对dns进行更新
also-notify { 172.25.254.226; };
};
systemctl restart named
cp westos.com.zone /mnt/ -p ##对westos.com.zone文件进行更新
chmod g+w /var/named/ ##给named组写权限
测试:
可以更新dns的主机:172.25.60.253
dns主机查看是否有更新
9.2 基于密钥的更新
1
rm -fr westos.org.zone* ##删除前一个实验中生成的文件
cp -p /mnt/westos.org.zone .
systemctl restart named
2
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
-a 加密方式HMAC-MD5
-b 加密长度128
-n 加密对象HOST
cat Kwestos.+157+41898.key
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
3
vim /etc/named.conf
include "/etc/westos.key";
systemctl restart named
scp Kwestos.+157+41898.* root@172.25.254.226:/mnt/
4
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westos; };
also-notify { 172.25.60.253; };
};
systemctl restart named
测试:
拥有钥匙的主机ip–172.25.60.253
主dns是否更新: