DNS与DDNS

DNS

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
在进行实验前,先配置两台虚拟机的内存为1G
DNS与DDNS

然后再配置虚拟机的IP及yum源及主机名称
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##配置IP
vim /etc/yum.repos.d/rhel_dvd.repo ##配置yum源
yum claen all
systemctl restart network ##重启网络
hostnamectl set-hostname dns-server.westos.com | dns-client.westos.com ##设置主机名

配置server虚拟机为服务器端
主机名为 dns-server.westos.com
IP地址为 172.25.254.133
配置desktop 虚拟机为客户端
主机名为 dns-client.westos.com
IP地址为 172.25.254.233

DNS服务的信息说明

A:正向记录
PTR:反向,ip到域名
host -l example.com:查看域中的所有主机
dig -t soa example.com:辅助dns
软件包 : Bind bind-chroot caching-nameserver
DNS主配置目录
主配置目录 :/var/named/chroot/
DNS主配置文件
主配置文件 :/var/named/chroot/etc/named.conf
DNS A记录存放目录:
记录存放目录: /var/named/chroot/var/named

配置dns正向解析

(1) SOA资源记录
每个数据库文件按的开始处都包含了一个起始授权记录(Start of Authority Record),简称SOA记录。SOA定义了域的全局参数,进行整个域的管 理设置。一个区域文件只允许存在唯一的SOA记录。
(2) NS资源记录
名称服务器(NS)资源记录表示该区的授权服务器,它 们表示SOA资源记录中指定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在区根处至 少包含一个NS记录。
(3) A资源记录
地址(A)资源记录把FQDN映射到IP地址,因而解析器能查询FQDN对应的IP地址。
(4) PTR资源记录
相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。
(5) CNAME资源记录
规范名字(CNAME)资源记录创建特定FQDN的别名。用户可以通过定义的CANME记录中的别名来访问
(6) MX资源记录
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮 件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器。
(7) 泛域名解析记录
除了在数据库文件中定义的资源记录以为,其他的所有域名都可以被DNS所解析出来。

DNS高速缓存服务器

