1.BInd和DNS
BInd:
Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。(53端口)
DNS:
DNS(Domain Name System)是一个层次化、分布式域名系统,为接入互联网的设备提供服务。它关联域名到ip上,提供将域名转化为ip的服务。
2.bind 的安装(虚拟机上进行实验操作,需要先把真实主机做成路由器)
yum insatll bind -y 用配好yum源的主机,直接安装bind及其依赖性
开启named服务(第一次开启服务会有卡顿,卡顿是在生成加密字符,需要另开shell敲击字符或移动鼠标)
systemctl start named
systemctl status named
vim /etc/named.conf
18 options {
19 listen-on port 53 { any; };
20 listen-on-v6 port 53 { ::1; };
21 directory "/var/named";
22 dump-file "/var/named/data/cache_dump.db";
23 statistics-file "/var/named/data/named_stats.txt";
24 memstatistics-file "/var/named/data/named_mem_stats.txt";
25 allow-query { any; };
26 forwarders { 114.114.114.114; };
27
28 /*
29 - If you are building an AUTHORITATIVE DNS server, do NOT enable re cursion.
41 dnssec-validation no; 将yes改为no
###########################################
DNS 的正向解析
vim /etc/named.rfc1912.zones 编辑配置文件
zone " westos.com" IN { westos.com 为任意域名
type master; 类型为主域名服务器
file ' westos.com.zone'; 本地正向解析的区文件
allow-update { none; }; 不允许动态更新本区的数据
};
配置文件格式不能错
cd /var/named
cp -p named.localhost westos.com.zone
与之前配置文件中编辑的file后面名称一致
-p 不能丢 需要连权限一起复制
vim westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expir
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.103
www A 172.25.254.103
$TTL 当有外部DNS服务器对你的DNS的这个领域进行查询时。这个记录会放置在对方DNS服务器内几秒钟。
SOA : Start of Authorit (授权开始)
五组数字:Serial,refresh,retry,expirt,minimum
Serial:该序号作为slave与master更新的依据,一般利用日期来设定。
Refresh:命令slave多久进行一次主动更新。
Retry:如果到了refresh的时间,但是slave却无法连接master时,那么多久之后,slave会再次的主动尝试与主机连线。
Expire:如果slave一直无法与master连接上,那么经过多久的时间后,则命令slave不要再连接master。
Minimum:没有指定生存期的数据,可以保存在数据库中的时间。
NS:Nmae server的缩写 后面接的一定是主机名称,代表这个zone的查询请向后面的这台主机要求。
后面的主机名称必须要有对应的ip。
A标记表示ip4
AAAA表示IP6
配置文件修改完毕后
systemctl restart named 重启named服务程序使更改生效
然后在测试主机中
vim /etc/resolv.conf
nameserver 172.25.254.103 编写域名解析
dig www,westos.com
######################################
DNS的反向解析
vim /etc/named.rfc1912.zones
zones "254.25.172. in-addr.arpa" IN {
type master;
file "westos.com.ptr";
allow-update { none; };
};
反向解析,配置文件的ip需要反着写
cd /var/named
cp -p named,loopback westos.com.ptr -p不能丢
vim westos.com.ptr
$TTL 1d
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.103
111 PTR bbs.westos.com.
112 PTR www,westos.com.
systemctl restart named 重启服务
在测试主机中
vim /etc/resolv.conf
nameserver 172.25.254.103
dig -x 172.25.254.111
dig-x 172.25.254.112
################################
关于dig的输出
QUESTION:提出实际的 DNS 查询
ANSWER: 响应(如果有)
AUTHORITY:负责域的名称服务器
ADDITIONAL:提供的其他信息,通常是关于名称服务器底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间。
###############################
双向解析
首先dns要有俩个ip,一个内网(即局域网,自己范围用)ip: 172.25.254.103 , 一个外网ip : 192.168.0.103
vim /etc/named.conf 更改DNS服务器的主配置文件
先如图所示,注释掉部分内容
cp -p westos.com.zone westos.com.localnet
vim westos.com.localnet
全文替换 172.25.254 为 192.168.0
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
file "westos.com.localnet";
allow-update { none; };
};
systemctl restart named
测试:
本机设定:
vim /etc/resolv.conf
nameserver 172.25.254.103
dig www.westos.com
得到结果为192.168.0.103
其他主机设定:
vim /etc/resolv.conf
nameserver 172.25.254.103
dig www.westos.com
得到结果为172.25.254.103
#####################################
辅助dns
辅助dns主要针对外网
集群:主要通知辅助的 ,目的是数据同步,让多台主机为一台主机工作。
#1)注释双向 dns 的配置 ,恢复之前的配置
#2)打开第二台虚拟机
#3)
yum install bind -y 安装bind
vim /etc/named.conf 修改配置文件
listen-on port 53 { any; };
allow-query { any; };
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type slave;
masters { 172.25.254.103; };
file "slaves/westos.com.zone";
allow-update { none; };
};
systemctl restart named 配置完成后重启named服务
#5)
firewall-cmd --permanent --add-service=dns
fire-cmd --reload
把dns服务添加到火墙内,并重启火墙服务
测试:
vim /etc/resolv.conf
nameserver 172.25.254.203
俩台主机分别
dig www.westos.com
得到相同的结果
###################################
dns更新
在主dns上:
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 172.25.254.203; }; 允许谁更新
also-notify { 172.25.254.203; };
systemctl restart named
在172.25.254.103上
nsupdate
> server 172.25.254.103
> update add hello.westos.com 86400 A 172.25.254.77
> send
在172.25.254.203上
dig hello.westos.com 得到 172.25.254.77
###########################
named服务重启报错
systemctl restart named
出现报错
> /var/log/messages 清空日志
systemctl restart named 重启服务
cat /var/log/messages 查看重启的报错
日志中会准确记录报错原因,例如配置文件的第几行什么内容有误。
#######dns的key更新######
systemctl restart named 有jnl文件,并且westos.com.zone也更新了
rm -fr westos.com.zone* 删除更新过的文件
cp -p /mnt/westos.com.zone /var/named/
systemctl restart named
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos 以HMAC-MD5生成密钥
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
key "westos" {
algorithm hmac-md5;
secret "自己生成的key"
};
vim /etc/named.conf
#option语句块外
include"/etc/westos.key"
vim /etc/named.rfc1912.zones
zone"westos.com" IN {
type master;
file"westos.com.zone"
allow-update {key westos;};
also-notify{172.25.254.200; };
};
systemctl restart named
scp Kwestos.* [email protected]:/opt 把钥匙锁发送给谁谁就可以更新
测试:
cd /opt ##/mnt根目录也可以
ls
nsupdate -k westos.+xxx.key
>server 172.25.254.100
>update add hello.westos.com 86400 A 172.25.254.123
>send
在主dns测试
dig hello.westos.com ##查看IP是否更新位172.25.254.123
cd /var/named 生成jnl文件
##ddns动态解析######
主机名固定,IP不固定
解析www,域名对应的IP是死的,不适用于动态网络,
如何让解析随IP变:
因为dhcp每次分配的IP都不同
IP dhcp服务知道是哪个IP
分配IP的时候告诉dns,把解析指向他
dhcp -->dhcp netword -->dns
ddns:
server的IP变,做客户端,通过dhcp获取IP
在主dns搭建dhcp网络,分配IP
把真机dhcp关了
在desktop开启dhcp,地址池,火墙添加dhcp
server火墙也要添加dhcp
把selinux都要关掉
在server分配到一个IP之后,dig test.westos.com还是没有IP
dhcp告诉dns,打开ddns-updates-style interim
添加key 配置dhcp文件 重启服务
在server重启服务 dig查看IP是否更改
主dns安装dhcp
yum install -y dhcp
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
14 ddns-update-style interim;
以下部分可以在man 5 dhcpd.conf中搜索ddns找到
key westos{
algorithm hmac-md5;
secret'自己生成的'
}
zone westos.com.{
primary 172.25.254.100;
key westos;
}
##测试:
在测试客户端删:
修改网络位dhcp
systemctl restart network
dig test.westos.com ##看到对应的IP
在修改dhcp的地址池,让客户端的IP可以改变
systemctl restart network
dig test.westos.com ##可以看到IP变为重新分配的。