Linux——高速缓存dns
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
dns用来做地址解析
dig 域名 ##解析一个域名
第一次访问一个域名的时候花费的时间会比较长,但是当你第一次解析过之后,再次解析就会减少花费时间。
dns高速缓存,作用是提高本地其他人的访问速度。
##一.安装部署dns
yum install bind.x86_64 -y (用yum search 寻找出来的)
systemctl start named (打开这个服务的时候会收集系统信息,所以要敲键盘)
systemctl enable named
systemctl stop firewalld
systemctl disable firewalld
启动named的时候要敲键盘,那样会生成/etc/rndc.key
dns的文件 /etc/resolv.com
端口是53,但是开在回环接口只是在本机内部,外部接受不到,所以当你开启服务的时候,却依然无法使用其他主机的网络服务,所以需要将这个端口开到他的网卡上去,报错的原因是你的服务不可到达,因为是开在了回环接口上。
#主配置文件:/etc/named.conf
#子配置文件: /etc/name.rfc1912.zones
#数据目录: /var/named
##二.高速缓存dns
vim /etc/named.conf
11行 listen-on port 53 {any;};后面的ip改为any ##接口在所有的网络地址打开
17行 allow-query {any;};后面localhost 改成any ##能够查询你当前dns的客户群体
18行添加: forwarders {172.25.254.54;}; ##当你的dns被询问地址却不知道的时候就会去54寻找
#测试
在客户主机
vim /etc/resolv.conf
nameserver 172.25.254.100
dig www.baidu.com
##三.权威dns的正向解析 ##给定一个域名,会解析出来IP
vim /etc/named.rfc1912.zones
zone "zjj.com" IN {
type master;
file "zjj.com.zone";
allow-update {none;};
}
cd /var/name/
cp -p named.localhost zjj.com.zone ##用-p是因为要把这个文件的所与属性都复制过来
vim zjj.com.zone
1 $TTL 1D
2 @ IN SOA dns.zjj.com. (后面要带个点)root.zjj.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.zjj.com.
9 dns A 172.25.254.238
10 www A 172.25.254.111
#测试:
dig www.zjj.com
##四.反向解析 ##给定一个IP,给你解析出来域名
vim /etc/named.rfc1912.zones
zone "254.25.172.(要反着写,如果ip是172.25.254)in-addr.arpa" IN {
type naster;
file "zjj.com.ptr";
allow-update {none;};
};
cp named.loopback zjj.con.ptr -p
vim zjj.com.ptr
1 $TTL 1D
2 @ IN SOA dns.zjj.com. root.zjj.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.zjj.com.
9 dns A 172.25.254.154
10 100 PTR www.zjj.com.
systemctl restart named
#测试:
dig -x 172.25.254.154
#五.dns双向解析 ##有选择性的让不同的网段查看不同的内容,主要表现为内外网访问地址的区别。
vim /etc/named.conf
51 view localnet {
52 match-clients {172.25.254.254;};
53 zone "." IN {
54 type hint;
55 file "named.ca";
56 };
57 include "/etc/named.rfc1912.zones";
58 include "/etc/named.root.key";
59 };
网址为172.25.254.254的主机在使用dns上网的时候可以看到/etc/named.rfc1912.zones的内容
60 view any {
61 match-clients {any;};
62 zone "." IN {
63 type hint;
64 file "named.ca";
65 };
66 include "/etc/named.rfc1912.zones.inter";
67 include "/etc/named.root.key";
68 };
cp /etc/named.rfc1912.zones /etc/named.rfc.1912.zones.inter
vim /etc/named.rfc1912.zones.inter
24 zone "zjj.com" IN {
25 type master;
26 file "zjj.com.inter";
27 allow-update { none; };
28 };
cp -p westos.com.zone zjj.com.inter
vim westos.com.inter
1 $TTL 1D
2 @ IN SOA dns.zjj.com. root.zjj.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.zjj.com.
9 dns A 1.1.1.238
10 www A 1.1.1.138
dns的配置文件比较特殊,注释等于全部开启。
当你在主dns进行过更改的时候如果不修改serial(对比一致性,来自westos.com.inter)的值(最大十位,超过不生效,所以一般使用年月日和第几次修改做标示,正好十位),辅助dns不会进行识别,
用stat zjj.com.inter 可以查看同步信息,
##六.辅助dns
主dns的设定
vim /etc/named.rfc1912.zones.inter ##修改的话最好不要用最近使用过的数字,因为可能存在缓存,导致同步不成功
systemctl restart named
注意:每次更改A记录文件后必须更改serial的数值,这个数值最大十位。
辅助dns上
yum install bind -y
systemctl start named
systemctl stop firewalld
vim /etc/named.conf ##修改的内容和刚刚开始配置dns服务一样的修改,两个地方改成any
vim /etc/named.rfc1912.zones
zone "zjj.com" IN {
type slave;
masters{172.25.254.238;};
file "slave/zjj.com.inter";
allow-update { none; };
};
systemctl restart named
#测试
将/etc/reslove.conf分别修改两个dns的地址,然后dig尝试
##七.dns的远程更新
chmod g+w /var/named
做下一个实验之前 cp -p /var/named/zjj.com.inter /mnt/
vim /etc/named.rfc1912.zone.inter
zone "zjj.com" IN {
type master;
file "zjj.com.inter";
allow-update { 172.25.254.254; };
also-notify {172.25.254.254; };
};
systemctl restart named
#测试
#在远程主机中 nsupdate
#> server 172.25.254.154 #添加
#> updata add bbs.zjj.com 86400 A 1.1.1.3
#> send
#> server 172.25.254.100 #删除
#> update delete bbs.zjj.com
#> send
#
#基于key的
cp /etc/rndc.key /etc/zjj.key -p
dnssec-****** -a HMAC-MD5 -b 128 -n HOST zjj
cat Kzjj+的**
vim /etc/zkk.key
key "rndc-key" {
algorithm hmac-md5;
secret "5eGJvqN9mw1NiYqQx3CQmA==";
};
vim /etc/named.conf
include "/etc/zjj.key";
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
vim /etc/named.rfc1912.zones.inter
zone zjj.com" IN {
type master;
file "zjj.com.inter";
allow-update { key zjj; };
also-notify {172.25.254.138; };
};
#测试
scp 把公钥和私钥都考过去
在有key的主机中执行nsupdate
##8.ddnsvim
主dns上
/etc/named.conf
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
systemctl restart named
辅助dns上,网络设置为dhcp