linux的DNS企业级域名解析

一、什么是DNS服务?

DNS服务器是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域 名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式: 主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。客户端上的 Stub 解析器 将查询发送至 /etc/resolv.conf 中的名称服务器
如果名称服务器对于请求的信息具有权威性 , 会将权威答案发
送至客户端否则 , 如果名称服务器在其缓存中有请求的信息 ,
则会将非权威答案发送至客户端

DNS协议运行在UDP协议之上,使用端口号53。 

缓存 DNS 服务器:

  1. BIND 是最广泛使用的开源名称服务器
  2. 在 RHEL 中 , 通过 bind 软件包提供
  3. 防火墙开启端口 53/TCP 和 53/UDP
  4. BIND 的主配置文件是 /etc/named.conf
  5. /var/named 目录包含名称服务器所使用的其他数据文件

二、DNS的高速缓存

实验:

1.再真机上操作:

 [root@localhost10 ~]# systemctl start firewalld     //真机上开启火墙
 [root@localhost10 ~]# firewall-cmd --list-all      //查看火墙列表
public (default, active)
  interfaces: br0 enp0s25 wlp3s0
  sources: 
  services: dhcpv6-client ftp http ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

 [root@localhost10 ~]# firewall-cmd --add-masquerade    //添加伪装
[root@localhost10 ~]# firewall-cmd --list-all  
public (default, active)
  interfaces: br0 enp0s25 wlp3s0
  sources: 
  services: dhcpv6-client ftp http ssh
  ports: 
  masquerade: yes        //路由表添加成功
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	

此实验用虚拟机server来做服务机,用desktop做测试机

2.服务机设置: 主机连接wifi

  1)  设置server虚拟机上的ip为110

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=none
IPADDR0=172.25.254.110
PREFIX0=24
NAME=eth0
ONBOOT=yes
DEVICE=eth0
GATEWAY=172.25.254.10
  
[root@localhost ~]# systemctl restart network

 2)  设置虚拟机上的外网解析

vim  /etc/resolv.conf

[root@localhost ~]# vim /etc/resolv.conf    //外网解析为114.114.114.114

nameserver 114.114.114.114

3)  配置yum源

此实验用的是主机172.25.254.250

[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo

[rhel_dvd]
gpgcheck = 0
enabled = 1
baseurl = http://172.25.254.250/rhel7
name = Remote classroom copy of dvd

[root@localhost ~]# yum clean all    //清除yum源的缓存

4)下载dns

[root@localhost ~]# yum search dns        //查看dns的软件
[root@localhost ~]# yum install bind.x86_64 -y      //下载安装bind.x86_64
[root@localhost ~]# systemctl start named          //开启dns服务
[root@localhost ~]# systemctl stop firewalld      //关闭火墙
[root@localhost ~]# rpm -qc bind            //查找DNS的配置文件
[root@localhost ~]# vim /etc/named.conf       //打开DNS的配置文件

11         listen-on port 53 { any; };      // 将 11行的 本地的回环接口改为所有人any
17         allow-query     { any; };       // 将 17行 主机名称该为所有人any
18         forwarders  { 114.114.114.114; };   //添加18行 如果是客户机访问服务机服务机不知道的情况下,访问114.114.114.114
32         dnssec-validation no;   //认证备案修改为no

5) 重启网络服务和DNS服务

systemctl restart network       //重启网络
systemctl restart named        //重启DNS服务

3.客户机设置

   1) 设置ip

 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0
DNS1=172.25.254.110         //加 ip110 的DNS
BOOTPROTO=none
IPADDR0=172.25.254.210
PREFIX0=24
ONBOOT=yes
NAME=eth0

2)   重启网络

systemctl restart network

3) 测试

dig www.baidu.com 

三、DNS的正向解析

用于域名到IP地址的映射,当DNS客户端请求解析某个域名时,DNS服务器通过正向查找,并返回给DNS客户端对应的IP地址。

  1. 设定服务机的配置文件

vim  /etc/named.conf          再DNS服务的配置文件中“//”  "/*"  为注释的意思

2.添加域

vim   /etc/named.rfc1912.zones

复制样本,修改为以下参数
zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { none; };
};

3.配置westos.com.zone文件

[root@localhost ~]# cd /var/named
[root@localhost ~]# cp -p named.localhost westos.com.zone
[root@localhost ~]# 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.110
www     A       172.25.254.120
music   A       172.25.254.112
 [root@localhost ~]# systemctl restart named

4.重启服务

systemctl restart named

5.客户端测试

dig  www.westos.com

四、DNS的反向解析

用于IP地址到域名的映射,当DNS客户端请求解析某个IP地址时,DNS服务器通过反向查找,并返回给DNS客户端对应的域名。

1.服务端修改配置为键参数

取消 /etc/named.conf  主配置文件中 的外网解析,该为本地解析(大约18行)

再修改配置文件   /etc/named.rfc1912.zones

[root@localhost ~]# vim /etc/named.rfc1912.zones 
zone "254.25.172.in-addr.arpa" IN {
        type master;
        file "westos.com.inter";
        allow-update { none; };
};

2.创建反向解析的配置文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.loopback westos.com.inter
[root@localhost named]# vim /var/named/westos.com.inter
$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.110
10      PTR     www.westos.com.       ###PTR IP转换至名称
12      PTR     music.westos.com.
[root@localhost named]# systemctl restart named

3.重启服务

systemctl restart named

4.客户机检测

dig   -x  172.25.254.12

五、DNS的双向解析

DNS双向解析指内网与外网解析分离

1.创建外网域名编辑文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p  westos.com.zone westos.com.inter
[root@localhost named]# vim westos.com.inter                                  

2.编辑外网配置文件

