本篇博客讲解:DNS高速缓存服务器,DNS正向解析,反向解析,双向解析,辅助DNS搭建,辅助DNS与主同步更新,DNS的KEY加密,DDNS花生壳
当一个局域内有较多PC时,都通过单一的线路去访问外网,访问DNS服务器做地址解析,很容易会遇到带宽不够,信道已满的情况。多数情况下,我们都是采用单独建立一台DNS高速缓存服务器,让其访问外网,获取地址解析,而其他pc访问这台dns高速缓存主机,来解决这个问题。如下图所示:
dns高速缓存主机搭建:
前提条件:作DNS高速缓存的主机需要可以上网,访问域名,解析域名。测试机通过DNS高速缓存主机可以从其缓存中直接读取域名及其解析,加快访问速度。其缓存中没有信息的话则借助DNS高速缓存主机,进行访问外网。
准备内容:
DNS高速缓存主机:
1.网络IP设置
2.可提供dns服务的软件
3.已经可以上网
测试主机:
1.网络IP设置
网络IP设置只需要静态设置好IP即可,两台PC之间相互可以ping通。
步骤演示:
1.提供DNS服务的软件下载安装:
yum search dns
yum install bind -y
2.查看加密设备,加密字符过短,在开启named服务时会卡住【named服务是bind提供的包含dns的服务】,如果卡住,需要在无图形界面输入任意字符来增加字符长度。然后在火墙上允许dns服务。
cat /dev/random
systemctl start named
firewall-cmd --permanent --add-service=dns
firewall-cmd --list-all
3.更改/etc/named.conf配置文件,并查看接口状态:
vim /etc/named.conf
netstat -antlupe | grep named
在/etc/named.conf配置文件中,需要做三处更改,一次添加。
更改53端口的:
listen-on
allow-query
dnssec-validation
添加:
forwarders {114.114.114.114}
以上设置完成后,我们的DNS高速缓存服务器就搭建完成了。下面进行测试:
我们开启另一台虚拟机,进行网络配置和DNS访问对象更改:
网络配置见博客:https://blog.csdn.net/dddxxy/article/details/89356453
使用dig指令去访问www.baidu.com
dig输出的部分内容:
标题指出关于查询和答案的信息,其中包括响应状态和设置的任何特殊标记(aa 表示权威答案)
**QUESTION:**提出实际的DNS查询
ANSWER:响应
**AUTHORITY:**负责域/区域的名称服务器
ADDITIONAL:提供的其他信息,通常是关于名称服务器
底部的注释指出发送查询的递归名称服务器以及获得响应所花费的
我们用测试的虚拟机访问了一次www.baidu.com,该访问回答就记录在了dns高速缓存服务器中。我们再用高速缓存服务器去访问www.baidu.com,会只需要很少时间。
通过高速缓存服务器的部署,可以很好的解决一个公司只有一条外网线路,却有较多主机的上网难问题。
在正向解析中,很常见的一个内容就是邮件。我们发送的邮件,都是输入例如1111111.qq.com这样的域名来发送的。但是这个我们都知道,要想通过网络把数据传送到其他主机上,我们是需要通过IP地址进行转发的。那么就需要将1111111.qq.com这样的域名转化为IP地址,进而进行数据传输了。
域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。这一过程通过域名解析系统DNS来完成。
下面我们依旧使用在“一DNS高速缓存服务器“中已经配置好DNS的虚拟机来进行配置:省去再去搭建一台DNS服务器的步骤。
1.编写/etc/named.rfc1912.zones域维护文件,在其中写入正向解析的配置文件【A文件的指定】
vim /etc/named.rfc1912.zones
2.在/var/named目录中,编写dddxxy.com.zone配置文件。【可以cp -p 复制named.localhost 文件当作模版】【这里的dddxxy.com.zone一定要注意权限】
cd /var/named
cp -p named.localhost dddxxy.com.zone
MX 是用来声明邮件服务器的优先级别的。当网络中有人通过E-mail服务器发送电子邮件时,DNS服务器会按照MX记录的邮件服务器序号来寻找邮件主机。后面的数字1表示优先级,一般数字越小优先级越高
第二部分解释:
第3行:是正向解析区域的序列号。若当你更改过主DNS服务器的数据后,要将该数值加大,这样辅DNS服务器才会更新数据
第4行:refresh的功能主要是高速辅DNS服务器多长时间与主DNS服务器做一次serial的序列号对比。
第5行:retry表示在refresh失败后,经过指定的时间再去尝试。
第三部分解释:
第8行:定义life.net域的域名解析服务器为 dns.life.net.。
第9行:定义域名解析服务器的地址为 172.25.254.113。
3.vim /etc/resolv.conf
更改默认的询问DNS服务器解析地址。将其改为本机。
这样我们就可以进行测试了。直接用本DNS服务器进行测试或者另用其他PC设置DNS解析地址为该IP后再测试都可以。这里我们就直接本机测试:
首先测试本机的域名解析:
接着测试abc这个子域:
测试mx,邮件类型的dddxyy.com这个子域:
测试CNAME,:
1.在/etc/named.rfc1912.zones文件中指定反向解析,及其配置文件。
vim /etc/named.rfc1912.zones
2.复制一份反向解析配置模版,命名为我们指定的172.25.254.ptr。进行配置编写。
cd /var/named
cp -p named.loopback 172.25.254.ptr
vim 172.25.254.ptr
dig -x 172.25.254.111
dig -x 172.25.254.222
划分出内网和外网,使在不同的主机中,访问同一个域名时,会出现不同的IP
原理:
双向解析其实是将解析文件,由一份变为了两份:
将name.com.zone域解析文件和named.rfc1912.zones域指向文件分别写一份内网和外网的。
然后在/etc/named.conf文件中注释掉原有域的说明内容,写入新的域说明,分别对应内网和外网。
下面进行演示:
这 部 分 内 容 依 旧 是 在 上 面 已 经 做 好 的 D N S 高 速 缓 存 P C 中 进 行 \color{blue}{这部分内容依旧是在上面已经做好的DNS高速缓存PC中进行} 这部分内容依旧是在上面已经做好的DNS高速缓存PC中进行
1.写一个域解析文件,或者复制原有的再进行修改。
cp -p dddxxy.com.zone dddxxy.com.inter.zone
vim dddxxy.com.inter.zone
只需要将其中写好的子域对应IP地址更改为其他网段即可
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter.zones
vim /etc/named.rfc1912.inter.zones
3.编写/etc/named.conf配置文件,注释掉原有域说明,写入新内外网的域说明。
vim /etc/named.conf
4.重起named服务,进行内外网测试:
systemctl restart named
内网测试【本机】:
外网测试【其他pc】:需要提前指定DNS解析要访问的PC为我们的高速缓存PC
这样我们的双向解析就完成了。
当一台DNS服务器上的存储量很大,访问量很大时,为了解决超负荷以及用户需要等待的问题,转移数据是不太现实的,那么就需要其他DNS服务器来辅助了。
下面进行辅助DNS搭建:
1.给辅助DNS安装 bind , 火墙给dns权限 , 53端口配置 , 开启named服务 【在本篇博客最上方第一部分都有说明】
yum install bind -y
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
vim /etc/named.conf
systemctl restart named
2.主DNS:编辑指定域解析文件的文件,设置辅助DNS的IP。
vim /etc/named.rfc1912.zones
zone "dddxxy.com" IN {
type master;
file "dddxxy.com.zone";
also-notify { 172.25.254.200; };
allow-update { none; };
};
3.辅助DNS:编辑指定域解析文件的文件,设置主DNS的IP。
vim /etc/named.rfc1912.zones
zone "dddxxy.com" IN {
type slave;
masters { 172.25.254.100; };
file "slaves/dddxxy.com.zone";
allow-update { none; };
};
ll /var/named/
上一步完成后会建立slaves目录,权限为drwxrwx--- named named
4.测试:主DNS:更改/var/named/dddxxy.com.zone中子域的IP和serial的值,使数据发生变化,然后重起服务
辅助DNS:dig 变更的域,参看是否可以解析到。
以上则辅助DNS搭建成功。
在上一个实验中,我们通过修改serial使辅助DNS手动与主DNS进行了更新同步。
那么如何让他自动地与主DNS进行同步更新,即为下面的内容。
环境准备:将SELINUX调整为Disable,或者
setsebool named_write_master_zones on
在主DNS上:
vim /etc/named.rfc1912.zones
also-notify { 172.25.254.200 } ###更改数据时也同步214辅dns
allow-update { 172.25.254.100 } ###允许数据更新
chmod 770 /var/named/ ###更改/var/named的权限
ls -ld /var/named/
然后进行更新:添加一个test.dddxxy.com:
nsupdate ###更新
server 172.252.254.100 #要更新的服务器ip
update add test.westos.com 86400 A 172.25.254.111 ###更新数据:添加一个域【86400为ttl存活时间】
send
quit
检测:分别在主DNS和辅助DNS上进行dig test.westos.com :
DNS的KEY加密更新和上一个远程更新Jnl是冲突的。需要在主DNS中重写name.com.zone文件,并将jnl部分都删除;在辅助DNS中删除/var/named/slaves/中的内容
key加密可以使有key的人去更新,而没有key的人无法更新,大大提高了安全性。
演示说明:
主DNS
1.生成key:
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST dddxxy
在生成过程中卡住的话需要打开另一个shell输入任意字符。
原因是已有加密字符过短
2.编写key的配置文件:我们复制一个模版然后再编写:注意权限!
cp -p /etc/rndc.key /etc/dddxxy.key
vim /etc/dddxxy.key
3.编写 /etc/named.rfc1912.zones,写入key加密;编写/etc/named.conf 同样写入key加密
vim /etc/named.rfc1912.zones
vim /etc/named.conf
systemctl restart named
nsupdate -k Kdddxxy.key.+157+27819.private
server 172.25.254.100
update add ttt.dddxxy.com 86400 A 172.25.254.105
send
quit
DDNS(Dynamic Domain Name Server)是动态域名服务的缩写。
DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
我们在已经部署好DNS服务的PC上再搭建DHCP服务,来组建DDNS,步骤如下:
1.先将之前做过的dddxxy.com.zone文件删除,将备份复制出来一份,或者重新写,我们这里直接复制一份模版覆盖掉之前的文件,相当于重新写:
详细的DHCP服务器搭建:https://blog.csdn.net/dddxxy/article/details/89381413
yum install dhcp -y
cd /etc/dhcp/
cp /usr/share/doc/dhcp*/dhcpd.conf.example dhcpd.conf
vim dhcpd.conf
systemctl restart dhcpd
测试PC:
1.更改网络,改为DHCP动态获取;更改DNS解析来源为172.25.254.100,我们的DDNS服务器
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/resolv.conf
2.重起网络,进行测试:
systemctl restart network
ip addr show eth0
hostnamectl set-hostname news.dddxxy.com
dig news.dddxxy.com