DNS安装包 bind.x86_64
server端:
[[email protected] ~]# yum search dns ##查找DNS的安装包
[[email protected] ~]# yum install bind.x86_64 -y
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# ll /etc/rndc.key
ls: cannot access /etc/rndc.key: No such file or directory
[[email protected] ~]# systemctl start named ####开启服务,需要在虚拟机中输入任意字符
[[email protected] ~]# cat /dev/random ####查看输入的任意字符
��L��� ���
��p�<��@��������4y���a*�ryӀ�8\�:��/�[��ꃎ��.i�5�s2^C
[[email protected] ~]# ll /etc/rndc.key
-rw-r—–. 1 root named 77 May 9 06:40 /etc/rndc.key
[[email protected] ~]# vim /etc/named.conf
11 listen-on port 53 { any; }; ####允许所有人访问53端
17 allow-query { any; }; ####允许所有人访问本机
18 forwarders { 172.25.254.250; }; ####向上访问
DNS与DDNS

[[email protected] ~]# systemctl restart named ####重启named服务
[[email protected] ~]# dig www.baidu.com ####查看百度的dns

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33726
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A

;; ANSWER SECTION:
www.baidu.com. 613 IN CNAME www.a.shifen.com.
www.a.shifen.com. 182 IN A 183.232.231.173
www.a.shifen.com. 182 IN A 183.232.231.172

;; AUTHORITY SECTION:
. 513456 IN
. 513456 IN NS g.root-servers.net.
. 513456 IN NS e.root-servers.net.
. 513456 IN NS i.root-servers.net.
. 513456 IN NS l.root-servers.net.
. 513456 IN NS j.root-servers.net.
. 513456 IN NS a.root-servers.net.
. 513456 IN NS f.root-servers.net.
. 513456 IN NS b.root-servers.net.
. 513456 IN NS d.root-servers.net.
. 513456 IN NS c.root-servers.net.
. 513456 IN NS m.root-servers.net.
. 513456 IN NS h.root-servers.net.

;; Query time: 14 msec ####访问用了14ms
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri May 05 22:13:07 EDT 2017
;; MSG SIZE rcvd: 312
[[email protected] ~]# netstat -antlpe | grep named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 25 130207 32637/named
tcp 0 0 172.25.254.141:53 0.0.0.0:* LISTEN 25 130202 32637/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 25 130200 32637/named
tcp6 0 0 ::1:953 :::* LISTEN 25 130208 32637/named
tcp6 0 0 ::1:53 :::* LISTEN 25 130204 32637/named
client端:
[[email protected] ~]# vim /etc/resolv.conf
nameserver 172.25.254.141
[[email protected] ~]# dig www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38341
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A

;; ANSWER SECTION:
www.baidu.com. 563 IN CNAME www.a.shifen.com. ####内网域名
www.a.shifen.com. 132 IN A 183.232.231.172
www.a.shifen.com. 132 IN A 183.232.231.173

;; AUTHORITY SECTION:
. 513406 IN NS j.root-servers.net.
. 513406 IN NS a.root-servers.net.
. 513406 IN NS l.root-servers.net.
. 513406 IN NS m.root-servers.net.
. 513406 IN NS h.root-servers.net.
. 513406 IN NS f.root-servers.net.
. 513406 IN NS k.root-servers.net.
. 513406 IN NS e.root-servers.net.
. 513406 IN NS d.root-servers.net.
. 513406 IN NS b.root-servers.net.
. 513406 IN NS c.root-servers.net.
. 513406 IN NS i.root-servers.net.
. 513406 IN NS g.root-servers.net.

;; Query time: 1 msec ####客户端访问用了1ms,说明dns高速缓存服务器成功
;; SERVER: 172.25.254.141#53(172.25.254.141)
;; WHEN: Fri May 05 22:13:56 EDT 2017
;; MSG SIZE rcvd: 312

dns搭建

server端:
DNS与DDNS
DNS与DDNS
[[email protected] ~]# vim /etc/named.conf  ####查看配置文件
56 include “/etc/named.rfc1912.zones”;####表示可在/etc/named.rfc1912.zones查看可访问的名单
57 include “/etc/named.root.key”;
DNS与DDNS
[[email protected] ~]# vim /etc/named.rfc1912.zones ####编写访问文件
25 zone “westos.com” IN {  ####westos.com内网域名
26 type master;####类型
27 file “westos.com.zone”;####文件名
28 allow-update { none; };
29 };
30
DNS与DDNS
[[email protected] ~]# cp -p /var/named/named.localhost /var/named/westos.com.zone ####复制一份默认dns表为为westos的dns表,-p表示不忽略权限复制
[[email protected] ~]# vim /var/named/westos.com.zone ####编辑westos.com的dns表
$TTL 1D ####在一天之内可访问
@ IN SOA dns.westos.com. root.westos.com. ( ####@表示westos.com,即在/etc/named.rfc1912.zones中编辑的内容中”“的内容,dns.westos.com.是dns主机名,末尾加.表示IP地址结束点,不加则会变成dns.westos.com.westos.com,即自动补齐,root.westos.com.表示维护的用户
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com. ####指定dns主机,NS:域名的名称服务器
dns A 172.25.254.141 ####指定dns主机的IP,A:名称至IPv4地址,server端,
www A 172.25.254.241 ####添加的A记录,client端
DNS与DDNS
[[email protected] ~]# vim /etc/resolv.conf  ####编辑dns访问文件
DNS与DDNS
[[email protected] ~]# systemctl restart named

client端:
[[email protected] ~]# vim /etc/resolv.conf  ####编辑dns访问文件
[[email protected] ~]# dig www.westos.com ####dig:询问DNS域名服务器
DNS与DDNS
DNS与DDNS

dns规范域名与dns邮件

server端:
(1)CNAME资源记录
规范名字(CNAME)资源记录创建特定FQDN的别名。用户可以通过定义的CANME记录中的别名来访问
(2) MX资源记录
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是为DNS域名处理或转发邮件的主机。处理邮 件指把邮件投递到目的地或转交另一不同类型的邮件传送者。转发邮件指把邮件发送到最终目的服务器。
DNS与DDNS
[[email protected] ~]# cd /var/named/
[[email protected] named]# vim westos.com.zone
music CNAME music.a.westos.com. ####用户可以通过定义的CANME记录中的别名来访问,这里定义了music.a的规范名称,CNAME : 名称至”规范名称”
music.a A 172.24.254.111 ####域名解析
music.a A 172.25.254.123 ####域名解析
westos.com. MX 1 172.25.254.133. ####邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。MX:用于名称的邮件交换器(向何处发送其电子邮件)
DNS与DDNS
[[email protected] named]# systemctl restart named

client端:
[[email protected] ~]# dig music.westos.com  ####规范域名
;; ANSWER SECTION:
music.westos.com. 86400 IN CNAME music.a.westos.com. ####规范域名与内网域名
music.a.westos.com. 86400 IN A 172.25.254.111
music.a.westos.com. 86400 IN A 172.25.254.123
DNS与DDNS
[[email protected] ~]# dig -t mx westos.com  ####邮件域名
DNS与DDNS
[[email protected] ~]# mail [email protected]  ####发送邮件
[[email protected] ~]# mailq  ####查看邮件
DNS与DDNS

多台机器的dns

首先,我们给server虚拟机添加一个网卡
DNS与DDNS
然后,配备新的网卡
[[email protected] named]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ifconfig
[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth1####以eth0的模式来编辑eth1
[[email protected] network-scripts]# vim ifcfg-eth1 ####配置eth1网络
1 DEVICE=eth1
3 IPADDR=172.25.0.133
[[email protected] network-scripts]# systemctl restart network ####重启网络
[[email protected] network-scripts]# systemctl restart named ####重启named
[[email protected] network-scripts]# ifconfig
DNS与DDNS

server端:
DNS与DDNS
[[email protected] ~]# vim /etc/named.conf ####编辑配置文件
将 51-57行注释掉,然后编辑
59 view localnet {
60 match-clients { 172.25.254.0/24; }; ####匹配172.25.254网段
61 zone “.” IN {
62 type hint;
63 file “named.ca”;
64 };
65 include “/etc/named.rfc1912.zones”; ####对于172.25.254网段的客户端则在/etc/named.rfc1912.zones看dns表
66 };
67
68 view internet {
69 match-clients { 172.25.0.0/24; }; ####匹配172.25.0网段
70 zone “.” IN {
71 type hint;
72 file “named.ca”;
73 };
74 include “/etc/named.rfc1912.inter”; ####对于172.25.0网段的客户端则在/etc/named.rfc1912.inter看dns表
75 };

DNS与DDNS
[[email protected] ~]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
[[email protected] ~]# vim /etc/named.rfc1912.inter ####设置0网段的访问文件
DNS与DDNS
[[email protected] ~]# cp -p /var/named/westos.com.zone /var/named/westos.com.inter
[[email protected] ~]# vim /var/named/westos.com.inter ####编辑0网段的DNS表
DNS与DDNS
[[email protected] ~]# systemctl restart named ####重启服务

client端:
[[email protected] ~] ifconfig eth0 172.25.0.233 netmask 255.255.255.0
[[email protected] ~] vim /etc/resolv.conf ####编辑DNS访问文件
nameserver 172.25.0.133
[[email protected] ~] dig www.westos.com
DNS与DDNS

DNS反向解析

PTR资源记录
相对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。
server端:
DNS与DDNS
[[email protected] ~]# vim /etc/named.rfc1912.zones ####编辑访问文件
49 zone “254.25.172.in-addr.arpa” IN {####对172.25.254网段的反向解析
50 type master;
51 file “westos.com.ptr”;
52 allow-update { none; };
53 };
DNS与DDNS
[[email protected] ~]# cp -p /var/named/named.loopback /var/named/westos.com.ptr ####复制模版
[[email protected] ~]# vim /var/named/westos.com.ptr ####编辑反向DNS表
$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.133
12 PTR www.westos.com. ####反向解析地址
13 PTR bbs.westos.com. ####反向解析地址
DNS与DDNS

DNS更新

server端:
DNS与DDNS
[[email protected] ~]# cp -p /var/named/westos.com.zone /mnt ####备份DNS解析表
[[email protected] ~]# ll /mnt/
total 4
-rw-r—–. 1 root named 322 May 9 08:40 westos.com.zone
[[email protected] ~]# vim /etc/named.rfc1912.zones
25 zone “westos.com” IN {
26 type master;
27 file “westos.com.zone”;
28 allow-update { 172.25.254.233; }; ####允许172.25.254.233上传dns更新
29 };
DNS与DDNS
[[email protected] ~]# chmod 770 /var/named/
[[email protected] ~]# setsebool -P named_write_master_zones 1&emsp;####更改selinux布尔值
[[email protected] ~]# systemctl restart named ####重启服务

上传后测试:
[[email protected] named]# dig hello.westos.com
DNS与DDNS

client端:
上传:
[[email protected] ~]# nsupdate ####更新上传dns
> server 172.25.254.133
> update add hello.westos.com 86400 A 172.25.254.222 ####上传
> send
DNS与DDNS
删除:
[[email protected] ~]# nsupdate
> server 172.25.254.133
> update delete hello.westos.com ####删除
> send
DNS与DDNS

恢复
DNS与DDNS
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls
data named.empty slaves westos.com.zone
dynamic named.localhost westos.com.inter westos.com.zone.jnl
named.ca named.loopback westos.com.ptr
[[email protected] named]# systemctl restart named
[[email protected] named]# vim westos.com.zone ####会发现zone文件变了
DNS与DDNS
[[email protected] named]# rm -fr westos.com.zone* ####删除更新后的DNS表和更新日志文件
[[email protected] named]# cp -p /mnt/westos.com.zone . ####将备份文件还原到当前位置,即/var/named/
[[email protected] named]# systemctl restart named ####重启服务

DNS更新加密

server端:
制作dns key
dnssec-****** -a HMAC-MD5 -b 256 -n HOST westoskey ####dnskey加密
DNS与DDNS
[[email protected] ~]# cd /mnt
[[email protected] mnt]# dnssec-****** -a HMAC-MD5 -b 256 -n HOST westoskey ####制作dns key,此时也需要在虚拟机中输入任意字符来提供钥匙,-a表示加密类型 -b表示加密的字符的大小 -n表示加密名称
Kwestoskey.+157+42859
[[email protected] mnt]# ls  ####~.key是公钥,~.private是私钥匙
Kwestoskey.+157+33365.key Kwestoskey.+157+33365.private westos.com.zone
[[email protected] mnt]# cat Kwestoskey.+157+33365.key  ####查看**
westoskey. IN KEY 512 3 157 hwztXgG4AwxW011HXR02eAStB5Gz3INJvIuDHfY6QpA=
[[email protected] mnt]# cp -p /etc/rndc.key /etc/westos.key ####复制规范**文件
[[email protected] mnt]# vim /etc/westos.key ####编辑**文件
ey “westoskey” {  ####“”中是**名称
algorithm hmac-md5;
secret “hwztXgG4AwxW011HXR02eAStB5Gz3INJvIuDHfY6QpA=”; ####**
};
DNS与DDNS
[[email protected] mnt]# vim /etc/named.rfc1912.zones ####编辑查看文件
25 zone “westos.com” IN {
26 type master;
27 file “westos.com.zone”;
28 allow-update { key westoskey; }; ####使用key更新
DNS与DDNS
[[email protected] mnt]# vim /etc/named.conf ####编辑配置文件使可以查看**文件
43 include “/etc/westos.key”; ####**文件地址
[[email protected] mnt]# systemctl restart named
[[email protected] mnt]# scp Kwestoskey.+157+33365.* [email protected]:/mnt/ ####将**发送给客户端

client端:
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# ls
Kwestoskey.+157+33365.key Kwestoskey.+157+33365.private
[[email protected] mnt]# nsupdate -k Kwestoskey.+157+33365.private ####使用key加密上传
> server 172.25.254.133
> update add hello.westos.com 86400 A 172.25.254.200
> send

DNS与DDNS

测试:
dig hello.westos.com
DNS与DDNS

DDNS

DDNS(Dynamic Domain Name Server)是动态域名服务的缩写。
DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

服务原理

也就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来进行交流。而最终客户所要记忆的全部,就是记住动态域名商给予的域名即可,而不用去管他们是如何实现的。
动态域名服务的对象是指IP是动态的,是变动的。普通的DNS都是基于静态IP的,有可能是一对多或多对多,IP都是固定的一个或多个。但DDNS的IP是变动的、随机的。随着市场需求的变化,DDNS需求功能也越来越多,越来越要求方便,市场现在已经有了不要第三方DDNS方支持的设备.
即在DHCP动态分配地址的时候,同时上传到服务器的DNS表,便于动态域名解析

DDNS动态域名解析

在进行该实验前,先将上一个实验的/var/named/westos.com.zone和/var/named/westos.com.zone.jnl删除
DNS与DDNS
该实验,依旧采用dns的两台虚拟机来实现
server端:
DNS与DDNS
[[email protected] ~]# yum install dhcp -y  ####下载dhcp服务
[[email protected] ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[[email protected] ~]# cd /mnt
[[email protected] mnt]# ls
Kwestoskey.+157+57222.key Kwestoskey.+157+57222.private westos.com.zone
[[email protected] mnt]# cat Kwestoskey.+157+57222.private  ####查看密码,并复制
[[email protected] mnt]# vim /etc/dhcp/dhcpd.conf  ####编辑配置文件
删除 37之后 删除27 28
7 option domain-name “westos.com”;  ####客户端名称
8 option domain-name-servers 172.25.254.141; ####server端IP
14 ddns-update-style interim;  ####ddns服务更新上传dns
30 subnet 172.25.254.0 netmask 255.255.255.0 { ####网段 子网掩码
31 range 172.25.254.150 172.25.254.240;  ####IP池
32 option routers 172.25.254.250;  ####网关
33 }
34 key westoskey {
35 algorithm hmac-md5;
36 secret DEl4Xt4XibiIhcfjHgNyGbRXLAQr+HLMe4ZXn1eQYxU=;
37 };
38 zone westos.com. {
39 primary 127.0.0.1;  ####回环
40 key westoskey;
41 }
DNS与DDNS
DNS与DDNS
[[email protected] mnt]# systemctl start dhcpd ####开启dhcp服务
[[email protected] mnt]# systemctl restart dhcpd ####重启dhcp服务

client端:
拔掉网线
hostnamectl set-hostname ppt.westos.com ####设置主机名称为~.westos.com
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
IPADDR=172.25.254.241
ONBOOT=yes
:wq
systemctl restart network ####重启网络
ifconfig ####查看本机ip
DNS与DDNS
dig ppt.westos.com
DNS与DDNS