基于CoreDNS和etcd实现动态域名解析

栏目: 后端 · 发布时间: 7年前

内容简介:在我开发的项目notr内网穿透当中引入DNS来解决一个问题:每次客户端连接都会修改其A记录,解析到连接的服务器节点上。目前DNS版本还非常简单,已经开源成通过github了解到

在我开发的项目notr内网穿透当中引入DNS来解决一个问题:

  • 动态配置*.notr.tech的A记录

每次客户端连接都会修改其A记录,解析到连接的服务器节点上。目前DNS版本还非常简单,已经开源成 notrns 项目。但是这个项目还有几个问题:

  • 数据存储在boltdb当中,只能本地用
  • 如果流量比较大,需要部署多个dns节点,数据同步问题比较麻烦
  • 性能有待测试,能工作,但是工作的极限还不知道

通过github了解到 CoreDNSetcd 两个项目,就想着用CoreDNS代替notrns来做动态域名解析,使用etcd来做存储,使用etcd是基于以下考量:

  • 迁移方便
  • CoreDNS有etcd插件,不用额外开发
  • 后续考虑引入etcd来做配置管理。
基于CoreDNS和etcd实现动态域名解析

测试

  1. 启动etcd
  2. 启动coredns

CoreFile:

notr.tech {
    etcd  {
        path /skydns
        endpoint http://localhost:2379
        upstream
    }
    log
}

复制代码
  1. 使用etctrl设置域名解析
➜  bin git:(master) ./etcdctl put /skydns/tech/notr/yingjiu/ '{"host":"192.168.1.2"}'

OK
➜  bin git:(master) nslookup yingjiu.notr.tech 127.0.0.1
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	yingjiu.notr.tech
Address: 192.168.1.2

➜  bin git:(master) ./etcdctl put /skydns/tech/notr/yingjiu/ '{"host":"192.168.1.3"}'

OK
➜  bin git:(master) nslookup yingjiu.notr.tech 127.0.0.1
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	yingjiu.notr.tech
Address: 192.168.1.3

➜  bin git:(master)
复制代码

接下来只需要在registry将etcd client集成进去即可。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计沟通十器

设计沟通十器

Daniel M. Brown / 樊旺斌 / 机械工业出版社 / 2008-12 / 49.00元

本书提供了网站设计时所需的可交付文档资料包括:概念模型,站点地图,可用性报告等,这些文档资料是设计人员和客户进行交流的主要工具。本书深入讨论了文档推介和风险规避技巧,向你展示了如何将文档资料按要求制作成有效的交流工具。 本书内容全面,结构清晰,讲解详细。可作为网站设计人员的参考用书。 关于网站设计的多数讨论好像都着眼于流程的创建,然而,要想把概念变为现实,需要一整套强大的可交付文档资料......一起来看看 《设计沟通十器》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换