内容简介:在我开发的项目notr内网穿透当中引入DNS来解决一个问题:每次客户端连接都会修改其A记录,解析到连接的服务器节点上。目前DNS版本还非常简单,已经开源成通过github了解到
在我开发的项目notr内网穿透当中引入DNS来解决一个问题:
- 动态配置*.notr.tech的A记录
每次客户端连接都会修改其A记录,解析到连接的服务器节点上。目前DNS版本还非常简单,已经开源成 notrns 项目。但是这个项目还有几个问题:
- 数据存储在boltdb当中,只能本地用
- 如果流量比较大,需要部署多个dns节点,数据同步问题比较麻烦
- 性能有待测试,能工作,但是工作的极限还不知道
通过github了解到 CoreDNS 和 etcd 两个项目,就想着用CoreDNS代替notrns来做动态域名解析,使用etcd来做存储,使用etcd是基于以下考量:
- 迁移方便
- CoreDNS有etcd插件,不用额外开发
- 后续考虑引入etcd来做配置管理。
测试
- 启动etcd
- 启动coredns
CoreFile:
notr.tech { etcd { path /skydns endpoint http://localhost:2379 upstream } log } 复制代码
- 使用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集成进去即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。