RHEL7 DNS 服务 unbound 测试
测试环境:
物理机win10系统,虚拟机软件使用Oracle VirtualBox。
| rhel1.rusky.com | 192.168.100.1 | RHEL7(辅DNS) |
| rhel2.rusky.com | 192.168.100.2 | RHEL7(主DNS) |
| rhdl3.rusky.com | 192.168.100.3 | RHEL6(测试client) |
一、搭建主DNS服务器192.168.100.2
在安装前先停止系统自带的dnsmasq服务,因为该服务也用53端口,并且已经启动。否则 unbound服务无法启动。
[root@rhel1 ~]# netstat -antulp | grep
tcp 192.168.122.1: 0.0.0.0:* LISTEN /dnsmasq
udp 192.168.122.1: 0.0.0.0:* /dnsmasq
udp 0.0.0.0: 0.0.0.0:* /avahi-daemon: r
[root@rhel1 ~]# ps -ef | grep dnsmasq
nobody : ? :: /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root : ? :: /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root : pts/ :: grep --color=auto dnsmasq
[root@rhel1 ~]# kill -
然后执行#systemctl disable dnsmasq禁止开机启动。
1、安装 unbound服务
#yum install unbound -y # netstat -antulp | grep unbound --查看监听端口53
tcp 127.0.0.1: 0.0.0.0:* LISTEN /unbound
tcp 127.0.0.1: 0.0.0.0:* LISTEN /unbound
tcp6 ::: :::* LISTEN /unbound
tcp6 ::: :::* LISTEN /unbound
udp 0.0.0.0: 0.0.0.0:* /unbound
udp 127.0.0.1: 0.0.0.0:* /unbound
udp6 ::: :::* /unbound
2、修改主配置文件
# vi /etc/unbound/unbound.conf
interface: 0.0.0.0
access-control: 0.0.0.0/ allow
username: ""
3、重启unbound服务
# systemctl restart unbound
# netstat -antulp | grep unbound
tcp 0.0.0.0: 0.0.0.0:* LISTEN /unbound
tcp 127.0.0.1: 0.0.0.0:* LISTEN /unbound
tcp6 ::: :::* LISTEN /unbound
udp 0.0.0.0: 0.0.0.0:* /unbound
udp 0.0.0.0: 0.0.0.0:* /unbound
4、新增配置文件
# vi /etc/unbound/local.d/rusky.com.conf
local-zone:"rusky.com." static
local-data:"rusky.com. 86400 IN SOA ns.rusky.com. root.rusk.com. 120000 86400 3600 10800 86400"
local-data:"rusky.com. IN NS ns.rusky.com."
local-data:"rusky.com. IN MX 10 mail.rusky.com."
local-data:"rusky.com. IN MX 20 smtp.rusky.com."
local-data:"rusky.com. IN A 192.168.100.2"
local-data:"ns.rusky.com. IN A 192.168.100.2"
local-data:"mail.rusky.com. IN A 192.168.100.2"
local-data:"smtp.rusky.com. IN A 192.168.100.2"
local-data:"ftp.rusky.com. IN A 192.168.100.2"
local-data:"www.rusky.com. IN A 192.168.100.2"
local-data:"rhel1.rusky.com. IN A 192.168.100.1"
local-data:"rhel2.rusky.com. IN A 192.168.100.2"
local-data:"rhel3.rusky.com. IN A 192.168.100.3" #lookback反向解析
local-data-ptr:"192.168.100.2 ns.rusky.com."
local-data-ptr:"192.168.100.2 mail.rusky.com."
local-data-ptr:"192.168.100.2 smtp.rusky.com."
local-data-ptr:"192.168.100.2 ftp.ns.rusky.com."
local-data-ptr:"192.168.100.2 www.ns.rusky.com."
local-data-ptr:"192.168.100.1 rhel1.rusky.com."
local-data-ptr:"192.168.100.2 rhel2.rusky.com."
local-data-ptr:"192.168.100.3 rhel3.rusky.com."
正向解析的时候还可以这样:
local-data:"www.rusky.com. IN A 192.168.100.2"
local-data:"www.rusky.com. IN A 192.168.100.3"
local-data:"www.rusky.com. IN A 192.168.100.4"
local-data:"www.rusky.com. IN A 192.168.100.5"
一个域名指向多个主机IP,这样每次解析都会指向不同的主机,实现一个简单的负载均衡功能。
========================================================
说明:
| local-zone:"rusky.com." static //定义一个域 local-data:"rusky.com. 86400 IN SOA ns.rusky.com. root.rusk.com. 120000 86400 3600 10800 86400" //主辅DNS服务器进行数据同步的控制参数 86400 //TTL资源记录的生存时间。 IN //表示标准DNS的internet类。 SOA //起始授权(Start Of Authority)记录,每个区域都有一条SOA记录,用于指定本区域内负责解析的DNS服务器中哪个是主授权服务器,以及管理区域的负责人的邮箱地址和主、辅授权DNS服务器之间实现数据同步的控制参数。 ns.rusky.com. //定义域内主DNS服务器。ns.rusky.com不是主机名,ns表示所有的域名,比如mail.rusky.com,www.rusky.com,bbs.rusky.com等。 root.rusk.com. //邮箱地址,不需要带@符号 120000 //每次修改区域记录时,都会增加序列号的值,它是辅授权DNS服务器更新数据的依据。 辅助DNS服务器跟主DNS服务器同步时才用到。当master服务器DNS信息有变化时,该值加1,而辅助DNS服务器检查到该值有变化时,就会进行数据同步。这个数不是固定的。生产尽量设置6位数以上。 86400 //(1天) 刷新时间。每隔一天跟主DNS服务器同步一次数据。 辅授权DNS服务器根据此时间间隔周期性地检查主授权DNS服务器的序列号是否改变,若有改变则更新自己的区域记录(以秒为单位) 3600 //(1小时)重试延时。如果前一次同步失败,则隔1小时候再去同步。 10800 //(3小时) 如果同步三次都失败,则不再同步。 86400 //DNS缓存时间。因为前边几次都同步失败了,所以86400秒后,辅助DNS服务器将失效。 MX 10 MX 20 //这两行是优先级别,值越小,优先级越高。 (邮件交换(Mail Exchange)记录,用于将属于该区域的邮件域(即邮箱地址@后面的字符串)映射到邮件服务器的域名。 ) |
重启unbound服务。
# systemctl restart unbound
5、修改网卡DNS配置指向rhel2
修改三台服务器的DNS都指向192.168.100.2
6、测试DNS解析
[root@rhel1 ~]# ping rhel2.rusky.com -c
PING rhel2.rusky.com (192.168.100.2) () bytes of data.
bytes from www.ns.rusky.com (192.168.100.2): icmp_seq= ttl= time=0.193 ms
bytes from www.ns.rusky.com (192.168.100.2): icmp_seq= ttl= time=0.350 ms --- rhel2.rusky.com ping statistics ---
packets transmitted, received, % packet loss, time 1001ms
rtt min/avg/max/mdev = 0.193/0.271/0.350/0.080 ms
[root@rhel1 ~]# ping www.rusky.com -c
PING www.rusky.com (192.168.100.2) () bytes of data.
bytes from ftp.ns.rusky.com (192.168.100.2): icmp_seq= ttl= time=0.278 ms
bytes from ftp.ns.rusky.com (192.168.100.2): icmp_seq= ttl= time=0.357 ms --- www.rusky.com ping statistics ---
packets transmitted, received, % packet loss, time 1002ms
rtt min/avg/max/mdev = 0.278/0.317/0.357/0.043 ms
[root@rhel1 ~]# nslookup
> mail.rusky.com
Server: 192.168.100.2
Address: 192.168.100.2# Name: mail.rusky.com
Address: 192.168.100.2
> 192.168.100.3
Server: 192.168.100.2
Address: 192.168.100.2# 3.100.168.192.in-addr.arpa name = rhel3.rusky.com.
> rhel2.rusky.com
Server: 192.168.100.2
Address: 192.168.100.2# Name: rhel2.rusky.com
Address: 192.168.100.2
> 192.168.100.1
Server: 192.168.100.2
Address: 192.168.100.2# 1.100.168.192.in-addr.arpa name = rhel1.rusky.com.
>
二、搭建辅DNS(转发服务器)192.168.100.1
同上,先停止并禁用dnsmasq服务,再安装unbound服务,然后修改主配置文件的三个参数。
#yum install unbound -y
# vi /etc/unbound/unbound.conf
interface: 0.0.0.0
access-control: 0.0.0.0/0 allow
username: "“
然后新增配置文件rusky.com.conf,修改内容如下:
# vi /etc/unbound/local.d/rusky.com.conf
[root@rhel1 ~]# cat /etc/unbound/local.d/rusky.com.conf
domain-insecure:"rusky.com."
forward-zone:
name:"."
forward-addr:"192.168.100.2"
说明:
当客户机到192.168.100.1来请求DNS解析时,则转发到192.168.100.2主DNS服务器进行解析,如果解析成功,则缓存一份到本地。以后其它机器再到192.168.100.2来请求DNS解析时,则不需要转发了,直接使用本地缓存的数据。
再加上一句:
domain-insecure:"rusky.com"
表示不需要进行安全检测。
同时,主DNS 192.168.100.2 服务器上的该配置文件里也需要加上这行参数。
然后都重启unbound服务。
把192.168.100.3测试客户机的DNS指向辅DNS服务器192.168.100.1,然后进行测试:
[root@rhel3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=:::2B:6B:FB
TYPE=Ethernet
UUID=8604694b-c096-40a8-8da6-1e63771baf07
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.100.3
NETMASK=255.255.255.0
GATEWAY=192.168.100.100
DNS1=192.168.100.1
测试:
[root@rhel3 ~]# hostname
rhel3.rusky.com
[root@rhel3 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search rusky.com
nameserver 192.168.100.1
[root@rhel3 ~]# ping rhel1.rusky.com
PING rhel1.rusky.com (192.168.100.1) () bytes of data.
bytes from 192.168.100.1: icmp_seq= ttl= time=0.275 ms
^C
--- rhel1.rusky.com ping statistics ---
packets transmitted, received, % packet loss, time 713ms
rtt min/avg/max/mdev = 0.275/0.275/0.275/0.000 ms
[root@rhel3 ~]# ping www.rusky.com -c
PING www.rusky.com (192.168.100.2) () bytes of data.
bytes from 192.168.100.2: icmp_seq= ttl= time=1.22 ms
bytes from 192.168.100.2: icmp_seq= ttl= time=0.677 ms --- www.rusky.com ping statistics ---
packets transmitted, received, % packet loss, time 1003ms
rtt min/avg/max/mdev = 0.677/0.949/1.221/0.272 ms
[root@rhel3 ~]# nslookup
> rhel1.rusky.com
Server: 192.168.100.1
Address: 192.168.100.1# Non-authoritative answer:
Name: rhel1.rusky.com
Address: 192.168.100.1
>
停止主DNS服务器192.168.100.2上的unbound服务后,再到rhel3来测试DNS解析:
[root@rhel3 ~]# nslookup
> mail.rusky.com
Server: 192.168.100.1
Address: 192.168.100.1# ** server can't find mail.rusky.com.rusky.com: SERVFAIL
> rhel2.rusky.com
;; connection timed out; trying next origin
Server: 192.168.100.1
Address: 192.168.100.1# ** server can't find rhel2.rusky.com.rusky.com: SERVFAIL
> www.rusky.com
Server: 192.168.100.1
Address: 192.168.100.1# Non-authoritative answer:
Name: www.rusky.com
Address: 192.168.100.2
>
说明,当主DNS服务rhel2停止后,从rhel3服务器到rhel1进行DNS解析时,只能解析已缓存到本地的记录。而之前未解析过的,也就是未缓存到rhel1的,则解析失败。也就是说,得先把主DNS服务器的unbound服务启动起来,然后从rhel3测试解析上边的域名,这样辅服务器rhel1上就有缓存记录了,这样即使主DNS服务器宕机或停止unbound服务,也能解析成功。
========================================================
其它:如何让物理机也能解析上面的域名地址?
这个也很简单,只需要把虚拟机系统连接的虚拟网卡配置DNS指向主或辅DNS服务器就可以了。
RHEL7 DNS 服务 unbound 测试的更多相关文章
- 使用unbound在RHEL7上搭建DNS服务
1.概念:DNS (Domain Name Server)域名解析服务,使用TCP&UDP的53号端口(主从DNS之间用TCP,客户端查询使用UDP).它可以完成域名与IP地址的互换,可以通过 ...
- 测试DNS服务的命令
测试DNS服务的命令 dig dig用于测试dns系统,因此不会查询hosts文件进行解析. dig - DNS lookup utility dig [@global-server] [domain ...
- Linux_配置辅助DNS服务(基础)
[RHEL8]-DNSserver1:[RHEL7]-DNSserver2:[Centos7]-DNSclient !!!测试环境我们首关闭防火墙和selinux(DNSserver1.DNSserv ...
- Liunx下配置DNS服务
当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...
- 如何搭建DNS服务
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
- k8s DNS 服务发现的一个坑
按照官当文档,以及大家的实践进行k8s dns 服务发现搭建还是比较简单的,但是会有一个因为系统默认dns 配置造成的一个问题 1. linux 默认dns 配置在 /etc/resolv.conf ...
- 打造私有的DNS 服务
在企业内部一般都会有自己的DNS服务,主要为了企业方便管理,例如访问一些内部系统,控制一些网站不让访问,今天我们就说说如何打造私有的DNS服务 系统基础配置 Ubuntu14.04 内存:354M ...
- redhat enterprixe 5.0 DNS 服务配置与管理
一.了解DNS相关概念 DNS是一个分布式数据库,在本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户机/服务器模式在整个网络上存取.通过采用复制技术和缓存技术使得整个数据库稳定可靠的同时, ...
- 如何搭建DNS服务(转)
继NTP时间服务器后,继续搭建DNS服务,鉴于昨晚撰写时间超过预期,这次改变策略,先把自己需要用到的部分写出来(主要是基于RAC的搭建,只涉及正向和反向DNS解析),后面再添加必要的说明和阐述. 试验 ...
随机推荐
- 启明星手机版安卓android会议室预定系统 V1.0发布
启明星手机版会议室预定系统 V1.0发布 在手机里输入 http://www.dotnetcms.org/e4.apk 或者扫描二维码下载 用户打开系统,可以实时查看所有会议室状态 点击会议室名称,可 ...
- Xen4CentOS 帮你移植到 CentOS 6 和 Xen 4
CentOS 发布了 Xen4CentOS 项目,该项目的目的是为了帮助 CentOS 5 的 Xen 用户移植到 CentOS 6,同时更新到 Xen 4 .因为 RHEL 6 不再提供 Xen,改 ...
- Python 的 Flask 框架安装应用
Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱採用 Werkzeug ,模板引擎则使用 Jinja2 ,使用 BSD 授权. Flask也被称为 " ...
- 使用C++/libCurl/Jsoncpp读取arcgis wmts 服务(restful模式)
前言: 最近工作需要将arcgis的wmts服务接入我们的3DGis系统平台,要求用户只输入一个rest模式的wmts服务地址,系统即可自动获取并解析其元数据信息,生成wmts图层,并渲染显示.经过多 ...
- iOS开发-CocoaPods实战
CocoaPods 是开发 OS X 和 iOS 应用程序的第三方库的依赖管理工具,如果是正常的开发不需要使用的第三方的代码,CocoaPods是不需要的,但是从实际情况上,为了提高开发效率,Coco ...
- 用Visual C#来清空回收站(2)
四.程序的源代码(recycled.cs).编译方法及运行后的界面: (1).程序的源代码:recycled.cs: using System.IO ; using System.Windows.Fo ...
- 浅谈 Adaboost 算法
http://blog.csdn.net/haidao2009/article/details/7514787 菜鸟最近开始学习machine learning.发现adaboost 挺有趣,就把自己 ...
- 使用nginx反向代理到不同服务器(共享同一端口)配置文件
使用nginx反向代理到不同服务器(共享同一端口)配置文件 https://blog.csdn.net/wang_k_123/article/details/72779443 https://www. ...
- Linux中盘符的两种挂载方法
相信接触过Linux系统的人对于mount命令都不陌生,今天是农历2017年的最后一个工作日,趁着时光还在,就说一下两种不同的挂载方法吧. 课前小知识: 命令格式:mount [-t vfstype] ...
- URL重写2.1.mis
概观 IIS URL重写2.1使Web管理员能够创建强大的规则来实现更容易让用户记住的网址,并使搜索引擎更容易找到.通过使用规则模板,重写映射,.NET提供程序和集成到IIS管理器中的其他功能,Web ...