[root@localhost named]# cp -p /etc/named.rfc1912.zones /etc/named.rfc1913.zones
[root@localhost named]# vim /etc/named.rfc1912.zones

3.编辑配置文件使内外网分离

[root@localhost named]# vim   /etc/named.conf

49 view localnet {
 50          match-clients { localhost; };
 51         zone "." IN {
 52         type hint;
 53         file "named.ca";
 54         };
 55 
 56 include "/etc/named.rfc1912.zones";
 57 };
 58 
 59 view internet {
 60      match-clients { any; };
 61         zone "." IN {
 62         type hint;
 63         file "named.ca";
 64         };
 65         include "/etc/named.rfc1913.zones";
 66 };

4.设置dns

设置服务端(内网)的dns为172.25.254.110

设置客户端的(外网)dns为172.25.254.110

5.测试:

六、DNS的主从集群

辅助DNS主要是为了减轻主DNS服务器的工作负荷,可以配置多台辅助DNS服务器。

1.先注释掉主配置文件双向解析的参数

vim  /etc/named.conf

2.辅助机设置

yum install bind -y     下载dns服务软件包
[root@localhost named]# vim /etc/named/conf   设置主配置文件

11         listen-on port 53 { any; };    将本地的回环接口改为所有人any
17         allow-query     { any; };     将主机名称该为所有人any
32         dnssec-validation no; 认证备案修改为no

[root@localhost named]# vim /etc/named.rfc1912.zones

zone "westos.com" IN {
        type slave;  修改类型
 	masters { 172.25.254.110; };
        file "slaves/westos.com.inter";  文件指定地址
        allow-update { none; };
};

[root@localhost named]# vim /etc/resolv.conf   设置他的DNS为110

nameserver 172.25.254.110
[root@localhost named]# systemctl restart named   重启

3.服务机设置

[root@localhost named]# vim /etc/named.rfc1913.zones

zone "westos.com" IN {
        type master;
        file "westos.com.inter";
        allow-update { none; };
        also-notify { 172.25.254.210; }; 同步
};

[root@localhost named]# vim /var/named/westos.com.inter  外网解析的配置文件

$TTL 1D
@       IN SOA   dns.westos.com. zhou.westos.com. (
   				2018110302      ; serial
        2018110503 (每修改一次ip,就要变更一次数字,他的辅助设备才能同步) 
                                        1D      ; refresh
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                 NS      dns.westos.com.
dns              A       192.168.0.110
news             A       192.168.0.20
www              CNAME   shuilong.westos.com.
shuilong         A       192.168.0.12
shuilong         A       192.168.0.121
westos.com.      MX 1    192.168.0.10.
[root@localhost named]# vim /etc/resolv.conf   外网解析
nameserver 172.25.254.20
[root@localhost named]# systemctl restart named  重启服务

测试辅助机:

七、DNS客户端的更新

1.服务机设置

[root@localhost named]# vim /etc/named.rfc1913.zones 
zone "westos.com" IN {
        type master;
        file "westos.com.inter";
        allow-update { 172.25.254.77; };    77主机可更新
        also-notify { 172.25.254.20; };   
};
[root@localhost named]# systemctl restart named 
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# chmod 770 /var/named/
[root@localhost named]# setsebool -P named_write_master_zones 1    打开selinux对功能的开关
[root@localhost named]# cp -p /var/named/westos.com.inter /mnt   备份

2.77主机上的更新操作

3.检测:

[root@localhost named]# cd /var/named/
[root@localhost named]# ls
data     named.ca     named.localhost  slaves            westos.com.inter.jnl
dynamic  named.empty  named.loopback   westos.com.inter  westos.com.zone

4.删除刚才的更新

[root@foundation77~]# nsupdate
> server 172.25.254.110
> update del hello.westos.com
> send

服务机上删除文件

rm -fr westos.com.inter.jnl   westos.com.inter
cp -p /mnt/westos.com.inter /var/named/        //恢复之前的文件

八、DNS的密钥更新

1.在服务机上

[root@localhost named]# cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST dnskey    -a加密类型;-b加密长度;-n加密用途(dns解析);密钥名字
[root@localhost mnt]# ls 
Kdnskey.+157+09137.key Kdnskey.+157+09137.private
[root@localhost mnt]# cat Kdnskey.+157+09137.key                      
dnskey. IN KEY 512 3 157 CEZZCDhlrmIk26H3ZEKUGA==
[root@localhost mnt]# cp -p /etc/rndc.key  /etc/westos.key
[root@localhost mnt]# vim /etc/westos.key
key "dnskey" {                   加密名字
        algorithm hmac-md5;      加密类型
        secret "CEZZCDhlrmIk26H3ZEKUGA==";    
};
[root@localhost mnt]# vim /etc/named.conf     将锁与dns服务关联
43行 include "/etc/westos.key";  
[root@localhost mnt]# vim /etc/named.rfc1913.zones
allow-update { key dnskey; };
[root@localhost mnt]# systemctl restart named
[root@localhost mnt]# scp Kdnskey.+157+09137.* root@172.25.254.77:/mnt/

2.在指定的主机上更新

[root@localhost mnt]# cd /mnt
[root@localhost mnt]# timedatectl   set-timezone  Asia/Shanghai
[root@localhost mnt]# vim /etc/chrony.conf
server 172.25.254.77 iburst
[root@localhost mnt]# systemctl restart chronyd   //在进行密钥更新前先要进行时间同步
[root@localhost mnt]# nsupdate -k Kdnskey.+157+03137.private      用钥匙更新
> server 172.25.254.110
> update add hello.westos.com 86400 A 172.25.254.112  添加hello.westos.com域名对应IP为172.25.254.112
> send
>quit
[root@localhost mnt]#

3.测试

dig  hello.westos.com       //测试实验是否成功

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值