首页 > 代码库 > DNS

DNS

####DNS总揽

技术分享 

 

#######DNS资源记录

 

DNS 区域采用资源记录的形式存储信息。每条资

源记录均具有一个类型 , 表明其保留的数据类型

– A : 名称至 IPv4 地址

– AAAA : 名称至 IPv6 地址

– CNAME : 名称至 规范名称 “ ( 包含 A/AAAA 记录的另

一个名称 )

– PTR : IPv4/IPv6 地址至名称

– MX : 用于名称的邮件交换器 ( 向何处发送其电子邮件 )

– NS : 域名的名称服务器

– SOA :” 授权起始 “ , DNS 区域的信息 ( 管理信息 )

 

###DNS排错

它显示来自 DNS 查找的详细信息 , 其中包括

为什么查询失败 :

– NOERROR : 查询成功

– NXDOMAIN : DNS 服务器提示不存在这样的名称

– SERVFAIL : DNS 服务器停机或 DNSSEC 响应

验证失败

– REFUSED : DNS 服务器拒绝回答 ( 也许是出于

访问控制原因 )

 

 

 

#####dig输出的部分内容

 

标题指出关于查询和答案的信息 , 其中包括

响应状态和设置的任何特殊标记 ( aa 表示

权威答案 , 等等 )

– QUESTION : 提出实际的 DNS 查询

– ANSWER : 响应 ( 如果有 )

– AUTHORITY : 负责域 / 区域的名称服务器

– ADDITIONAL : 提供的其他信息 , 通常是关于名

称服务器

底部的注释指出发送查询的递归名称服务器以

及获得响应所花费的时间

 

#####缓存 DNS 服务器

 

BIND 是最广泛使用的开源名称服务器

RHEL , 通过 bind 软件包提供

防火墙开启端口 53/TCP 53/UDP

BIND 的主配置文件是 /etc/named.conf

/var/named 目录包含名称服务器所使用的

其他数据文件

 

########/etc/named.conf 的语法

 

// # 至行末尾是注释 ; /* */ 之间的文本也

是注释 ( 可以跨越多行 )

指令以分号结束 (;)

许多指令认为地址匹配列表放在大括号中、以

CIDR 表示法表示的 IP 地址或子网列表中 , 或者

命名的 ACL ( 例如 any; [ 所有主机 ]

none; [ 无主机 ] )

文件以 options 块开始 , 其中包含控制 named

如何运作的指令

zone 块控制 named 如何查对于其具有权威性的

根名称服务器和区域

 

########一些重要的 options 指令

 

listen-on 控制 named 侦听的 IPv4 地址

listen-on-v6 控制 named 侦听的 IPv6 地址

allow-query 控制哪些客户端可以向 DNS 服务器询问信息

forwarders 包含 DNS 查询将转发至的名称服务器的列表

( 而不是直接联系外部名称服务器 ; 在设有防火 墙的情况中

很有用 )

所有这些指令会将打括号中以分号分隔的元素视为地址匹配

列表 .

– listen-on { any; };

– allow-query { 127.0.0.1; 10.0.0.0/8 };

 

###################1.高速缓存DNS#######################

 

 server

 

安装bind

技术分享 

开启namd               systemctl start  named

开机重启named          systemctl  enabled named

关掉火墙                 systemctl  stop firewalld

开机不启动火墙           systemctl  disabled firewalld

selinux设为警告状态    setenforce  0

 

修改配置文件

vim  /etc/named.conf

技术分享 

 

 

重启服务   systemctl restart  named

 

client

 

修改配置文件

 vim /etc/resolv.conf

 

技术分享 

 

Ipserver端的ip

 

测试

 

从上一级DNS那里把信息缓存下来以供局域网内其他主机使用。主机名和IP 的对应是保存在缓存中的。

 

dig classroom.example.com  ####缓存的总服务器的dns

 

技术分享 

 

 

#####################2.DNS的正向解析######################

 

(1)并不需要上层DNS

/etc/named.conf 里的forwarders 那一行去掉。

 

(2)把待测时机器的DNS设置成我们接下来要配置的主机的IP

/etc/resolve.conf 中把IP 改为配置有DNS服务器的主机的IP

 

(3)/etc/named.conf ——/etc/named.rfc1912.zones ——/var/named/yourFileName

 

*/etc/named.conf 告诉我们域的配置文件在/etc/named.rfc1912.zones

技术分享 

 

*/etc/named.rfc1912.zones文件中添加新的域的相关结构体

 

 

在结构体里面指定这个域的具体的配置文件的名字这里时westos.com.zone, 这个只是个文件名一会儿要在/var/named/下创建这个文件其他地方都没有用

 

 

技术分享 

 

*/var/named/下创建并编辑westos.com.zone文件

 

技术分享 

 

文件编辑如下

 

技术分享 

 

重启服务

systemctl restart named

 

不写.的时候会自动补齐/etc/named.rfc1912.zones 里面新定义的域名这里就是westos.com。所以上面图中浅蓝色的部分可以把“.westos.com.”都去掉。

 

测试

 

技术分享 

 

 

