如何利用Dnsmasq构建小型集群的本地DNS服务器

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


上次我们介绍了如何在Windows Server中构建DNS服务器:如何在Windows Server2008搭建DNS服务并配置泛域名解析

不少朋友表示非常有用,但是觉得比较繁琐,在问是否还有更简单的办法。答案显然是,Yes。

那么今天我们来介绍一个更简单的办法,通过Dnsmasq来搭建DNS服务器并实现泛域名解析。讲真,这款软件搭建域名解析,是我见过的最简单的方案,已经被我成功使用到许多PoC等测试环境的中,在不超过100台服务器的集群规模情况下, Dnsmasq还是能比较好支持,服务器的性能还是有不错的表现。

当然,Dnsmasq最大的问题也是在于此,当集群的规模超过100台,还是强烈建议大家用专业的DNS服务器软件来进行域名解析。

  • 内容概述

1.Dnsmasq简介

2.Dnsmasq安装

3.Dnsmasq配置

4.客户端测试

5.常见问题

  • 测试环境

1.RedHat7.2

2.采用sudo权限的ec2-user用户

2.Dnsmasq简介


Dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能。Dnsmasq官网如下:

http://www.thekelleys.org.uk/Dnsmasq/doc.html
  • 主要适用

Dnsmasq可以解决小范围的DNS查询问题,如用于NAT的家庭网络,用modem,cable modem,ADSL设备连接到因特网,对于那些需求低资源消耗且配置方便简单的小型网络(最多可支持1000台主机)是一个很好的选择。如果业务是跨机房、跨地区的话不建议使用Dnsmasq做为DNS解析服务器。

  • 支持系统

目前支持该软件的系统包括:Linux (with glibc and uclibc), *BSD, Solaris 和 Mac OS X。

目前支持Dnsmasq的Linux平台包括:Gentoo, Debian, Slackware, Suse, Fedora, Smoothwall, IP-Cop,floppyfw, Firebox, LEAF, Freesco, fli4l, CoyoteLinux, Endian Firewall 和 Clarkconnect。也支持FreeBSD, OpenBSD 和 NetBSD 。也使用在思科的Linksys 无线路由器(dd-wrt, openwrtand the stock firmware)中还有m0n0wall 项目。

3.Dnsmasq安装


Dnsmasq既可以源码安装,同时在主流的Linux系统的repo中已经加入了Dnsmasq,因此也可以直接通过yum和apt-get方式进行安装,下面对此分别介绍下。

  • 源码安装

以CentOS为例,安装步骤如下:

