linux 系统之DNS高速缓存以及DDNS动态域名服务的配置

一、dns介绍

简介

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。
主机名到IP地址的映射有两种方式:

DNS映射

1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

DNS服务器

提供DNS服务的是安装了DNS服务器端软件的计算机。服务器端软件既可以是基于类linux操作系统,也可以是基于Windows操作系统的。装好DNS服务器软件后,您就可以在您指定的位置创建区域文件了,所谓区域文件就是包含了此域中名字到IP地址解析记录的一个文件,如文件的内容是这样的:

这里写图片描述

primary name server = dns2  ##(主服务器的主机名是dns2 )
serial = 291            ##(序列号=2913、这个序列号的作用是当辅域名服务器来复制这个文件的时候,如果号码增加了就复制)
refresh = 10800 (3 hours)   ## (刷新=10800秒、辅域名服务器每隔3小时查询一个主服务器)
retry = 3600 (1 hour)       ## (重试=3600秒、当辅域名服务试图在主服务器上查询更新时,而连接失败了,辅域名服务器每隔1小时访问主域名服务器)
expire = 604800 (7 days)    ##(到期=604800秒、辅域名服务器在向主服务更新失败后,7天后删除中的记录。)
default TTL = 3600 (1 hour) ##(默认生存时间=3600秒、缓存服务器保存记录的时间是1小时。也就是告诉缓存服务器保存域的解析记录为1小时)
minimun=default 

二、dns高速缓存

1.基本配置

  • server服务器端 172.25.254.100

yum install -y bind         ##安装服务  
systemctl start named       ##开启named服务,此步操作会卡住,移动鼠标或操作键盘可以解决
systemctl enable named      ##开机启动named服务
firewall-cmd --permanent --add-service=dns      ##火墙策略
firewall-cmd --reload 

vim /etc/named.conf         
listen-on port 53 { any; };     ##将所有网络的53端口打开,any表示开在任意服务的53端口
allow-query     { any; };       ##any表示允许所有可达主机从这台dns服务器获取解析
forwarders      {172.25.254.250; }; ##转发器,本机解析不了就将请求转发给250

systemctl restart named
  • 客户端配置dns
vim /etc/resolv.conf    ##为本机配置dns解析服务器
nameserver 172.25.254.100

dig www.redhat.com

2.正向解析

正向解析是将域名映射为IP地址,例如,DNS客户机可以查询主机名称为server.zzidc.com的IP地址。要实现正向解析,必须在DNS服务器内创建一个正向解析区域。

cd /var/named/
cp -p named.localhost redhat.com.zone
vim redhat.com.zone
  1 $TTL 1D
  2 @       IN SOA  dns.redhat.com. root.redhat.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      dns.redhat.com.
  9 dns     A       172.25.254.100
 10 www     A       172.25.254.111

##dns.redhat.com.为我们的dns解析,root.redhat.com.为邮箱 


vim /etc/named.rfc1912.zones
 25 zone "redhat.com" IN {
 26         type master;
 27         file "redhat.com.zone";
 28         allow-update { none; };
 29 };

systemctl restart named

在我们的客户端用以下命令测试是否成功

dig www.redhat.com
状态含义
QUESTION提出实际的 DNS 查询
ANSWER响应
AUTHORITY负责域 / 区域的名称服务器
ADDITIONAL供的其他信息 , 通常是关于名称服务器底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间
NOERROR查询成功
NXDOMAINDNS 服务器提示不存在这样的名称
SERVFAIL DNS服务器停机或 DNSSEC 响应验证失败
REFUSEDDNS 服务器拒绝回答 ( 也许是出于访问控制原因 )

3.论叫机制

轮叫(压力均摊)
news A 172.25.254.111
news A 172.25.254.188

4.反向解析

cd /var/named/
cp -p named.loopback  redhat.com.ptr
vim redhat.com.ptr
  1 $TTL 1D
  2 @       IN SOA  dns.redhat.com. root.redhat.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      dns.redhat.com.
  9 dns     A       172.25.254.100
 10 10      PTR     bbs.redhat.com.
 11 20      PTR     hello.redhat.com.
vim /etc/named.rfc1912.zones
 48 zone "254.25.172.in-addr.arpa" IN {
 49         type master;
 50         file "redhat.com.ptr";
 51         allow-update { none; };
 52 };

5.双向解析

即不同的IP询问同一个域名,解析出不同的IP
man 5 named.conf
##在主配置文件中注释掉zone
 58 view local {
 59         match-clients{ 172.25.254.200; };
 60 
 61 zone "." IN {
 62         type hint;
 63         file "named.ca";
 64 };
 65 include "/etc/named.rfc1913.zones";
 66 };
 67 view other {
 68         match-clients{ any; };
 69 
 70 zone "." IN {
 71         type hint;
 72         file "named.ca";
 73 };
 74 include "/etc/named.rfc1912.zones";
 75 };

表示172.25.254.200访问时读取named.rfc1913.zones文件,其余读取named.rfc1912.zones文件

cp -p  /etc/named.rfc1912.zones /etc/named.rfc1913.zones
vim /etc/named.rfc1913.zones
zone "redhat.com" IN {
    type master;
    file "redhat.com.zone";
    allow-update { none; };
};
cp -p /var/named/redhat.com.zone /var/named/redhat.com.inter
vim /var/named/redhat.com.inter
:%s/172.25.254/192.168.0/g
将172.25.254.200 dns改为172.25.254.100测试即可

但是实际应用中,访问量优势高达几十万,只有一台dns服务器远远不够,为了分担dns的压力,我们需要再配置一台服务器(辅助dns)

172.25.254.200
yum install -y bind
systemctl start named
systemctl enable named
systemctl stop firewalld.service
systemctl disable firewalld.service
vim /etc/named.conf
listen-on port 53 { any; };
allow-query     { any; };
systemctl restart named
vim /etc/named.conf
nameserver 172.25.254.200
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
        type slave;             类型为辅助dns
        masters { 172.25.254.100; };        主dns为172.25.254.100
        file "slaves/redhat.com.inter"; 
        allow-update { none; };
};

重启服务更新OK,但是主dns修改辅助dns不会更新,辅助dns也需要重启服务才会更新,下面来解决这个问题
在主dns服务器172.25.254.100上做以下修改

vim /etc/named.rfc1912.zones
zone "redhat.com" IN {
        type master;
        file "redhat.com.inter";
        allow-update { none; };
        also-notify { 172.25.254.200; };##添加这一行,始终将更改同步到辅助dns服务器
};

dns服务器内容改变后重启服务更新OK,辅助dns服务器不需重启服务自动更新

下面介绍下redhat.com.zone文件内各项的含义

$TTL 1D
@       IN SOA  dns.redhat.com. root.redhat.com. (
                                        2017090505      ; serial    ##服务编号
                                        1D      ; refresh       ##刷新时间
                                        1H      ; retry         ##如果询问失败再次查询的时间
                                        1W      ; expire        ##到期日
                                        3H )    ; minimum       ##最短的到期日

三、dns key 更新

步骤一

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST redhat     ##生成密匙

cat Kredhat.+157+18569.key
redhat. IN KEY 512 3 157 4SJx4m33BpJnNpl8slHIWA==

步骤二

cp /etc/rndc.key /etc/redhat.key -p         ##生成dns的加密文件
vim /etc/redhat.key
key "redhat" {                      ##key名称
    algorithm hmac-md5;
    secret "4SJx4m33BpJnNpl8slHIWA==";      ##key的加密字符
};

步骤三

vim /etc/named.conf 
43 include "/etc/redhat.key";               ##指定dns服务读取的key文件

vim /etc/named.rfc1913.zones
zone "redhat.com" IN {
        type master;
        file "redhat.com.inter";
        allow-update { key redhat; };           ##指定redhat域可以被redhatkey 更新
};

##测试更新
nsupdate -k Kredhat.+157+62730.private
>server 172.25.254.100
>update add news.redhat.com 86400 A 172.25.254.234
>send
>quit

四、dhcpd 配置

vim /etc/dhcp/dhcpd.conf
 14 ddns-update-style interim;              ##开启dhcp更新dns功能

 37 key westos {                    ##dhcp更新dns时用到的key
 38   algorithm hmac-md5;
 39   secret 4SJx4m33BpJnNpl8slHIWA==;
 40 };
 41 
 42 zone westos.com. {                  ##指定dhcp更新的域名
 43          primary 127.0.0.1;             ##指定dns所在的主机ip
 44          key westos;                ##指定更新这个域时用到的key名称
 45        }
  • 测试
    • 设定一台主机网络的工作方式为dhcp
    • 设定这台主机的主机名music.westos.com,这个名称在原有的dns服务中是没有解析的
    • 重启网络看ip 和主机名称的解析
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值