Linux 基础 之 企业级域名解析服务 (高速缓存DNS)

一、DNS简介

1. 定义:

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

2. DNS的功能

每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。

3. DNS重要性

1、技术角度看

DNS解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。

2、资源角度看

域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。

二、高速缓存DNS的搭建

本实验在desktop中进行
1.首先配置真机
systemctl start firewalld  开启火墙

systemctl status firewalld  查看火墙状态



firewall-cmd --add-masquerade   开启

firewall-cmd --list-all  查看

连上网络ping www.baidu.com 成功


编辑vim /etc/resolv.conf 将文件中的域名解析服务器全部屏蔽,将虚拟机172.25.254.103作为域名服务器添加进去

在desktop主机内
2.编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0配置网络


写入内容
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.254.103
NETMASK=255.255.255.0
GATEWAY=172.25.254.3
DNS1=114.114.114.114


systemctl restart network   重新启动网络
route -n  查看网关

虚拟机 ping 114.114.114.114  成功


3. 配置yum源

首先添加光驱,加入7.0镜像将镜像挂载到/mnt


编辑cd /etc/yum.repos.d
vim yum.repo

写入
[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0

4.关闭虚拟机火墙


实验1.:创建一个DNS服务器,缓存互联网下解析出来的域名信息

第一步:在虚拟机desktop上安装bind.x86_64软件,开启named服务

yum install bind.x86_64 -y

systemctl start named

编辑vim /etc/named.conf文件



systemctl restart named 重新启动服务

测试:
在desktop中测试 dig www.baidu.com


真机执行dig www.baidu.com


实验2:DNS服务的正向域名解析

 编辑vim /etc/named.conf文件

编辑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文件


查看cat westos.com.zone

注意:

TTL 1D       数据可以被客户端缓存一天

@                所维护的域的域名

serial           刷新时间

expire          过期时间

minimum      在最小数据访问时间
systemctl restart named  重新启动服务


测试:dig www.westos.com


 

实验3 :DNS的邮件解析(正向解析)

编辑vim /etc/resolv.conf文件

写入
# Generated by NetworkManager
nameserver 172.25.254.103

进入cd /var/named/
编辑vim westos.com.zone文件


重新启动服务 systemctl restart named

cat /var/named/westos.com.zone 查看

发送邮件并测试:

mail [email protected]
Subject: test
hahahahaha
.   
EOT

dig -t mx westos.com

DNS的反向解析


编辑vim /etc/resolv.conf文件
写入nameserver 172.25.254.103
编辑 vim /etc/named.rfc1912.zones文件


在文件最后写入
zone "254.25.172.in-addr.arpa" IN {
          type master;
          file "172.25.254.ptr";
         allow-update { none; };
};


进入cd /var/named/目录
cp -p named.loopback 172.25.254.ptr

编辑vim 172.25.254.ptr文件


cat /var/named/172.25.254.ptr 查看


systemctl restart named 重新启动服务


测试:
dig -x 172.25.254.111

DNS的多项解析

1.开启两个虚拟机 desktop和server配置网络
配置desktop 给它添加双ip
 vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR0=172.25.254.103
NETMASK0=255.255.255.0
IPADDR1=1.1.1.103
NETMASK1=255.255.255.0


重新启动网络服务systemctl restart network


查看ip执行 ip addr show eth0

配置server
编辑 vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=1.1.1.203
NETMASK=255.255.255.0
重新启动网络服务systemctl restart network


编辑 vim /etc/resolv.conf文件
写入 nameserver 1.1.1.103


ping 1.1.1.103 成功


测试一下 :dig www.westos.com  解析到 172.25.254 网段

进入cd /var/named/目录


cp -p  westos.com.zone  westos.com.inter

编辑vim westos.com.inter文件

cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.inter
2.编辑vim /etc/named.rfc1912.inter


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


删除掉之前的反向解析
3.编辑/etc/named.conf文件,使不同的网段指向不同的/etc/named.rfc1912.zones/inter的指向

编辑vim /etc/named.conf文件
注释掉之前的重新写入
/*
zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones";
*/


写入新的
view localnet {
        match-clients { 1.1.1.0/24; };
        zone "." IN {
                type hint;
                file "named.ca";
        };
include "/etc/named.rfc1912.inter";
};

view internet {
        match-clients { any; };  
        zone "." IN {
                type hint;
                file "named.ca";
        };
include "/etc/named.rfc1912.zones";
};         
include "/etc/named.root.key";

systemctl restart named 重新启动服务

4.在真机中切换超级用户
编辑vim /etc/resolv.conf文件
写入 nameserver 172.25.254.103

5.分别在真机和server上进行测试dig www.westos.com

真机测试dig www.westos.com

server 中测

DNS的集群(辅助 DNS)

两台主机进行desktop为主DNS,server为辅助DNS
首先在server中
编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0文件配置网络
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.203
NETMASK=255.255.255.0

systemctl restart network重新启动服务


mount /dev/sr0 /mnt  挂载镜像

df 查看


进入cd /etc/yum.repos.d/目录
编辑vim yum.repo

[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0


yum install bind -y  安装
systemctl stop firewalld  关闭火墙

systemctl start named  启动服务


 编辑vim /etc/resolv.conf文件
写入nameserver 172.25.254.203


编辑vim /etc/named.conf


编辑vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
        type slave;
        masters { 172.25.254.103; };
        file "slaves/westos.com.zone";
        allow-update { none; };
};


systemctl restart named 重新启动服务

ls -l /var/named/ 查看

进入cd /var/named/slaves/目录

dig www.westos.com 测试

配置desktop
编辑 vim /etc/resolv.conf文件
写入nameserver 172.25.254.103


编辑 vim /etc/named.conf  文件删除掉上次实验写入的,清空环境


编辑 vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { none; };
        allow-transfer { 172.25.254.203; };
        also-notify { 172.25.254.203; };
};


