動(dòng)態(tài)配置*.notr.tech的A記錄每次客戶端連接都會修改其A記錄,解析到連接的服務(wù)器節(jié)點(diǎn)上。目前DNS版本還非常簡單,已經(jīng)開源成notrns項(xiàng)目。但是這個(gè)項(xiàng)目還有幾個(gè)問" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > 基于CoreDNS和etcd實(shí)現(xiàn)動(dòng)態(tài)域名解析

基于CoreDNS和etcd實(shí)現(xiàn)動(dòng)態(tài)域名解析

時(shí)間:2023-02-07 09:24:01 | 來源:建站知識

時(shí)間:2023-02-07 09:24:01 來源:建站知識

在我開發(fā)的項(xiàng)目notr內(nèi)網(wǎng)穿透當(dāng)中引入DNS來解決一個(gè)問題:

每次客戶端連接都會修改其A記錄,解析到連接的服務(wù)器節(jié)點(diǎn)上。目前DNS版本還非常簡單,已經(jīng)開源成notrns項(xiàng)目。但是這個(gè)項(xiàng)目還有幾個(gè)問題:

通過github了解到CoreDNS和etcd兩個(gè)項(xiàng)目,就想著用CoreDNS代替notrns來做動(dòng)態(tài)域名解析,使用etcd來做存儲,使用etcd是基于以下考量:







測試

  1. 啟動(dòng)etcd
  2. 啟動(dòng)coredns
CoreFile:

notr.tech { etcd { path /skydns endpoint http://localhost:2379 upstream } log}
  1. 使用etctrl設(shè)置域名解析
? 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.1Server: 127.0.0.1Address: 127.0.0.1#53Name: yingjiu.notr.techAddress: 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.1Server: 127.0.0.1Address: 127.0.0.1#53Name: yingjiu.notr.techAddress: 192.168.1.3? bin git:(master)接下來只需要在registry將etcd client集成進(jìn)去即可,改造完之后整個(gè)軟件變成了下圖所示的流程。







  1. 每次啟動(dòng)一個(gè)服務(wù)端節(jié)點(diǎn)之后,會往registry發(fā)送當(dāng)前節(jié)點(diǎn)的信息,目的是讓registry做負(fù)載均衡以及根據(jù)地理位置進(jìn)行調(diào)度,同時(shí)服務(wù)端節(jié)點(diǎn)也可以隨時(shí)插拔,隨時(shí)都可以添加和刪除節(jié)點(diǎn)。
  2. 把節(jié)點(diǎn)信息寫入數(shù)據(jù)庫,當(dāng)前使用mongodb
  3. 步驟一和步驟二初始化完成之后,用戶使用客戶端,先和registry節(jié)點(diǎn)連接,獲取接入的服務(wù)節(jié)點(diǎn)的信息
  4. registry從數(shù)據(jù)庫中取出在步驟二中存儲的節(jié)點(diǎn)信息,并根據(jù)節(jié)點(diǎn)當(dāng)前連接的客戶端數(shù)量和地理位置進(jìn)行一輪選擇,首選地理位置最近的,目前只劃兩個(gè)區(qū),中國區(qū)和海外區(qū),然后再根據(jù)客戶端連接數(shù)量排序選擇連接數(shù)最少的。
  5. 客戶端拿到節(jié)點(diǎn)信息之后和server建立tcp長連接
  6. server節(jié)點(diǎn)需要從registry請求用戶,限速等信息
  7. 從數(shù)據(jù)庫取出數(shù)據(jù)
  8. 生成域名解析記錄,將當(dāng)前用戶等域名映射到它當(dāng)前連接到server的公網(wǎng)IP
  9. 每次需要域名解析時(shí),由于配置了ns記錄,用戶的域名解析請求最終會到coredns,coredns再從etcd中取出

關(guān)鍵詞:動(dòng)態(tài),實(shí)現(xiàn)

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