此文已由作者赵斌授权网易云社区发布

欢迎访问网易云社区,了解更多网易技术产品运营经验。

一、前言

最近为了测试内容分发网络(Content Delivery Network,简称 CDN)CDN在调用外部API接口时,解析API的域名依赖于域名管理服务器,如果域名解析异常,会严重影响API的调用。于是添加了CDN内部增加域名解析管理模块,用于在域名解析异常时,使用已缓存的域名服务。为了测试此功能需要搭建DNS服务器,接下来介绍下如何在本地用Dnsmasq搭建简单的DNS缓存服务器及如何应用。

二、Dnsmasq的安装、配置、测试

  1. Dnsmasq的安装

apt-get install dnsmasq
  1. 配置

  • 编辑dnsmasq.conf配置文件

vim dnsmasq.conf 找到#resolv-file修改为:resolv-file=/etc/resolv.dnsmasq.conf添加:
addn-hosts=/etc/dnsmasq.hosts
  • 编辑resolv.conf配置文件

cp /etc/resolv.conf /etc/resolv.dnsmasq.conf vi /etc/resolv.conf将其中的域名服务器全部去掉,添加:
nameserver 127.0.0.1
  • 编辑dnsmasq.hosts来设置域名

1.1.1.1 www.baidu.com2.2.2.2 www.kaola.com
  1. 启动Dnsmasq

service dnsmasq restart
  1. 测试:dig www.baidu.com



#1.1.1.1 www.baidu.com2.2.2.2 www.kaola.com
  • 再次启动Dnsmasq

service dnsmasq restart

三、Dnsmasq在CDN中的应用

  • 编辑dnsmasq.hosts来设置域名

1.1.1.1 www.baidu.com
  • 启动Dnsmasq

service dnsmasq restart
  • 修改CDN配置文件中关于dns的部分

<dnsCacheUpdateCycle>5</dnsCacheUpdateCycle><dnsCacheDomains>www.baidu.com</dnsCacheDomains><dnsServer>127.0.0.1</dnsServer>

四、Dnsmasq总结

使用Dnsmasq作为本地DNS服务器安装方便,操作简单。同时Dnsmasq的其他功能也很强大,如:支持反DNS劫持、加快解析速度、屏蔽广告、控制内网DNS、强制域名跳转到特定IP上等,这些功能在我们的实际的生活中都是很有用的,后续对于DNS有需求或有兴趣的可以深入研究。

内容分发网络(Content Delivery Network,简称 CDN),是网易云提供的网页和图片、文件下载、视频点播等类型的加速服务。通过将源站内容同步到全国各边缘节点,配合精准的调度系统,将用户的请求分配最佳节点,使用户快速获取内容。

免费体验云安全(易盾)内容安全、验证码等服务

11.1—11.15云计算基础服务全场5折起

更多网易技术、产品、运营经验分享请点击

相关文章:
【推荐】 缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo
【推荐】 AndroidApp的破解技术有哪些?如何防止反编译?

如何配置使用Dnsmasq的更多相关文章

  1. Dnsmasq 配置PXE批量安装系统

    以下测试都是基于centos 7下的环境 需要安装的软件为 nginx 用来下载ks.cfg和系统镜像文件用的,也可以用ftp服务器来代替 dnsmasq 提供dhcp服务和tftp服务,也可以单独去 ...

  2. centos下dnsmasq安装与配置

    说明1.dnsmasq是一款小巧且方便地用于配置DNS服务器和DHCP服务器的工具,适用于小型网络,它提供了DNS解析功能和可选择的DHCP功能. 2.dnsmasq可以解决小范围的dns查询问题,如 ...

  3. centos6 名字服务dnsmasq配置

    1 主机名配置 主机hd1配置(后面配置为名字服务器) [grid_hd@hd1 Desktop]$ cat /etc/sysconfig/network NETWORKING=yes HOSTNAM ...

  4. 树莓派安装DNSMASQ服务

    功能: DNSMASQ是一款高性能的.小型的DNS服务器软件. * 缓存域名.IP地址,本地缓存解析的地址. * DHCP服务 1.安装 sudo apt-get update sudo apt-ge ...

  5. DNSmasq搭建DNS服务器

    原文地址:http://jirry.me/2016/04/19/dnsmasq-on-aliyun/ DNSmasq 是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了 ...

  6. Linux dnsmasq 服务

    在日常开发中,有这么一个需求: 大家在公司内网同一个网段下,一般情况上网会由网关(一般是路由器)的DHCP服务分配IP.公司内网里放了几台服务器,分别配置成静态IP,这些IP是DHCP配置时预留的.服 ...

  7. RHEL/CentOS 7 中配置 PXE 网络启动服务器

    RHEL/CentOS 7 中配置 PXE 网络启动服务器 作者: Matei Cezar 译者: LCTT joeren | 2015-02-17 14:28   评论: 13 收藏: 8 分享:  ...

  8. Neutron分析(4)—— neutron-dhcp-agent

    一.概述 neutron dhcp为租户网络提供DHCP服务,即IP地址动态分配,另外还会提供metadata请求服务. 3个主要的部件: DHCP agent scheduler:负责DHCP ag ...

  9. proxy解析

    知其所以然 本文不是教程向,倾向于分析科学上网的一些原理.知其所以然,才能更好地使用工具,也可以创作出自己的工具. 科学上网的工具很多,八仙过海,各显神通,而且综合了各种技术.尝试从以下四个方面来解析 ...

随机推荐

  1. 普通java类加入spring容器的四种方式

    今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...

  2. 在解析XML时要注意解析元素和解析标签属性的区别

    解析元素时: Sting str = ele.elementText("name"); 而解析标签属性时: String key = ele.attributeValue(&quo ...

  3. Mysql远程链接访问权限设置

    Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号 如何开启MySQL的远程帐号-1)首先以 r ...

  4. 如何理解Box-sizing模型?

    CSS3 box-sizing 属性 http://www.w3school.com.cn/tiy/t.asp?f=css3_box-sizing <style> div.containe ...

  5. CyclicBarrier与CountDownLatch的区别

    import java.util.concurrent.CountDownLatch; /** * 作用于单个线程或几个线程,,在其他线程执行完之前,一直等待(await)知道countDown为零 ...

  6. python模块inspect.py

    inspect模块用来检查对象的类型(函数,属性,类,抽象基类,方法,模块等等) 是一个封装好的非常有用的模块. ]) ]: cls = :]: content = ] = lines[].lstri ...

  7. Struts2 - ModelDriven 拦截器、Preparable 拦截器

    开篇:拦截器在Struts中的作用 在我们的web.xml中,我们配置了一个过滤器,实现将所有请求交付StrutsPrepareAndExecuteFilter类.一旦接受到任意action的请求,该 ...

  8. 【leetcode刷题笔记】Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  9. 【二叉查找树】01不同的二叉查找树的个数【Unique Binary Search Trees】

    当数组为1,2,3,4,...,n时,基于以下原则构建的BST树具有唯一性: 以i为根节点的树,其左子树由[1,i-1]构成,其右子树由[i+1, n]构成. 我们假定f(i)为以[1,i]能产生的U ...

  10. vc中播放mp3文件的方法小结

    一般播放MP3常见的有两种方法,一种是自己解码,另外一种用系统的库,比如MCI,当然如果可以用控件直接用个控件会更方便. 1.      使用mci #include <windows.h> ...