您的位置:首页 > 运维架构 > Linux

Linux系统DNS高速缓存

2017-08-10 00:21 351 查看

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


minimun=default



二、实验环境配置

1 重置虚拟机server,避免之前实验的干扰(此操作可以选择不做)
2 hostnamectl set-hostname DNS-SERVER,改域名(突出实验效果)
3 vim /etc/sysconfig/network-scripts/ifcfg-eth0
设备:eth0
静态网络:none
ip地址:真机加100
子网掩码:24(至少保证和实验机子是同一个网段)
4 改yum仓库
-->cd /etc/yums.repod
-->ls -> vim *.repo(已有yum仓库直接修改)                           -->baseurl=http://172.25.2254.250/rhel7
-->yum clean all ##更新yum仓库
-->vim /etc/sysconfig
5 vim /etc/resolv.conf 解析文件
nameserver 172.25.254.127 实验主机ip


1重置虚拟机server,避免之前实验的干扰



2 修改主机名和网络



3改yum仓库





4 解析文件配置



三、安装DNS

1 yum search dns -> yum install bind.x86_64 -> systemctl start named
查找——安装——开启
2  cat /etc/rndc.key
-->cat /dev/random      ##此步操作会卡住,在实验主机里进行鼠标或键盘操作可以解决
3  火墙策略
-->firewall-config      ##可以关闭firewall,但是不建议,从安全和实验效果方面
Configuration->permanent
-->zone->public->services->dns
-->options reloadfirewalld         ##重新加载防火墙配置
4 vim /etc/named.conf              ##配置文件
-->listen on port 53 {any; };      ##接收端口,所有人
-->allow-query {any; };            ##回答端口,所有人
-->forwarders {172.25.254.250; };  ##本机解析不了就问250这台机子
-->systemctl restart named
5 测试 dig www.baidu.com为例


1 安装



2 查询端口



3、修改配置文件



4、火墙策略



5 测试 第一次查询的是100的主机是22 msec



第一次查询的是127的主机是0msec



四、正向解析

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

1 cd /var/named->ls->cp -p named.localhost hello.com.zone
##(-p复制文件的权限,如果不加p,后面会操作出现错误)
2 vim /etc/named.conf
// forwarders {172.25.254.250; };           ##//注释掉这一行指向
3 vim /etc/named.frc1912.zones              ##(域文件)
-->复制zone "localhost" IN这六行到下面
改 "localhost"->"hello.com"                 ##域名
"named.localhost"-->"hello.com.zone"     ##正向解析文件
4 vim /var/named/hello.com.zone 正向解析文件
最大缓存是1D
@ ==wesots.com
SOA dns.westos.com. root.westos.com.  中间必须写. 不然会自动补齐
5 systemctl restart named
6 测试


1 修改配置文件



2下面指定域文件是需要操作修改的



修改如图





复制文件



修改如图



测试成功



指向 (指不规划名称规范化)
BBS CNAME   news.hello.com.
轮叫(压力均摊)
news    A   172.25.254.111
news    A   172.25.254.188


1BBS指向





2测试(注:轮叫在下面方向解析中测试)



五、反向解析

反向解析是将IP地址映射为域名。要实现反向解析,必须在DNS服务器中创建反向解析区域。反向域名的域名是server.zzidc.com。反向域名由两部分组成,域名前半段是其网络ID反向书写,而区域后半段必须是server.zzidc.com。

例如,如果要针对网络ID为192.168.10.0的IP地址来提供反向解析功能,则此反向区域的名称必须是10.168.192.server.zzidc.com。

1 cd /var/named
-->ls
-->cp -p named.loopback hello.com.ptr
##(-p复制文件的权限,如果不加p,后面会操作出现错误)
2 -->/*51-57*/                                ##注释掉如图
3 vim /etc/named.frc1912.zones (域文件)
复制 zone "1.0.0.127.in-addr.arpa" IN这六行到下面
改  "1.0.0.127.in-addr.arpa"-->""254.25.172.in-addr.arpa" ##网段
"named.loopback"-->"hello.com.ptr"                正向解析文件
4 vim /var/named/hello.con.ptr
5 systemctl restart named
6 测试


1修改域文件



2复制



测试反向和轮叫





六、双向解析

同一域名或者ip对应不同网段或者群体提供不同的解析文件。

