admin管理员组文章数量:1546542
DNS和DDNS的安装和配置
一、DNS简介
1、DNS服务器的工作原理
域名服务(DNS)是一种分布式数据库,它提供从机器名到数字IP地址的映射。
DNS服务最常用的软件是BIND(Berkeley Internet Name Domain),BIND提供了解析器和名字服务器软件,解析器作实际的查询工作,名字服务器负责响应。BIND将名字服务器分成三个部分:
1. 主服务器包含了一个域的全部数据
2. 次服务器则有效地从主服务器复制DNS数据库
3. 缓冲服务器通过缓冲查询来建立例外的DNS数据库
域名体系层次结构图如下
2、DNS的分类
1)唯高速缓存域名服务器(Cache-only Server)
不包含域名数据库,它每次从某台远程服务器取得域名服务器查询的信息。一旦取得一个回答,就将它放入高速缓存中,下次查询相同的信息就用此回答。
2)主域名服务器(primary Name Server)
主域名服务器是特定域所有信息的权威来源,从域管理员构造的本地文件中加载域信息,该文件包含服务器具有的部分域结构的最精确信息。主域名服务器需要配置一组完整的文件。
3)辅助域名服务器(Second Name Server)
辅助域名服务器用来从主域名服务器中转移一整套域信息,它是可选的配置选项。区文件从主域名服务器转移出来,作为磁盘文件保存在辅助域名服务器中。辅助域名服务器不需要配置本地区文件,只需要配置主配置文件(named.conf),高速缓存初始化文件(named.ca)和回送文件(named.local)。
3、本次实验各文件之间的关系示意图
二、安装DNS(Domain Name System)
yum install bind -y
systemctl start named #此时打开需要读取一个文件/etc/rndc.key文件,但这个文件默认不存在,所以需要在主机上敲键盘生成该文件,然后就可以打开服务
若是想查看某一个服务的端口,可以查看文件cat /etc/services | grep domain,以domain服务为例
主配置文件: /etc/name.conf
子配置文件: /etc/named.rfc1912.zones
数据目录: /var/named
三、配置
1、简单配置,非权威DNS
这里进行测试必须了解dig命令,dig命令是常用的域名查询工具,可以用来测试域名系统是否正常
当使用客户端dig www.baidu命令时,出现报错说连接超时,则需要查看服务端的端口,是否是回环端口,若是,则需要改变。
当出现dig状态是status: SERVFAIL,则表示地址解析的dns服务器也不知道该如何访问,则可添加下面配置的18行来进行修改,写入一个知道的ip地址
[root@server ~]# vim /etc/named.conf
--> 11 listen-on port 53 { any; }; #表示向所有客户主机打开这个53端口
17 allow-query { any; }; #表示允许所有主机连接该dns服务器
18 forwarders { 172.25.254.250; }; #表示当客户端主机没有服务端dig访问的内容时,则访问这个主机来进行访问
[root@server ~]# systemctl restart named #重启服务
客户端,进行地址解析
[root@localhost ~]# vim /etc/resolv.conf
--> nameserver 172.25.254.170 #dns服务端主机ip
测试
[root@localhost images]# dig www.qq
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.qq
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13418
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 11
...
;; Query time: 0 msec #第一次时间会较长,后面时间较短
;; SERVER: 172.25.254.250#53(172.25.254.250)
;; WHEN: Sat Nov 25 09:53:52 EST 2017
;; MSG SIZE rcvd: 302
2、权威DNS的正向解析
通过域名得到相对应的ip地址
在一个没有连接外网的主机上进行dns服务器配置如下:
[root@server ~]# vim /etc/named.conf
--> 11 listen-on port 53 { any; }; #表示向所有客户主机打开这个53端口
17 allow-query { any; }; #表示允许所有主机连接该dns服务器
[root@server ~]# systemctl restart named
此时,用客户端进行测试:
[root@localhost ~]# dig www.westos
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 53264
修改服务端
可以直接在/etc/named.conf主配置文件里面修改,但会造成排错不好找,而且如果添加的很多之后,会使得文件太长。所以可以在该文件包含的文件/etc/named.rfc1912.zones文件中修改。
[root@server ~]# vim /etc/named.rfc1912.zones
--> 25 zone "westos" IN { #""中的内容表示客户端请求的域名地址
26 type master; #配置为主DNS服务器
27 file "named.westos.zone"; #去访问这个文件,这个文件本身并没有,需要自己建立
28 allow-update { none; };
29 };
[root@server ~]# cd /var/named/
[root@server named]# cp -p named.localhost named.westos.zone
[root@server named]# vim named.westos.zone
--> $TTL 1D
##表示缓存可以保存一天
@ IN SOA dns.westos. root.westos. (
##@表示/etc/named.rfc1912.zones/文件里面zone "westos" IN引号里面的内容,没有以'.'结尾的会默认添加@所表示的信息
##dns.westos. 默认复制过来的文件是一个@符
##root.westos. 管理员
0 ; serial
1D ; refresh
##表示一天后重新刷新
1H ; retry
##若没有得到答案,1小时后再次询问
1W ; expire
3H ) ; minimum
##3小时内若答案没有修改,则回答原来的答案,可以防止DOS攻击
NS dns.westos. ##nameserver
dns A 172.25.254.170
www A 172.25.254.50 ##所提供该域名服务的ip地址
[root@server named]# systemctl restart named
客户端重新进行测试:
[root@localhost ~]# dig www.westos
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> www.westos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9458
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
...
;; QUESTION SECTION:
;www.westos. IN A
;; ANSWER SECTION:
www.westos. 86400 IN A 172.25.254.50
;; AUTHORITY SECTION:
westos. 86400 IN NS dns.westos.
;; ADDITIONAL SECTION:
dns.westos. 86400 IN A 172.25.254.170
;; Query time: 0 msec
;; SERVER: 172.25.254.170#53(172.25.254.170)
;; WHEN: Sat Nov 25 10:39:08 EST 2017
;; MSG SIZE rcvd: 93
3、权威DNS的反向解析
客户端输入dig -x ip,显示出想要的域名
[root@localhost ~]# dig -x 172.25.254.55
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 48122
[root@server named]# vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN { ##反响解析应该注意地址应该反方向写
type master;
file "westos.loopback";
allow-update { none; };
};
[root@server named]# cp -p named.loopback westos.loopback
[root@server named]# vim westos.loopback ##内容解释和2中一样
$TTL 1D
@ IN SOA dns.westos. root.westos. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.
dns A 172.25.254.55
55 PTR www.westos. ##测试输入的需要反响解析的ip所对应的域名内容
[root@server named]# systemctl restart named
此时再次进行测试:
[root@localhost ~]# dig -x 172.25.254.55
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25237
;; QUESTION SECTION:
;55.254.25.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
55.254.25.172.in-addr.arpa. 86400 IN PTR www.westos.
;; AUTHORITY SECTION:
254.25.172.in-addr.arpa. 86400 IN NS dns.westos.
;; ADDITIONAL SECTION:
dns.westos. 86400 IN A 172.25.254.170
...
4、dns的双向解析
使内网和外网不同的人解析到不同的ip地址
[root@server named]# vim /etc/named.conf
view localnet {
match-clients { 172.25.254.70; }; ##表示内网解析到的
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; ##内王访问的文件
include "/etc/named.root.key";
};
view othernet { ##外网
match-clients { any; }; ##除了172.25.254.70这个ip地址之外的ip
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter"; ##外网要访问这个文件,该文件需要自己创建
include "/etc/named.root.key";
};
[root@server named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
[root@server named]# vim /etc/named.rfc1912.inter
zone "westos" IN {
type master;
file "named.westos.inter"; ##把需要区分内外网的域名外网访问文件重新建立修改
allow-update { none; };
};
[root@server named]# cp -p named.westos.zone named.westos.inter
[root@server named]# vim named.westos.inter
$TTL 1D
@ IN SOA dns.westos. root.westos. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.
dns A 1.1.1.170
www A 1.1.1.50 ##改为想要显示的外网的地址
不同客户端进行测试
内网ip测试172.25.254.70:
[root@localhost ~]# dig www.westos
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58908
;; QUESTION SECTION:
;www.westos. IN A
;; ANSWER SECTION:
www.westos. 86400 IN A 172.25.254.50
;; AUTHORITY SECTION:
westos. 86400 IN NS dns.westos.
;; ADDITIONAL SECTION:
dns.westos. 86400 IN A 172.25.254.170
;; Query time: 0 msec
;; SERVER: 172.25.254.170#53(172.25.254.170)
;; WHEN: Sat Nov 25 11:48:40 EST 2017
;; MSG SIZE rcvd: 93
外网ip测试:
[root@server named]# dig www.westos
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50415
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.westos. IN A
;; ANSWER SECTION:
www.westos. 86400 IN A 1.1.1.50
;; AUTHORITY SECTION:
westos. 86400 IN NS dns.westos.
;; ADDITIONAL SECTION:
dns.westos. 86400 IN A 1.1.1.170
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Nov 25 11:48:03 EST 2017
;; MSG SIZE rcvd: 93
可以看出不同ip所得到的ip地址是不同的
5、主从DNS服务器的同步
为了缓解主机的压力,可以创建一个辅助DNS的服务器,和主的DNS进行同步,使有的客户端可以通过辅助DNS得到结果
主DNS配置:
vim /etc/named.rfc1912.inter
also-notify { 172.25.254.175; };
systemctl restart named
辅助DNS配置:
vim /etc/named.conf any any
[root@dns-slave named]# vim /etc/named.rfc1912.zones
zone "westos" IN {
type slave;
masters { 172.25.254.170; };
file "slaves/westos.inter";
allow-update { none; };
};
[root@dns-slave named]# systemctl restart named
测试:用两个外网主机,resolv.conf分别写为主和辅助的DNS,进行dig测试
6、DNS的远程更新
1)基于ip的更新
在主DNS上面更改
vim /etc/named.rfc1912.inter
allow-update { 172.25.254.175; };
systemctl restart named
测试:
在175主机上
输入nsupdate命令,进行同步
server 172.25.254.170 ##主DNS
update add bbs.westos 86400 A 1.1.1.3 ##添加
send
server 172.25.254.170
update delete www.westos ##删除
send
2)基于密钥的更新
cp -p /etc/rndc.key /etc/westos.key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
vim /etc/westos.key
将里面的名称改为westos,并将secret后面引号里面的具体数值改为生成的密钥
vim /etc/named.conf
添加
include "/etc/westos.key";
vim /etc/namde.rfc1912.inter
allow-update { key wesots; };
测试:
scp Kwestos.+157+07295.* root@172.25.254.175:/mnt
在175主机上运行命令
nsupdate -k Kwestos.+157+07295.key
进行和基于ip的一样的测试
四、DDNS
修改dns
vim /etc/named.conf
include "/etc/westos.key";
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localnet { #内网
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
vim /etc/named.rfc1912.zones
zone "westos" IN {
type master;
file "named.westos.zone";
allow-update { key westos; }; ##有westos key的客户端主机可以访问
};
vim named.westos.zone
$TTL 1D
@ IN SOA dns.westos. root.westos. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.
dns A 172.25.254.170
修改dhcp
安装dhcp,修改配置文件
vim /etc/dhcp/dhcpd.conf
option domain-name "westos";
option domain-name-servers 172.25.254.170;
ddns-update-style interim;
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.197 172.25.254.210;
option routers 172.25.254.170;
}
key westos {
algorithm hmac-md5;
secret "GgUPXCeBC7rQOk2pw8XYmw==";
};
zone westos.com. {
primary 127.0.0.1;
key westos;
}
重启两项服务,然后配置客户端
客户端的ip设为dhcp模式,并且配置主机名为www.westos,在进行dig www.westos会显示的是得到dhcp的ip的ip地址
版权声明:本文标题:安装配置DNS服务器、DDNS的配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726532347a1074292.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论