Linux中DNS高级配置

dns高速缓存

服务端:
先安装bind(bind是最广泛使用的开源缓存dns服务器),配置火墙

yum install bind -y      
systemctl start named        
systemctl enable named       
firewall-cmd --permanent --add-service=dns     ##若是火墙开启需配置火墙将dns加入火墙允许列表
firewall-cmd --reload     

这里写图片描述

vim /etc/named.conf        
11    listen-on port 53 { any; };    ##设置named监听的端口号,ip地址
17    allow-query     { any; };      ##允许哪些客户端可以访问dns服务
18    forwarders { 114.114.114.114; }; ##设置dns服务不知道域名解析时询问此ip主机
32    dnssec-validation  no;         ##不需要验证

这里写图片描述
这里写图片描述
重启服务

客户端:
vim /etc/resolv.conf
这里写图片描述

测试:
在客户端dig www.baidu.com
可以看到客户端可以解析域名,并且第一次访问时延时较高,但是再次访问时延时为0
这里写图片描述
这里写图片描述
这里写图片描述

netstat -antlupe | grep named      ##查看named服务所用端口

这里写图片描述

dns的正向解析

vim /etc/named.rfc1912.zones

 zone "westos.com" IN {
        type master;
         file "westos.com.zone";
         allow-update { none; };
 };

这里写图片描述

cd /var/named
cp -p named.localhost westos.com.zone

这里写图片描述

vim westos.com.zone

 $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.114
www            A              172.25.254.114

这里写图片描述
注:“@”符表示在子配置文件中所设定的那个域名(westos.com),该文件中所有的域名如dns.westos.com的结尾都需要添加一个“.”,否则会被该@符读取
第一行的TTL是一种设定,后面的1D表示该记录文件里面的各项记录的预设TTL值为86400秒,即刚好一天
IN定义出目前的记录类型是属于internet class的
SOA表示目前区域的授权记录开始,其后面的值为区域授权主机和管理信箱
serial表示修改的时间及次数,当自己在修改记录文件时需要更改serial的值,否则修改无法被slave识别;
refresh表示数据多久进行一次更新
retry表示如果slave的对数据更新失败后,多久后进行重试
expire记录逾期时间,即超过该时间slave未与master进行联系,系统会放弃retry并标记该数据标识为过期
minimum最小预设TTL的值,如果在文件开头没有设置TTL的值,将以该处的值为准
这里172.25.254.114表示从105获得解析;172.25.254.114表示把要维护的域www,westos.com解析为172.25.254.114;NS表示域名的名称服务器;A表示名称至ipv4地址。

systemctl restart named          ##重启服务

测试:在客户端添加本地域名解析

vim /etc/resolv.conf
nameserver 172.25.254.114

这里写图片描述
dig www.westos.com查看,可以看到将www.westos.com解析为172.25.254.114
这里写图片描述

CNAME解析轮询及邮件域名解析
vim /var/named/westos.com.zone 

$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.100
  www          A       172.25.254.100
  bbs        CNAME      linux
  linux        A       172.25.254.111
  linux        A       172.25.254.222      
  westos.com.  MX 1    172.25.254.250.  ##MX:邮件交换器

这里写图片描述

systemctl restar named        ##重启服务

测试:

dig bbs.westos.com
dig linux.westos.com           ##可看到解析轮询

这里写图片描述
这里写图片描述

mail [email protected]         ##发送邮件
.                            ##发送
mailq                        ##邮件队列
dig -t  mx  westos.com       ##查看westos.com dns

可以看到由于发送给的那台主机没有接受,邮件会被拒收退回。但是邮件发送地址解析成功
这里写图片描述
这里写图片描述

dns反向解析

vim /etc/named.rfc1912.zones

