BIND是最广泛使用的开源名称服务器,在RHEL中,通过bind软件包提供防火墙开启端口 53/TCP 和 53 /UDP,53端口是DNS服务的端口。
BIND的主配置文件是 /etc/named.conf
/var/named/目录包含名称服务器所使用的其他数据文件
NOERROR:查询成功
NXDOMAIN:DNS服务器提示不存在这样的名称呢个
SERVFAIL:DNS服务器停机或DNSSEC响应验证时被
REFUSED:DNS服务器拒绝回答(也许是出于访问控制的原因;可以查看防火墙状态是否允许DNS服务)
操作步骤
1.选择一台主机作为DNS服务器
配置IP
设定主机名为:dns-server
配yum源
下载bind服务器
systemctl start firewalld
firewall-cmd --permenant --add-service=dns
firewall-cmd --reload ##永久添加dns服务
firewall-cmd --list-all ##查看dns服务是否添加成功
netstat -antulpe | grep named ##查询此时53端口的开放情况
vim /etc/named.conf ##bind的配置文件
listen-on port 53 {any;}; ##监听所有的53端口
allow-query {any;}; ##允许所有主机询问
forwarders {114.114.114.114;}; ##当无法在该主机中寻找到答案时,让其访问114.114.114.114寻求答案
dnssec-validation no; ##不检测dns
systemctl restart named ##重启服务
vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(dns服务器ip)
测试注意测试需要有网络的环境下
dig 对应的域名查看对应秒数
vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(dns服务器ip)
dig 相应的域名 ##观察连通的秒数
DNS区域采用资源记录的形式存储信息。每条资源记录均具有一个类型,表明其保留的数据类型。
A | 名称至IPV4的地址(正向解析) |
– | – |
AAA | 名称至IPV6的地址 (正向解析) |
CNAME | 名称至“规范名称“(包含A/AAAA记录的另一个名称) |
PTR | IPV4/IPV6地址至名称(DNS反向解析0 |
MX | 用于名称的邮件交换器(向何处发送其电子邮件) |
NS | 域名的名称服务其 |
SOA | “授权起始“,DNS区域的信息(管理信息) |
操作步骤:
在dns-server中
vim /etc/named.conf ##找到解析文件
vim /etc/named.rfc1912.zones ##使其访问所需要的配置文件
zone "westos.com" IN{
type master;
file "westos.com.zone" ##查找该文件
allow-update {none;};
};
cd /var/named/ ##切换到该目录下,查找正向解析文件模板
named.localhost ##正向解析文件模板
cp -p named.localhost westos.com.zone ##-p一定要加,要将权限一起复制过去
vim westos.com.zone ##编辑正向解析策略
systemctl restart named
vim /etc/resolv.conf
nameserver 172.26.254.104(dns-serverIP)
dig www.westos.com ##查看是否解析出对应ip
域名分为内部域名和外部域名,对于用户来说,只需要知道外部域名就可以查询到该公司的所有业务;而对于公司的管理人员而言,内部域名便于对某一块业务进行管理。
一般来说,内部域名之间存在轮循转换。
CNAME的配置
cd /var/named/
vim westos.com.zones
bbs CNAME linux
linux A 172.25.254.111
linux A 172.25.254.222
systemctl restart named
测试
在dns-server上
dig bbs.westos.com
MX:用于名称的邮件交换器(向何处发送其电子邮件)
配置的操作步骤:
vim /etc/named/westos.com.zone
westos.com. Mx 1 172.25.254.4.
systemctl restart named
mail [email protected] ##向westos.com发送邮件
mailq ##查看邮件是否发送成功
mail ##邮件未发送成功是因为接收smtp端口:25端口没有开启
netstat -antulpe | grep 25 ##查看25端口的状态
操作步骤:
在dns-server中
vim /etc/named.conf ##找到解析文件
vim /etc/named.rfc1912.zones ##使其访问所需要的配置文件
zone "254.25.172" IN{ ##IP反着写
type master;
file "westos.com.ptr" ##查找反向解析文件
allow-update {none;};
};
cd /var/named/ ##切换到该目录下,查找正向解析文件模板
named.loopback ##反向解析文件模板
cp -p named.loopback westos.com.ptr ##-p一定要加,要将权限一起复制过去
vim westos.com.ptr ##编辑反向解析策略
添加反向解析:
112 PTR www.westos.com.
111 PTR bbs.westos.com.
systemctl restart named
测试
在测试主机中
vim /etc/resolv.conf
nameserver 172.26.254.104(dns-serverIP)
dig -x 172.25.254.111 ##查看是否解析出对应域名
dig -x 172.25.254.112 ##查看是否解析出对应域名
地址有外网地址和内网地址之分,外网用户查询到的只能是外网地址,而内网用户查询到内网地址,而双向解析就是对于同一个域名,来解析出用户是属于内网用户还是外网用户。
由DNS的正向解析可以知道DNS服务作用的流程:通过主配置文件->找到对应的/etc/name.rfc1912.zones文件->配置文件中告诉其要维护该域需要寻找下一个文件->westos.com.zone->更改配置文件中的解析策略;对于配置双向解析,我们设定内网和外网,将其区分开,按照配置DNS正向解析的逆流程进行配置。
配置DNS双向解析配置步骤
1.
cp -p westos.com.zone westos.com.localnet
vim westos.com.localnet ##内网解析策略,全文将172.25.254替换为192.168.0
cp -p /etc/named.rfc1912.zone /etc/named.rfc1912.localnet
vim /etc/named.rfc1912.localnet
在文件中写入:
zone "westos.com" IN {
type master;
file "westos.com.localnet";
allow-update {none; };
};
vim /etc/named.conf
对文件进行以下操作;对用户进行分情况讨论,使之去寻找到相对应的解析文件
添加
view localnet{
match-clients {172.25.254.104; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.localnet"; ##当匹配用户匹配到172.25.254.104时,查找内网解析文件
}
view internet {
match-clients {any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; ##当匹配用户为除了172.25.254.104(内网用户),都查找外网解析文件
}
systemctl restart named
配置方法:
1.再找一台dns服务器作为辅助dns-server
配置IP
配yum源
下载bind服务器
2.将dns服务添加到火墙中
systemctl start firewalld
firewall-cmd --permenant --add-service=dns
firewall-cmd --reload ##永久添加dns服务
firewall-cmd --list-all ##查看dns服务是否添加成功
netstat -antulpe | grep named ##查询此时53端口的开放情况
vim /etc/named.conf ##bind的配置文件
listen-on port 53 {any;}; ##监听所有的53端口
allow-query {any;}; ##允许所有主机询问
systemctl restart named ##重启服务
vim /etc/named.rfc1912.zones ##使其访问所需要的配置文件
zone "westos.com" IN{
type slave;
masters:主DNS-server IP
file "slaves/westos.com.zone" ##查找该文件
allow-update {none;};
};
vim /etc/resolv.conf
添加dns为nameserver为172.25.254.(辅助dns服务器ip)
dig 对应的域名看服务是否搭建完成
辅助DNS-server同步主DNS-server的方法
当在主dns-server中改变信息,重启服务;dig;
在辅助dns-server中重启服务,dig发现辅助dns-server并没有同步主dns-server的服务
修改www.westos.com对应的ip为188
在主dns上dig,已更改信息
在辅助dns上dig,发现并没有更新
解决方法
第一种方法:
cd /var/named/slaves/
rm -fr westos.com.zone ##删除原来的解析文件
sytemctl restart named ##重启服务,重新生成westos.com.zone文件
dig ##测试
但是上述方法对于dns-server服务器数量众多的情况并不适用,于是我们采取下列方式:
主dns服务器告知辅助dns服务器信息变动,让辅助dns服务器主动来同步主dns的信息
操作步骤:
在主DNS服务器中
vim /etc/named.rfc1912.zones
添加
also-notify {172.25.254.204} ##提醒辅助dns服务器来同步
systemctl restart named
systemctl restart named
dig www.westos.com ##发现依旧没有同步
在主DNS中更改解析文件
主DNS服务器dig
在辅助DNS中dig,发现还是没有同步
原因是因为主dns服务器虽然提醒辅助dns服务器信息变动来同步,但是辅助dns并没有检测到有需要同步的信息,所以没有进行同步
这一步的解决方法:
更改主DNS服务器中的westos.com.zone文件,将其中的数字进行更改,如图所示
注意:该数字不能超过十位数,而且最好是有意义的数字,例如年月日第几次更新(2019080501)
更改后重启服务
测试
辅助dns服务器
systemctl restart named
dig www.westos.com ##同步需要一定的时间
让主DNS服务器同步某台服务器的更新
操作步骤:
在主DNS上
vim /etc/namedconf
添加
allow-update {172.25.254.4; }; ##允许谁更新
systemctl restart named
在允许更新的主机上发送更新信息
nsupdate
>server 172.25.254.主dnsIP
>update add hello.westos.com 86400 A 172.25.254.123
>send
如果出现报错,查看日志,可能是/var/named/权限不够
在主dns服务器上
chmod 770 /var/named/
允许更新的主机重新发送更新信息,显示发送成功
在主dns服务器上直接dig先不用重启
在主dns服务器上发现同步更新后,查看 /var/named/下会出现 .jnl文件
并且观察westos.com.zone中的文件内容
备份:cp -p westos.com.zone /mnt/
重启服务:systemctl restart named
dig 重新观察westos.com.zone中的内容,与原先的wetos.com.zone会有区别
systemctl restart named ##重启服务之后的westos.com.zone文件中的内容
rm -fr westos.com.zone
rm -fr westos.com.zone.jnl
重新将原wetos.com.zone复制回来
dig 发现还是可以同步更新状态