systemctl restart named 重新启动服务


进入cd /var/named/目录
编辑vim westos.com.zone文件 当改变域名解析不改变serial值时看是否会同步

       

systemctl restart named  重新启动服务


在辅助DNS测试看是否同步(server)
dig www.westos.com 没有同步

编辑vim westos.com.zone文件 当改变域名解析改变serial值时看是否会同步

systemctl restart named  重新启动服务

再次在辅助DNS测试看是否同步(server)
dig www.westos.com   同步成功

DNS的远程更新

首先在主DNS中(desktop)进行配置
mkdir /westos  新建目录
进入cd /var/named/目录
cp -p westos.com.zone  /westos/  拷贝westos.com.zone到/westos中

第一步:设置DNS服务端,允许客户端主机修改westos.com.zone
修改/etc/named.rfc1912.zones 

编辑vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
        type master;
        file "westos.com.zone";
        allow-update { 172.25.254.203; };
        allow-transfer { 172.25.254.203; };
        also-notify { 172.25.254.203; };
};


systemctl restart named  重新启动服务

第二步,更改/var/named权限,否则会出现serverfull的错误

 chmod 770 /var/named/  修改权限


第三步,当执行getenforce命令  显示 Disabled,不用处理。
当执行getenforce命令 显示 Enforcing,

需要编辑 getsebool -a | grep named


编辑 setsebool - P named_write_master_zones on

第四步,在server中进行远程更新
nsupdate
> server 172.25.254.103
> update add test.westos.com 86400 A 172.25.254.90
> send
> quit
更新成功并退出

在desktop中执行
systemctl restart named   重新启动服务
编辑vim westos.com.zone文件查看是否更新



在desktop中测试(域名添加是否成功)
dig test.westos.com 远程更新成功

DNS密钥方式更新

首先在主DNS(desktop)中进行配置
首先实验环境得配置好
进入cd /var/named/目录
[root@localhost named]# rm -fr westos.com.zone westos.com.zone.jnl
[root@localhost named]# cp -p /westos/westos.com.zone .

1.生成key
[root@localhost westos]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey 生成密钥


查看

2.编辑加密文件

[root@localhost westos]# cp -p /etc/rndc.key  /etc/westos.key


编辑vim /etc/westos.key  文件


key "westoskey" {     密钥名称
        algorithm hmac-md5;
        secret "密钥";
};


3.编辑named 配置

编辑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 westoskey; };
        allow-transfer { 172.25.254.203; };
        also-notify { 172.25.254.203; };
};


systemctl restart named  重新启动服务

4.给客户端分发密钥
[root@localhost westos]# scp Kwestoskey.+157+49253.* [email protected]:/westos/

在server主机中
进入 cd /westos/目录查看

测试 远程更新 成功并退出
[root@server westos]# nsupdate -k Kwestoskey.+157+49253.private
> server 172.25.254.103
> update delete test.westos.com    
> send
> quit

进入主DNS (desktop)中
systemctl restart named 重新启动网络
远程更新成功,test 被删除

动态域名解析(花生壳)dns+dhcp ==ddns

该实验在上个实验基础上进行

1.首先配置客户端(server)

设置客户端主机名称为game.westos.com

设置主机的网络为dhcp

2.配置dhcp服务在desktop主机配置

option domain-name "westos.com" 域名

option domain-name-server 172.25.254.103  ip

systemctl restart dhcpd 重新启动服务

systemctl status dhcpd 查看服务状态

在server主机中重新启动网络测试

systemctl restart network  重新启动网络

3.配置dns的主配置文件,配置dns的的key更新

配置dhcp.conf文件

dns的更新方式设定

dns的key更新

dns的域更新

                    

测试:在客户端(server)dig game.westos.com成功

猜你喜欢

转载自blog.csdn.net/excellent_L/article/details/84317947