从Dnsmasq官网下载(http://www.thekelleys.org.uk/Dnsmasq/),如下:

1.下载Dnsmasq-2.78.tar.gz

[ec2-user@ip-172-31-26-102 ~]$ wget http://www.thekelleys.org.uk/Dnsmasq/Dnsmasq-2.78.tar.gz

2.解压Dnsmasq-2.78.tar.gz到/usr/local目录

[ec2-user@ip-172-31-26-102 ~]$ sudo tar -zxvf Dnsmasq-2.78.tar.gz -C /usr/local/

3.进入/usr/local/Dnsmasq-2.78目录执行如下命令

[ec2-user@ip-172-31-26-102 Dnsmasq-2.78]$ pwd
/usr/local/Dnsmasq-2.78
[ec2-user@ip-172-31-26-102 Dnsmasq-2.78]$ sudo make install

4.安装完毕后,查看下Dnsmasq的版本来验证安装结果。如下:

[ec2-user@ip-172-31-26-102 Dnsmasq-2.78]$ Dnsmasq -v
  • yum和apt-get方式安装

1.yum方式安装,如下:

[ec2-user@ip-172-31-21-45 ~]$ sudo yum -y install Dnsmasq

验证是否安装成功

[ec2-user@ip-172-31-21-45 ~]$ Dnsmasq -v

2.apt-get方式安装,如下:

sudo apt-get -y install Dnsmasq
Dnsmasq -v

4.Dnsmasq配置


Dnsmasq安装完毕后,现在我们来配置Dnsmasq。

Dnsmasq配置选项比较多,但在实际使用中,我们实际需进行配置的选项并不多。下面介绍下,平时最常使用的配置方法。

1.打开配置文件

[ec2-user@ip-172-31-26-102 ~]$ sudo vim /etc/Dnsmasq.conf 

2.在配置文件末尾添加如下配置

resolv-file=/etc/resolv.Dnsmasq.conf
strict-order
listen-address=172.31.26.102
addn-hosts=/etc/hosts
address=/cdsw-demo.cloudera.com/172.31.26.80
address=/cdsw-demo/172.31.26.80

配置说明:

resolve-file:定义Dnsmasq从哪里获取上游DNS服务器的地址,默认是从/etc/resolv.conf获取。在此我们定义的是从/etc/resolv.Dnsmasq.conf文件中获得。

strict-order:表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。

listen-address:定义Dnsmasq监听的地址,默认是监控DNS本机的所有网卡上。如果想让局域网内的其他机器使用Dnsmasq解析域名的话,需要添加本机的IP地址。

address:自定义域名解析的IP地址,在此以cdsw-demo.cloudera.com这个域名为例。注意Dnsmasq是支持泛域名解析的,以上配置就是一个典型的泛域名解析实例。

address:也可以过滤某些网站,比如如果不想让客户端解析youk.com这个域名的话,我们这个把该域名解析到一台不存在的服务器上或者解析到127.0.0.1这个地址。如:address=/ cdsw-demo.cloudera.com/127.0.0.1

3.配置/etc/hosts文件

在安装Dnsmasq的服务器上(不需要在每一台客户端服务器上修改hosts文件),修改/etc/hosts文件,使得其包含集群所有的FQDN,如下图所示:

4.重启Dnsmasq

以上配置完毕后,需要重启Dnsmasq服务,重启完毕后局域网中的其他机器,就可以通过该DNS服务器解析公网的域名。

5.客户端测试


现在我们切换到客户端,修改客户端的DNS配置文件。

1.在centos6中进行解析的方法如下:

修改/etc/resolv.conf文件配置,在nameserver中增加创建的DNS服务器IP地址

测试:

[ec2-user@ip-172-31-26-80 ~]$ nslookup 172.31.26.102
[ec2-user@ip-172-31-26-80 ~]$ nslookup ip-172-31-26-102.ap-southeast-1.compute.internal

泛域名解析

[ec2-user@ip-172-31-26-80 ~]$ nslookup 172.31.26.80
[ec2-user@ip-172-31-26-80 ~]$ nslookup cdsw-demo.cloudera.com
[ec2-user@ip-172-31-26-80 ~]$ nslookup xxx.cdsw-demo.cloudera.com

2.在centos7中进行解析的方法如下:

修改 /etc/sysconfig/network-scripts/ifcfg-eth0 ,加入:DNS1=172.31.26.102#本地DNS服务器IP地址

然后重启网络

[ec2-user@ip-172-31-26-80 ~]$ sudo systemctl restart network

查看/etc/resolv.conf,看DNS配置是否已经自动加入。

重复上述测试,确认DNS的正反向解析及泛域名解析正常工作。

6.常见问题


1.在源码安装时安装报错

解决方法:

[ec2-user@ip-172-31-26-102 ~]$ sudo yum -y install gcc

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花! 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

VmWare6.5.2下安装RHEL 5.4(配置Oracle安装环境)

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/04/4632312.aspx

12220
来自专栏IT笔记

Maven初探-如何快速入手一个项目

这已是一个工具的时代,而不是一个到处搜集JAR的年代,如果还在为搭建一个项目而到处找依赖,那你就彻底OUT了。下面,跟各位一起重温学习下Maven。 什么是Ma...

28490
来自专栏张戈的专栏

Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

摘 要 张戈博客之前分享过Nginx开启fastcgi静态缓存加速的教程,文中也提到了WordPress对应的最佳配套插件:Nginx-Helper。本文分享...

41170
来自专栏FreeBuf

如何在安卓移动终端进行一次渗透实验?

下面的实验将通过使用一个虚拟Android系统作为实验主体来进行展示。在这个实验中,通过使用虚拟Android系统,模拟移动终端的操作,来帮助我们逐步实现使用一...

39460
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

46400
来自专栏北京马哥教育

HTTP 协议漫谈

简介 网络上已经有不少介绍 HTTP 的好文章,对HTTP的一些细节介绍的比较好,所以本篇文章不会对 HTTP 的细节进行深究,而是从够高和更结构化的角度将 H...

322110
来自专栏云计算教程系列

如何在服务器上安装LAMP

在本教程中,我们将在Ubuntu上安装LAMP。Ubuntu将满足我们的第一个要求:Linux操作系统。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免...

65620
来自专栏FreeBuf

使用CMSTP绕过AppLocker的方法介绍

CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式...

12830
来自专栏用户2442861的专栏

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下。写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠谱的。

54710
来自专栏全栈架构

Centos7离线安装Cloudera Manager 5.14.1

如果是新手,请严格按照步骤来做。当然还有其他安装方式,这里讲的方式比较适合测试使用。

93610

扫码关注云+社区

领取腾讯云代金券