Linux下高速缓存DNS(Domain Name System)的设置

mac2024-03-11  16

一、背景知识

DNS总揽 1.权威名称服务器 (1)是什么? 存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据。 (2)类型 Master:包含原始区域数据。有时称作“主要”名称服务器。 Slave:备份服务器,通过区域传送从Master服务器获得的区域数据的副本。有时称做“次要”名称服务器。 2.非权威/递归名称服务器 客户端通过其查找来自权威名称服务器的数据(比如收到客户的提问时,虽然它自己不知道答案,但它会去问114.114.114.114等权威DNS,从而将结果缓存到自己的里面,下一个客户再提问相同问题的时候,可以直接告诉它答案)。递归名称服务器的类型包括仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具权威性。 2.DNS的查找步骤 客户端上的Stub解析器将查询发送至/etc/resolv.conf中的名称服务器。如果这个服务器具有权威性,会直接将答案发给客户端,如果没有权威性,则会去访问权威服务器从而得到客户的问题答案,缓存下来并告诉客户答案。 3.DNS中常见的资源类型

主机记录(A记录)A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的ip地址上PTRip对应至地址,和A记录相反IPv4主机记录(A记录),IPv6主机记录(AAAA)地址对应至IPMX邮件交换器记录

4.dns主要由3个文件: (1)/etc/named.conf 主配置文件,我给它叫1号文件,里面是dns最主要的信息,包括dns的端口(53)对哪个ip开放,对哪台主机开放,是否进行安全检测等参数设置。其中对域名正反向的管理放置在/etc/named.rfc1912.zones文件里。 (2)/etc/named.rfc1912.zones 我叫它2号文件 (3)/var/named里面有named.localhost,named.loopback等文件,这个文件里的东西相当于一个表格,里面有域名和ip的对应关系。我叫它3号文件

二、部署DNS的环境搭建

1.desktop(dns服务器)上的配置

将desktop虚拟机作为DNS服务器,在reset虚拟机desktop之后 (1)改ip,改主机名

1. hostnamectl set-hostname dns #修改主机名为dns 2. vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 配置网络ip为172.25.254.123,PREFIX为24.BOOTPROTO为none 3. systemctl restart network

(2)配置yum源,使能下载dns服务软件bind

先将镜像挂载上,在进yum.repos.d里面的westos.repo修改源 4.vim /etc/yum.repods/westos.repo

已配置好: (3)使虚拟机能上网: 首先看真机路由功能是否开启,masquerrade=tes,开启了 在配置文件将虚拟机的网关设为172.25.254.13(真机ip),并route -n 查看网关设置是否成功。 检测:ping 114.114.114.114,可以ping通

2.server上的配置(测试)

配置网络ip 重启网络,ip配置成功

实验开始:

三、搭建一个高速缓存dns服务器?(非权威)

步骤一:在desktop搭建dns服务器 在desktop上关闭防火墙 (1)在desktop上安装dns服务软件bind: 先search搜寻到 再安装 安装成功: 查看软件的配置文件rpm -qc bind,可以看到它的配置文件是/etc/named.conf (2)开启dns服务:systemctl start named

注意:不能正常开启,因为named服务的开启需要/etc/rndc.key文件的存在。而这个.key文件本来不存在,在开启服务的时候会同时生成,但是这个文件里面加密字符太短,需要敲击物理键盘延长加密字符。延长的过程可以通过cat /etc/rndc.key 看到,逐渐变长,到达长度后可正常开启。 (3)查看53端口是否对172.25.254.123开放 修改配置文件: 原来, 修改后,端口对任何主机任何用户都开放,并设置该非权威dns的下一站是114.114.114.114(权威dns) 不进行安全检测,no 修改后重启服务systemctl restart named (4)将dns所在主机desktop的域名解析指向权威的dns114.14.114.114

vim /etc/resolv.cong 进去后添加 nameserver 114.114.114.114

步骤二:在server上进行测试 (1)将211主机的域名解析设置为非权威dns服务器的ip。 如何设置?

vim /etc/resolv.conf #进去增添nameserver指向