1 cd /var/named
-->ls
-->cp -p hello.com.zone hello.com.inter
## (-p复制文件的权限,如果不加p,后面会操作出现错误)
2 vim hello.com.inter
%s/172.25.254/1.1.1./g                      ##替换
3 vim /etc/named.conf
-->内网和外网查询同一ip访问不同的网段,具体如图
-->67 include "/etc/named.frc1912.zones";
-->78 include "/etc/named.frc1913.zones";
4 vim /etc/named.frc1913.zones
-->复制19-23行到下面
改 "localhost"->"hello.com."                 ##域名
"named.localhost"-->"hello.com.inter"     ##正向解析文件
4 systemctl restart named
5 测试


1注释配置文件



修改配置文件



3 修改1913域文件



4复制解析文件



测试成功





七、DNS集群

1 实验客户机环境配置
(同上,vim /etc/resolvconfig-->swervername 实验客机IP)
2 实验客户机DNS安装(同上)
3 vim /etc/named.conf(同上)
4 vim /etc/named.frc1912.zones
-->复制zone "localhost" IN这六行到下面
改 "localhost"->"hello.com"                    ##域名
"type master" -->"type slave                ##解析类型
"named.localhost"-->"slaves/hello.com.zone" ##正向解析文件
-->systemctl restart named
5 实验主机
-->vim /etc/named.frc1913.zones
-->29 also-notify {182.25.254.227;}; ##允许实验客机同步更新网络
6 systemctl restart named
7 测试


1修改yum仓库



2安装bind



3修改客机解析文件,ip为客机ip



4修给named配置文件



5修改主机域文件,允许客机172.25.254.227更新同步



6修改客机域文件1912



6测试,集群成功



7主机修改了解析文件,客机没有更新



8主机进行了解析文件中serial更改(0是不进行检测修改)



9测试同步成功



八、更新 dns key

1 dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hello   ##生成密匙
-->cat Khello.+157+21621.key
hello. IN KEY 512 3 157 r6o0xcHcZDh9WadyE+7A2mA==
2 cp -p /etc/rndc.key /etc/hello.key    ##生成dns的加密文件,-p 复制权限
vim /etc/hello.key
key "hello" {                       ##key名称
algorithm hmac-md5;
secret "r6o0xcHcZDh9WadyE+7A2mA==";     ##key的加密字符
};
3 vim /etc/named.conf
-->43 include "/etc/hello.key";       ##指定dns服务读取的key文件
4 vim /etc/named.rfc1913.zones
-->zone "hello.com" IN {
type master;
file "hello.com.inter";
allow-update { key hello; }; ##指定hello域可以被hellokey 更新
};
-->systemctl restart named
5 chmod g+w /var/named/              ##给这个文件写的权限
6 getselbool -a | grep named         ##开启named文件写的功能
7 分发钥匙给客机
scp Khello.+157+21621.* root@172.25.254.227:/mnt/
8 测试


1生成钥匙,并把钥匙发给客机



2配置钥匙文件



3解析配置文件,读取钥匙文件



4给配置文件w权限



5域文件,允许key更新



6开启配置文件写的权限



7测试更新



8更新成功



九、DDNS

DDNS(Dynamic Domain Name Server)是动态域名服务的缩写。

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

服务原理: 也就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相

对应,这样其他上网用户就可以通过域名来进行交流。而最终客户所要记忆的全部,就是记住动态域名商给予的域名即可,而不用去管他们是如何实现的。

动态域名服务的对象是指IP是动态的,是变动的。普通的DNS都是基于静态IP的,有可能是一对多或多对多,IP都是固定的一个或多个。但DDNS的IP是变动的、随机的。随着市场需求的变化,DDNS需求功能也越来越多,越来越要求方便,市场现在已经有了不要第三方DDNS方支持的设备。

1 实验主机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 r6o0xcHcZDh9WadyE+7A2mA==;
40 };
41
42 zone hello.com. {               ##指定dhcp更新的域名
43         primary 127.0.0.1;      ##指定dns所在的主机ip
44          key hello;           2 测试
-->设定一台主机网络的工作方式为dhcp
-->设定这台主机的主机名music.hello.com,这个名称在原有的dns服务中是没有解析的
-->重启网络看ip 和主机名称的解析  ##指定更新这个域时用到的key名称
45 }


1主机dhcp配置文件,修改域名,解析地址,15行ddns更新



2修改如图,ip段,钥匙文件,域文件



2 测试
-->设定一台主机网络的工作方式为dhcp
-->设定这台主机的主机名music.hello.com,这个名称在原有的dns服务中是没有解析的
-->重启网络看ip 和主机名称的解析


1设置网卡配置文件为动态获取,获取设备是eth0,开机启动,修改客机名,重启网络获得新ip



2测试成功



3再次更换ip测试



4测试成功

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: