bind服务-2

木木4个月前技术文章94

五、部署一个正向解析

5.1)教学案例

对zutuanxue.com域名做解析,解析要求如下:

www 解析为A记录 IP地址为 192.168.11.88

news 做别名解析CNAME 解析为 www

1)主配置文件
[root@zutuanxue ~]# cat /var/named/chroot/etc/named.conf
options {
   listen-on port 53 { any; };
   directory     "/var/named";
};

//定义根域
//用于DNS向根递归查询
zone "." IN {
   type hint;
   //保存了DNS根级服务器的地址
   file "named.ca";
};

//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为master
   type master;
//区域数据库文件名称
   file "zutuanxue.com.zone";
};


2)区域数据库文件
[root@zutuanxue named]# cat zutuanxue.com.zone
$TTL 1D
zutuanxue.com.    IN SOA    ns1.zutuanxue.com. rname.invalid. (
                   0    ; serial
                   1D    ; refresh
                   1H    ; retry
                   1W    ; expire
                   3H )    ; minimum
;zutuanxue.com.  需要做解析的域名
;ns1.zutuanxue.com.  为zutuanxue.com.做解析的DNS    这里我们既是DNS也同时为自己域名做了解析

   NS    ns1.zutuanxue.com.


;A         域名机械为IP
;PTR        IP解析为域名
;MX        邮件标记
;CNAME        别名


ns1    A    192.168.11.16
www    A    192.168.11.88
news  CNAME    www

5.2)测试方法

域名解析linux系统为大家提供了三个命令,看大家喜欢用哪个都可以。

a、host采用非交互式解析,

b、nslookup可以采用交互或非交互式解析

c、dig显示详细的解析流程

测试注意:请将你的测试客户端机器的DNS指向你自己的DNS服务器的IP地址。本例中我使用DNS服务器给自己当测试端,我修改了自己的DNS服务器地址
[root@zutuanxue ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.11.16

#host命令
[root@zutuanxue ~]# host news.zutuanxue.com
news.zutuanxue.com is an alias for www.zutuanxue.com.
www.zutuanxue.com has address 192.168.11.88


#nslookup 命令---交互式解析
[root@zutuanxue ~]# nslookup
> news.zutuanxue.com
Server:        192.168.11.16
Address:    192.168.11.16#53

news.zutuanxue.com    canonical name = www.zutuanxue.com.
Name:    www.zutuanxue.com
Address: 192.168.11.88
> exit

#nslookup 命令---非交互式解析
[root@zutuanxue ~]# nslookup news.zutuanxue.com
Server:        192.168.11.16
Address:    192.168.11.16#53

news.zutuanxue.com    canonical name = www.zutuanxue.com.
Name:    www.zutuanxue.com
Address: 192.168.11.88


#dig命令
[root@zutuanxue ~]# dig news.zutuanxue.com

; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> news.zutuanxue.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28487
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;news.zutuanxue.com.        IN    A

;; ANSWER SECTION:
news.zutuanxue.com.    86400    IN    CNAME    www.zutuanxue.com.
www.zutuanxue.com.    86400    IN    A    192.168.11.88

;; AUTHORITY SECTION:
zutuanxue.com.        86400    IN    NS    www.zutuanxue.com.

;; Query time: 0 msec
;; SERVER: 192.168.11.16#53(192.168.11.16)
;; WHEN: 一 2月 25 10:52:19 CST 2019
;; MSG SIZE  rcvd: 93


技巧:
在dig解析中,后面跟上+trace来显示详细解析流程
[root@zutuanxue ~]# dig www.zutuanxue.com +trace

六、部署一个反向解析

案例:对www.zutuanxue.com做反向解析,其对应的IP地址为192.168.11.88

1)主配置文件添加反向解析zone
[root@zutuanxue ~]# cat /var/named/chroot/etc/named.conf
options {
   listen-on port 53 { any; };
   directory     "/var/named";
};

//定义根域
//用于DNS向根递归查询
zone "." IN {
   type hint;
   //保存了DNS根级服务器的地址
   file "named.ca";
};

//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为master
   type master;
//区域数据库文件名称
   file "zutuanxue.com.zone";
};

//定义一个反向解析
//此处需要倒写网段
zone "11.168.192.in-addr.arpa" IN {
   type master;
   file "192.168.11.arpa";
};



2)区域数据库文件设置
[root@zutuanxue named]# cat 192.168.11.arpa
$TTL 1D
11.168.192.in-addr.arpa.    IN SOA    ns1.zutuanxue.com. rname.invalid. (
                   0    ; serial
                   1D    ; refresh
                   1H    ; retry
                   1W    ; expire
                   3H )    ; minimum
   NS    ns1.zutuanxue.com.
88    PTR    www.zutuanxue.com.

注意:文件的所有者和所有者组都是named
3)使用nslookup测试
[root@zutuanxue ~]# nslookup 192.168.11.88
Server:        192.168.11.16
Address:    192.168.11.16#53

88.11.168.192.in-addr.arpa    name = www.zutuanxue.com.

七、DNS服务器冗余

image20200114172337009.png

DNS服务器在网络中为全世界的服务器提供了域名解析服务,扮演着至关重要的角色。网络中的某台DNS一旦宕机,就会造成部分域名无法解析,用户无法顺利访问到对应的服务器。但是我们学习的过程中也发现了,我们的DNS部署在单台服务器上,如果出现单点故障,我们应该如何应对呢?我们可以通过部署多台相同解析的DNS来解决单点故障,就算一台DNS服务器出现问题,也不会影响解析服务。怎么部署呢?如何保障多台之间的解析一致?这就是我们要讨论的问题了。我们来学习辅助DNS吧!

辅助DNS是从主DNS拉取区域数据库文件的的,当主DNS解析的域名对应的区域数据库文件发生变化,辅助就会去找主DNS拉取新的区域数据库文件,保证和主的解析一致,而且是自动的不需要人为干预的,确保了主从DNS的区域数据库文件的一致性。

教学案例:按照图例,为主DNS(192.168.11.16)部署一台辅助DNS(192.168.11.116),实现数据同步。

辅助DNS设置
a、软件包安装
[root@slave ~]# dnf -y install bind bind-chroot

b、设置主配文件
[root@slave etc]# cat /var/named/chroot/etc/named.conf
options {
   listen-on port 53 { any; };
   directory     "/var/named";
};

//定义根域
//用于DNS向根递归查询
zone "." IN {
   type hint;
   //保存了DNS根级服务器的地址
   file "named.ca";
};

//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为slave  代表辅助
   type slave;
//区域数据库文件名称
   file "zutuanxue.com.zone";
//设置主DNS IP,向该IP去同步数据
   masters { 192.168.11.16; };
};

//定义一个反向解析
//此处需要倒写网段
zone "11.168.192.in-addr.arpa" IN {
//类型写slave  代表辅助
   type slave;
   file "192.168.11.arpa";
//设置主DNS IP,向该IP去同步数据
   masters { 192.168.11.16; };
};


修改权限
[root@slave etc]# chgrp named named.conf


c、启动服务
[root@slave chroot]# systemctl enable named-chroot.service
Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to
/usr/lib/systemd/system/named-chroot.service.
[root@slave chroot]# systemctl start named-chroot


d、验证
[root@slave ~]# ls /var/named/chroot/var/named/
192.168.11.arpa  zutuanxue.com.zone  chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves


发现192.168.11.arpa  zutuanxue.com.zone 这两个数据库文件已经同步过来了,解析一下看看吧!


设置客户端的DNS IP为192.168.11.116,我的测试机就是这台slave机器,所以设置为192.168.11.116即可
[root@slave ~]# cat /etc/resolv.conf
nameserver 192.168.11.116

使用nslookup验证一下
[root@slave ~]# nslookup news.zutuanxue.com
Server:        192.168.11.116
Address:    192.168.11.116#53

news.zutuanxue.com    canonical name = www.zutuanxue.com.
Name:    www.zutuanxue.com
Address: 192.168.11.88

[root@slave ~]# nslookup 192.168.11.88
Server:        192.168.11.116
Address:    192.168.11.116#53

88.11.168.192.in-addr.arpa    name = www.11.168.192.in-addr.arpa.

看到结果了,完美!!

八、智能DNS

在我们访问WEB的时候,发现有的网站打开的速度非常快,有的网站打开的非常慢,这是为什么呢?原因就是很多公司为了提升用户的体验,自己的网站使用了CDN内容加速服务,让你直接在你本地城市的服务器上拿数据并展示给你看。什么是CDN我们暂且理解为本地缓存服务器就好,那么你是怎么准确知道你本地的缓存服务器的呢!因为很多CDN公司的DNS使用了智能解析服务,根据你的源IP判断你属于哪个城市,让后再把本地的缓存服务器解析给你,你就会直接去找该服务器拿数据了。

智能解析原理

在DNS中植入全世界的IP库以及IP对应的地域,当用户来请求解析时,DNS会根据其源IP来定位他属于哪个区域,然后去找这个区域的view视图查询对应的域名的区域数据库文件做解析。从而使得不同地域的用户解析不同。

教学案例:部署一台DNS智能解析服务器,对zutuanxue.com域名做智能解析:

上海的用户解析IP为 1.1.1.1

北京的用户解析IP为 2.2.2.2

其他用户解析为 3.3.3.3

智能解析
a、设置主配文件
定义IP库,DNS根据IP库判断源IP属于哪个区域
根据地域定义视图,将该区域的客户端的解析请求都由该视图中的zone来解析

[root@master named]# cat /var/named/chroot/etc/named.conf
options {
   directory     "/var/named";
};

//定义IP库

acl shanghai { 192.168.11.50; };
acl beijing { 192.168.11.100; };

//定义视图,通过IP匹配后,通过不同的区域数据库文件进行解析
view sh {
match-clients { shanghai; };
zone "zutuanxue.com" IN {
   type master;
   file "zutuanxue.com.zone.sh";
};
};

view bj {
match-clients { beijing; };
zone "zutuanxue.com" IN {
       type master;
       file "zutuanxue.com.zone.bj";
};
};


view other {
match-clients { any; };
 zone "zutuanxue.com" IN {
       type master;
       file "zutuanxue.com.zone.any";
};
};



b、根据主配文件设置不同的区域数据库文件
[root@master named]# cd /var/named/chroot/var/named
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.bj
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.sh
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.any
[root@master named]# chgrp named  zutuanxue.com.zone.*



[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.sh
$TTL 1D
@    IN SOA    zutuanxue.com. rname.invalid. (
                   0    ; serial
                   1D    ; refresh
                   1H    ; retry
                   1W    ; expire
                   3H )    ; minimum
   NS    www.zutuanxue.com.
www    A    1.1.1.1

[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.bj
$TTL 1D
@    IN SOA    zutuanxue.com. rname.invalid. (
                   0    ; serial
                   1D    ; refresh
                   1H    ; retry
                   1W    ; expire
                   3H )    ; minimum
   NS    www.zutuanxue.com.
www    A    2.2.2.2

[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.any
$TTL 1D
@    IN SOA    zutuanxue.com. rname.invalid. (
                   0    ; serial
                   1D    ; refresh
                   1H    ; retry
                   1W    ; expire
                   3H )    ; minimum
   NS    www.zutuanxue.com.
www    A    3.3.3.3



c、测试
依次修改主配的IP库中的IP为本机,观看解析情况

[root@master named]# nslookup www.zutuanxue.com
Server:        192.168.11.16
Address:    192.168.11.16#53

Name:    www.zutuanxue.com
Address: 1.1.1.1



相关文章

flink获取taskmanager的pstree信息

flink获取taskmanager的pstree信息

使用pstree –p 进程号 的方式能够获取taskmanager的pstree信息,这个地方提供一个收集脚本。内容如下:#!/bin/bashsearchPID() {   l...

Redis 慢查询相关配置

Redis 慢查询相关配置

一、查询生命周期一条查询的生命周期:发送命令命令排队执行命令返回结果Redis 慢日志只统计 “执行命令” 步骤 3 的耗时,所以没有慢查询并不代表客户端没有超时问题。二、慢日志配置参数慢日志相关的参...

Wireshark工具使用

Wireshark工具使用

一、介绍wireshark是一款免费、开源的网络抓包工具。项目地址如下:https://github.com/wireshark/wireshark应用如下:1. 网络管理员会使用wireshark来...

Containerd OCI runtime create failed

Containerd OCI runtime create failed

1、背景Kubernetes 集群新增 worker 节点(centos7、containerd),发现容器一直启动不起来。2、报错信息经查看系统 message 日志发现如下报错信息:rpc err...

oracle手工完全恢复

一)基本概念1)完全恢复的步骤1)restore: OS拷贝命令还原所有或部分datafile2)recover:SQL*PLUS利用归档日志和当前的redo日志做恢复2)完全恢复可以基于三个级别re...

kubebuilder 开发operator初探

1、使用kubebuilder初始化$ mkdir project$ cd project$ kubebuilder init --domain tutorial.kubebuilder.io --r...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。