(2)dig www.baidu.com,耗时 481msec (3)dig www.baidu.com,耗时0msec ================================ 为什么第二次比第一次时间短? 因为第一次server问desktop的时候,desktop不知道,于是desktop问了114.114.114.114,问完并缓存了,所以第二次再有客户来问的时候,desktop可以直接给答案了。 减少了问114.114.114.114的过程,所以时间会少。

四、如何搭建一个权威的dns服务器?

有问题问自己,不要再问114.114.114.114了 步骤一:在desktop上 (1)将域名解析指向改为自己 vim /etc/resolv.conf 改为nameserver 172.25.254.123 (2)在/etc/named.conf 里去掉114.114.114.114 为了避免主配置文件过长,一些信息就写在/etc/named.rfc1912.zones里 (3)在/etc/named.rfc1912.zones–主配置文件named.conf里的子文件

(4)切换到/var/named复制named.localhost 生成一个新的文件,westos.org.zone 在新生成的文件westos.org.zone里编辑内容。【在这个域名里找什么主机就写什么】 修改后 步骤二:在server上测试 dig ff.westos.org(已预先存入表格,可正确找到) 输入一个域名里(westos.org)未知的域名,不能找到,但会告诉你谁对此搜索结果负责

五、反向解析

通过ip找域名地址,正向解析和反向解析是分开者的,二者没有任何的关系。 步骤一:在dns服务器(desktop上) (1)编辑/etc/named.rfc1912.zones设置反向解析

vim /etc/named.rfc1912.zones

(2)进入/var/name,将named.loopback文件复制一下,生成新的172.25.254.ptr文件

cp -p named.loopback 172.25.254.ptr

(3)编辑172.25.254.ptr文件

vim 172.25.254.ptr

(4)重启服务named 步骤二:在server上测试 dig -x 172.25.254.1

六、双向解析

双向解析就是特定的用户使用特定的文件,内网解析为内网的,外网解析为外网的。 本实验将172.25.254看成内网段,1.1.1看成外网段 步骤一:在dns服务器上

1. cp -p /var/named/westos.org.zone /var/named/westos.org.inter #带权限复制一份 2. vim westos.org.inter #将里面的172.25.254全部换成1.1.1网段 3. cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter #带权限复制 4. vim /etc/named.rfc1912.inter #将文件指向改为westos.org.inter(外网) 5. vim /etc/namned.conf #写清楚内网访问哪个文件外网访问哪个文件 6. systemctl restart named

(1)3号文件复制修改成外网(1.1.1) (2)2号文件复制修改指向 (3)更改主配置文件

配置文件里 步骤二:在内网主机123和外网主机211测试 内网主机123:解析出172.25.254.33 外网主机211:解析为1.1.1.33

七、建立辅助dns,缓解主dns服务器的压力

为了避免影响,将主dns服务器配置文件的双向解析注释掉,并恢复原来的内容 步骤一:将server作为辅助dns (1)配置yum源,下载安装dns服务软件bind,并开启named服务(开启的同时需要敲击物理键盘,使得加密字符达到一定长度) (2)

1. hostnamectl set-hostname slave.westos.org #设置主机名 2. vim /etc/named.conf #改端口,主机名为any,并不进行安全检测 3. vim /etc/named.rfc1912.zones #进去增添 zone "westos.org" IN{ type slave; masters{172.25.254.123;}; file"slaves/westos.org.zone"; allow-update{none;} }; 4.systemctlrestart named 5.vim /etc/resolv.conf #将nameserver指向自己 6.关闭火墙

(1)改主机名 (2)修改主配置文件vim /etc/named.conf (3)修改主配置文件下属所指向的2号文件vim /etc/named.rfc1912.zone (4)编写域名解析文件vim /etc/resolv.conf指向自己 (5)重启服务 步骤二:在主dns上

1.vim /etc/named.rfc1912.zones 添加: also-notify {172.25.254.211; }; 2.重启服务

步骤三:测试 (1)在主dns上dig ff.westos (2)在从dns上dig ff.westos.org

