DNS服务器
一:安装准备
1:允许dns通过i火墙
firewall-config
2:安装
yum search dns
yum install -y bind.x86_64
3:启动服务
systemctl restart named 在启动过程需要在敲键盘,随机录入字符启动
二:关于dns的配置
『1』
此种情况适用于当你dns解析没有域名对应的ip时,即没有资源时,可选择其他dns服务器去访问他里面的文件,类似于间接访问、然后将访问得到的数据缓存到自己的文件中
1:编辑文件
vim /etc/named.conf
options {
listen-on port 53 { any; }; ##回环接口,any表示内部都可以打开端口
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; ##外部访问也可以打开端口
forwarders { 114.114.114.114; }; ##如果自己缓存没有所需要的解析时,可以在访问此处ip ,从而得到解析
systemctl restart named
2:测试
另一台设备,设置其dns解析为安装bind软件的ip
[root@localhost ~]# vim /etc/resolv.conf
nameserver 172.25.254.119
serial 对比值,只要不一样就同步
『2』
dns解析
(1) 注释掉上面访问其他地方ip的那行,根据/etc/named.conf最后两行提示,编辑vim /etc/named.rfc1912.zones 文件
(2)root@localhost named]# vim /etc/named.rfc1912.zones
zone “sazhuo.com” IN { ##zpy.com为一个域
type master;
file “sazhuo.com.zone”; ##文件名称
allow-update { none; };
};
(3)[root@localhost named]# cd /var/named/
cp -p named.loopback sazhuo.com.zone
[root@localhost named]# vim sazhuo.com.zone
回环接口
**每串字符后面加’.’要不会自动加sazhuo.com 补齐sazhuo.com.zone
@ 表示之前文件中的名字 sazhuo.com**
(4)systemctl restart named
dig www.sazhuo.com
3.dns反向解析
即输入ip 查出域名
/etc/named.conf ——》/etc/named.rfc1912.zones——》
/etc/named.conf最后面的即行指明了,具体域的结构体的配置文件在/etc/named.rfc1912.zones文件里面。
在/etc/named.rfc1912.zones里面定义方向解析的域的结构体
(2) cp -p named.loopback zpy.com.ptr ##一定要加-p 表示也复制权限,负责会出现问题
注意:反向解析编辑sazhuo.com.ptr时里面的反向用PTR表示,而正向解析用A 表示。**
重点内容**
测试:
systemctl restart named
反向解析dig时一定要加-x
dns 双向解析
**当想要给不同用户不同的dns解析时
题:需要给172.25.254.19 dns为zpy.com.zone 内的解析。给其他用户其他解析,怎样设置?**
(1) 新建sazhuo.com.inter 域,写入解析
[root@localhost named]# cp -p zpy.com.zone zpy.com.inter
[root@localhost named]#vim zpy.com.inter
[root@localhost named]# cat zpy.com.zone
记住以上两个域的dns解析域名对应的ip
(2)
[root@localhost named]# cp /etc/named.rfc1912.zones /etc/named.rfc1913.zones
[root@localhost named]# vim /etc/named.rfc1913.zones
zone "zpy.com" IN {
type master;
file "zpy.com.inter"; ##更改地址为zpy.com.inter
vim /etc/named.rfc1913.zones
(3)
[root@localhost named]# vim /etc/named.conf
(4)重启服务测试
systemctl restart named
任意ip访问的是/etc/named.rfc1913.zones里面包含的域
[root@localhost ~]# dig www.zpy.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.zpy.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64146
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.zpy.com. IN A
;; ANSWER SECTION:
www.zpy.com. 86400 IN A 2.2.2.2
;; AUTHORITY SECTION:
zpy.com. 86400 IN NS dns.zpy.com.
;; ADDITIONAL SECTION:
dns.zpy.com. 86400 IN A 172.25.254.123
;; Query time: 0 msec
;; SERVER: 172.25.254.123#53(172.25.254.123)
;; WHEN: Wed Aug 09 01:10:24 EDT 2017
;; MSG SIZE rcvd: 90
172.25.254.19 访问/etc/named.rfc1912.zones里面包含的域
5.主从(同级,同层)DNS的设置
**准备两个DNS服务器,一个是B(server) 172.25.254.119 另一个是A(desktop) 172.25.254.219
我要让B做主DNS ,A做从DNS。**
A:
第0步
配置从DNS 172.25.254.219编辑服务的配置文件/etc/named.conf把localhost改为any把dnssec-validation 的值改为no
**火墙放行DNS
查看服务的端口号是否已经开启**。
修改A的DNS,使nameserver 172.25.254.179 就是A自己的IP。
vim /etc/resolv.conf
A上没有关于www.sazhuo.com的记录,B上有这个主机的解析。我们却dig不到,因为这两个DNS服务器之间没有联系。
第一步:
因为我们是把主DNS,B上的记录get到本地,所以得想象把同步下来的东西写到哪里。一般主机名和IP 的对应关系是再/var/named/下面的文件中的。看看/var/named/下哪个文件对named可写:
第二步:在/etc/named.conf中加下面内容**
第一行的sazhuo.com是域名
**type slave 指明这个DNS只是一个从DNS
重点内容master 指定主DNS是谁,这里写的是B的地址。
file 主DNS的主机名——IP 记录写在哪个文件,这里 的文件名就写什么。然后要放在slaves目录下。就是刚才看的那个 哪个文件对 named可写。**
B:
第一步 /etc/named.conf
同A中的第一部
第二步 /etc/named.rfc1912.zones
就是要加allow-transfer 和 also-notify 项。后面括号里写的是 允许传输给的从DNS(即B)的IP 和 自己的 “主机名——IP”的记录改变后,要通知给谁。
第三步 /var/named/sazhuo.com.zone
你修改“主机名 —— IP”记录后,再把 第3行的serial前的号改一下,再重启named,从DNS上就会得到最新的版本。注意,主DNS是否会通知从DNS的依据是serial 前的号是否又改变!!切忌。而且这个号码必须是10位数。
测试:
dns key 生成
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##生成密匙
vim /etc/westos key
vim /etc/named.conf
vim /etc/named.rfc.1912.zones
打开write master zones
vim /etc/dhcp/dhcpd.conf
一定要执行chmod g+s /var/named