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

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

一、前言

最近为了测试内容分发网络(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. python中字符串使用需要注意的地方

    1. r''的使用 'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子 2. u''的使用 引号之前加上字母u时,python会将 ...

  2. ML2 Extension Manager

    The extension manager for ML2 was introduced in Juno (more details can be found in the approvedspec) ...

  3. Delphi Stringlist Delimiter如何区分TAB和空格

    var st: TStrings; begin st := TStringList.Create; st.StrictDelimiter := True;//这个多少人用过? st.Delimiter ...

  4. Oracle使用hs odbc连接mssql2008

    1.创建odbc 2.在 product\11.2.0\dbhome_1\hs\admin\  下拷贝initdg4odbc,把名字改为initcrmsql(init+所建odbc的名称) HS_FD ...

  5. python 正则表达式(一)

    正则表达式(简称RE)本质上可以看作一个小的.高度专业化的编程语言,在Python中可以通过re模块使用它.使用正则表达式,你需要为想要匹配的字符串集合指定一套规则,字符串集合可以包含英文句子.e-m ...

  6. POJ 1258 Agri-Net(Prim算法)

    题意:n个农场,求把所有农场连接起来所需要最短的距离. 思路:prim算法 课本代码: //prim算法 #include<iostream> #include<stdio.h> ...

  7. Java企业微信开发_04_消息推送之发送消息(主动)

    源码请见: Java企业微信开发_00_源码及资源汇总贴 一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息 ...

  8. nodejs stream基础知识

    分类 nodejs 的 stream 有四种: Readable:可读流 Writable: 可写流 Duplex:双工流 Transform:转换流 Readable // _read方法是从底层系 ...

  9. 汇编题目:在窗口上显示Welcome to masm!

    题目:在屏幕中间分别显示绿色.绿底红色.白底蓝色的字符串'welcome to masm!'. 该程序题目来自<王爽 汇编语言_第2版>的188页的说明.相关资料也在上面都有详细说明. 题 ...

  10. BZOJ3039:玉蟾宫

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...