(3)主dns变动,从dns跟着变动。 但是变的时候,/var/named/westos.org.zone 里面的serial 前的数字要每次都增大 主dns: 从dns:

八、如何通过远程进行更新?

实验背景:本可以通过ip进行远程更新,但是不安全,别人换个ip就可以更新你的dns了。先做这个不安全的(实验1),再做密钥更新(实验2)。

实验1—通过ip更新

主dns上的操作

1. cd /var/named/ 2. cp -p westos.org.zone /opt/ #备份一下(安全) 3. vim /etc/named.rfc1912.zones 更改 allo-update{172.25.254.211 ;}; 4. systemctl restart named 5.ll /var/named/ #对named没有写权限,而更新的时候是以named身份 6.chmod g+w /var/named #添加写权限

(3)允许211进行更新 (5)查看权限,可见对naned没有写权限,另一台主机进行更新主dns的信息时,是以named的身份运行的。 (6)赋予权限 另外一台:

usupdate 然后回车 > server 172.25.254.132 #为123服务 >update add linux.westos.org 86400 A 172.25.254.22 #添加此信息 >send #将此信息发送到123 >update delete linux.westos.org #删除信息 >send

主dns查看是否更新成功 并且在westos.org.zone可以看到新添的linux.westos.org信息,不过得重启网络才能看到。 原本看不到 重启网络后,可以看到新添的信息了

实验2—通过密钥更新

主dns:

1. rm -rf /var/named/westos.org.zone* 2.cp -p /opt/westos.org.zone /var/named/ #删除实验1刚才做的,恢复 3.dnssec-keygen -a HMAC-MD5 -b 128 -n HOST dasuo #生成一把锁,名字叫dasuo,-a是加密方式,-b是密码长度,-n HOST 是名字类型有(ZONE,HOST,ENTITY等等) 可用dnssec-keygen --help查看 会有2个文件。一个是.....key,另一个是....private 4.cat / 5.cp /etc/rndc.key /etc/suo.key -p #复制一个模板,里面写锁的名字,钥匙 6.vim /etc/named.conf #进去添加锁的指向 7.重启服务

(1)恢复环境 (2)生成锁和钥匙 (3)查看钥匙密码 (4)复制个记录锁信息的文件模板 (5)修改模板中的信息

(6)主配置文件,添加锁的指向 (7)修改主配置文件下rfc.1912文件(2号文件) (8)重启服务 (9)发送钥匙文件(2)个到211主机的mnt目录下 另一台: 切换到mnt目录下

nsupdate -k Ksuokey.+157+14744.private > server 172.25.254.123 > update add hh.westos.org 86400 A 172.25.254.55 > send

进行添加: 在123上看;是否更新成功 在211上删除刚才添加的: 在123上检测,看不到了

九、动态域名解析ddns

在主dns上:

安装并配置dhcp 1. yum install dhcp -y 2. vim /etc/dhcp/dhcpd.conf #配置文件里什么都没,需要从/usr/share/doc/dhcp*/dhcpd.conf.example复制一份并修改 3.在配置文件添加dns服务 option domain-name "westos.org"; option domain-name-servers 172.25.254.123; ddns-update-style interim;#开启dns服务 subnet 172.25.254.0 netmask 255.255.255.0 { range 172.25.254.20 172.25.254.79; option routers 172.25.254.70; } key suokey{ algorithm hmac-md5; secret OxssbL0puTX+tDVd8YQwfQ==;#cat 自己生成的钥匙 }; zone westos.org.{ primary 127.0.0.1; key suokey; } 4. systemctl restart dhcpd 5. systemctl restart named 6. systemctl stop firewalld

(2)配置文件的修改 (3)配置文件添加dns服务 (4)重启dhcpd服务 (5)关闭火墙 (6)在/var/named/westos.zone 里添加tt(测试机的主机名) (7)重启named服务

server(测试): 将网络配置文件改为动态的: 重启网络,并查看ip 改主机名为tt:hostnamctl set-hostname tt dig tt.westos.org

最新回复(0)