zone "254.25.172.in-addr.arpa" IN {
    type master;
    file "westos.com.ptr";
    allow-update { none; };

这里写图片描述

cd  /etc/named
cp -p named.loopback westos.com.ptr

vim  /var/named/westos.com.ptr

$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.100
111 PTR bbs.westos.com.
222 PTR www.westos.com.

这里写图片描述
测试:在客户端

dig -x 172.25.254.111
dig -x 172.25.254.222

这里写图片描述
这里写图片描述

dns双向解析

cp -p  /var/named/westos.com.zone /var/named/westos.com.localnet
vim /var/named/westos.com.localnet
:%s/172.25.254/192.168.0/g    ##将文件中所有的172.25.254替换为192.168.0

这里写图片描述

cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.localnet
vim /etc/named.rfc1912.localnet

zone "westos.com" IN {
type master;
file "westos.com.localnet";
allow-update { none; };
};

这里写图片描述

vim /etc/named.conf

51到57行注释掉
 60 view localnet {
 61         match-clients { 172.25.254.114; };
 62         zone "." IN {
 63                 type hint;
 64                 file "named.ca";
 65         };
 66         include "/etc/named.rfc1912.localnet";
 67 };

 70 view internet {
 71         match-clients { any; };
 72         zone "." IN {
 73                 type hint;
 74                 file "named.ca";
 75         };
 76         include "/etc/named.rfc1912.zones";
 77 };

这里写图片描述

firewall-cmd --permanent --add-service=dns     ##若是火墙开启需配置火墙将dns加入火墙允许列表
firewall-cmd --reload           ##重新加载火墙配置
systemctl restart named         ##重启服务

这里写图片描述

测试:

dig www.westos.com      ##同一域名内外网解析的ip不一样

这里写图片描述
这里写图片描述

dns集群

辅助dns:

  yum install bind -y
  vim /etc/named.conf 
 11         listen-on port 53 { any; };
 17         allow-query     { any; };

这里写图片描述

vim /etc/named.rfc1912.zones 

     25 zone "westos.com" IN {
 26         type slave;
     27         masters { 172.25.254.114; };
 28         file "slaves/westos.com.zone";
 29         allow-update { none; };
 30 };

这里写图片描述

  vim /etc/resolv.conf 
  nameserver 172.25.254.214

这里写图片描述

  systemctl restart named
  systemctl stop firewalld.service 

这里写图片描述

主dns:

 vim /etc/named.rfc1912.zones

 25 zone "westos.com" IN {
 26         type master;
 27         file "westos.com.zone";
 28         allow-update { none; };
 29         also-notify { 172.25.254.214; };
            allow-transfer {172.25.254.214; };    ##企业7之前版本需写此参数,是否允许此ip同步zone文件。企业7之后版本可以不用写 
 31 };

这里写图片描述

  vim /var/named/westos.com.zone
      3                  20180801301    ; serial  ##每次修改dns时需改变serial值,辅dns文件根据此值来判断主dns文件是否改变。此值最多十位数。
 10 www     A       172.25.254.111  ##改变dns

这里写图片描述

  systemctl restart named         ##重启服务

测试:辅助端重启named服务

dig www.westos.com   ##可以看到当主dns改变时辅dns自动修改

这里写图片描述

远程更新dns

更新端:
为了方便恢复,在做下面操作时先复制westos.com.zone文件到/mnt/下
这里写图片描述
在/etc/named.conf配置文件将之前写的用/* /注释并将系统自带的解开注释(此文件注释用/ */)
这里写图片描述
编辑/etc/named.rfc1912.zones文件

vim /etc/named.rfc1912.zones 
     zone "westos.com" IN {
     type master;
     file "westos.com.zone";
     allow-update { 172.25.254.214; };
     also-notify {172.25.254.214; };
     };

这里写图片描述

chmod  770 /var/named/       
systemctl restart named

这里写图片描述
发送更新信息:在之前指定ip主机上发送更新dns信息

nsupdate
> server 172.25.254.114
> update add abc.westos.com 86400 A 172.25.254.111
> send