############3.DNS轮询、CNAME更名 和 MX邮件服务器 #################

 

 

1DNS轮询

修改配置文件

vim  /var/named/westos.com.zone

技术分享 

 

测试

技术分享 

 

技术分享 

 

2CNAME更名

  

只需要在/var/named/westos.com.zone(这个名字是上面2中自己随便取的)编写内容如下

 

 

(3)MX邮件服务器

还是在/etc/named/westos.com.zone中编辑

技术分享 

 

重启服务

systemctl restart named

测试

 

技术分享 

 

cat /var/spool/mail/root

技术分享 

######################4.反向解析########################

 

 

/etc/named.conf ——/etc/named.rfc1912.zones——

 

* /etc/named.conf最后面的即行指明了具体域的结构体的配置文件在/etc/named.rfc1912.zones文件里面。

*/etc/named.rfc1912.zones里面定义方向解析的域的结构体

技术分享 

 

我现在的局域网是172.25.254.x 要把地址的前3段反着写。file是这个域的方向解析的具体参考文件。名字可以随便取。

 

* /var/named/下创建并编辑刚才定义的文件

技术分享 

cp -p  因为这里//var/named/下的文件所属组为named

技术分享 

 

验证

技术分享 

 

########################5.DNS双向解析#########################

 

 

cp -p  /var/named/westos.com.zone  /var/named/westos.com.inter

vim  /var/named/westos.com.inter

技术分享 

 

cp -p  /etc/named.rfc.1912.zones   /etc/named.rfc.1912.zones.inter

vim  /etc/named.rfc.1912.zones.inter

技术分享 

 

vim /etc/named.conf

技术分享 

 

systemctl restart  named

 

测试


 

dig  www.westos.com

技术分享 

 

 

###6.DNS集群#####

前提装软件关火墙关SELINUNX,开启53端口

 

1.dns配置IP172.25.254.145

1vim /etc/named.conf

 

    //listen-on port 53 { 127.0.0.1; };

    //allow-query     { localhost; };

    dnssec-validation no;

    //代表开启着接口

 

技术分享 

2vim /etc/named.rfc1912.zones

技术分享 

 

 3cp -p /var/named/      /var/named/westos.com.zone   #特殊文件注意权限

技术分享 

 4)vim /var/named/westos.com.zone

技术分享 

 

5vim /etc/resolv.conf

技术分享 

 

6systemctl restart named

 

2.辅助DNSIP172.25.254.245

1vim /etc/named.conf

技术分享 

 

 2vim /etc/named.rfc1912.zones

技术分享 

3vim /etc/resolv.conf

技术分享 

 

4systemctl restart named

5测试

在辅助DNS服务器上面测试

技术分享 

 

 

当主服务器上的DNS发生变化时辅助DNS不会发生变化

只有rm -fr /var/named/slaves/www.westos.com (在辅助服务器上执行)

辅助DNS 才能更新数据

 

3.辅助DNS动态获取主DNS数据同步

1DNS

1-1

vim /etc/named.rfc1912.zones

技术分享 

1-2

vim  /var/named/westos.com.zone

技术分享 

 

1-3

systemctl restart named

 

2)辅助DNS

测试

技术分享 

 

 

4.DNS更新远程主机对DNS A记录修改)

1DNS

1-1

cp -p /var/named/westos.com.zone  /mnt  ##备份便于恢复

1-2

vim /etc/named.rfc1912.zones

技术分享 

 

1-3 #此目录必须对named组有执行

技术分享 

 

1-4

systemctl restart named

 

2辅助DNS

 

技术分享 

测试 dig hello.westos.com

恢复  rm -rf   var/named/westos.com.zone  /var/named/westos.com.zone.jnl

       cp -p /mnt/westos.com.zone    /var/named/

 

5.Key才可对主机进行更新

1)DNS

1-1

cp -p /etc/rndc.key  /etc/westos.key

1-2

cd /mnt

 dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos

1-3

vim /etc/westos.key

技术分享

 

1-4

  )vim /etc/named.conf

   options {};外添加 include "/etc/westos.key";

技术分享 

 

1-5

vim /etc/named.rfc1912.zones

技术分享 

 

1-6

技术分享 

 

1-7

systemctl restart named

 

2.辅助DNS

技术分享 

 

测试主DNS

技术分享 

 

 

6.ddns

DHCP+DNS=DDNS

动态DNSDDNS需要DNSDHCP来协同工作。

Linux下也可以实现DDNS不过DNS需要Bind8以上的版本DHCP需要3.0以上的版本。

  1)恢复  rm -rf /var/named/westos.com.zone  /var/named/westos.com.zone.jnl

           cp -p /mnt/westos.com.zone    /var/named/

  2)安装dhcp(主服务器0

Systemctl start dhcpd

技术分享 

vim  /etc/dhcp/dhcpd.conf

技术分享 

删除2728

技术分享 

 

技术分享 

 

systemctl restart dhcpd

systemctl restart named

 

辅助服务器

 

设置dhcp

技术分享 

systemctl  restart network

可以获取到动态IP

 

测试

 

 

 

 


DNS