在接收方/var/named/中有westos.com.zone.jnl文件生成
这里写图片描述
这里写图片描述
测试:

dig www.westos.com

这里写图片描述
删除更新信息

nsupdate
> server 172.25.254.114
> update delete abc.westos.com         
> send

删除,删除之后再次dig www.abc.westos.com发现无法解析
这里写图片描述
测试:

dig www.westos.com                  

这里写图片描述

远程加密更新dns

配置环境:删除上面生成的两个文件,并将/mnt/下的westos.com,zone用cp -p过来 重启服务named

rm -fr westos.com.zon*
cp /mnt/westos.com.zone  . -p
systemctl restart named

这里写图片描述
更新端加密:
执行加密命令后会卡顿,这时要在主机里打开一个shell随机输入字符即可, -a表示加密模式 -b 表示加密字节 -n Host 表示类型是HOST 名称是westos

cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos  ##加密
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key

key "westos" {
    algorithm hmac-md5;
    secret "CXYDjeyGrNSv5LRFwoneiQ==";  ##密码可在key文件查看
};

这里写图片描述
这里写图片描述

vim /etc/named.conf

include "/etc/westos.key";

这里写图片描述

vim /etc/named.rfc1912.zones

zone "westos.com" IN {
    type master;
    file "westos.com.zone";
    allow-update { key westos; };
    also-notify {172.25.254.214; };
 30 };

这里写图片描述

systemctl restart named
scp Kwestos.+157+54897.* [email protected]:/mnt/  ##发送密钥给允许远程更新的主机

这里写图片描述
远程同步:
当不使用key文件时,发送被拒绝,并报错update failed: REFUSED

nsupdate
> server 172.25.254.100
> update add abc.westos.com 86400 A 172.25.254.111
> send

这里写图片描述
使用key文件可以远程更新并删除

nsupdate -k Kwestos.+157+54897.key  
> server 172.25.254.114
> update add abc.westos.com 86400 A 172.25.254.111
> send
> update delete abc.westos.com
> send

这里写图片描述
这里写图片描述
这里写图片描述

dns动态域名解析

配置环境:删除上面生成的两个文件,并将/mnt/下的westos.com,zone用cp -p过来 这次不重启named服务
这里写图片描述
dns服务端:

yum install dhcp -y                         ##安装dhcp服务
firewall-cmd --permanent --add-service=dhcp ##若是火墙开启需将dhcp服务加入火墙允许列表
firewall-cmd --reload                       ##重新加载火墙配置
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf  ##修改配置文件 
vim /etc/dhcp/dhcpd.conf                    ##修改配置文件,
7 option domain-name "westos.com";    ##改域名
8 option domain-name-servers 172.25.254.114; ##dns
14 ddns-update-style interim;        ##开启dhcp更新dns功能
##27,28行删除
30 subnet 172.25.254.0 netmask 255.255.255.0 {         ##网段,子网掩码
31   range 172.25.254.60 172.25.254.80;   ##ip池
32   option routers 172.25.254.14;        ##网关
33 }
##35行之后全删除
34 key westos {
35         algorithm hmac-md5;
36         secret "CXYDjeyGrNSv5LRFwoneiQ=="; ##密码可在key文件查看
37 };
38 
39 zone westos.com. {
40         primary 127.0.0.1;             ##此处ip设定为本机回环接口,速度快
41         key westos;
42 }

这里写图片描述
这里写图片描述

systemctl restart dhcpd               ##重启服务
less /var/lib/dhcpd/dhcpd.leases      ##查看服务端分配出去的ip

dns客户端:

hostnamectl set-hostname test.westos.com         ##更改主机名为test.westos.com
vim /etc/sysconfig/network-scripts/ifcfg-hahaha  ##配置网络为dhcp
systemctl restart network                 ##重启网络

这里写图片描述

dig test.westos.com            ##可以看到通过dhcd获得ip

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq657886445/article/details/81546291
今日推荐