日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DNS常用记录类型和服务发现(DNS解析)

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DNS常用记录类型和服务发现(DNS解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DNS

DNS(domain name system)主要用來把人類可識別的域名解析成網絡層的IP地址。這個過程中負責查詢的組件稱之為DNS Resolver,它會查詢本地cache和遠程的DNS server。DNS server的IP地址可通過DHCP協議獲取或者人為配置,端口號固定為53,傳輸層協議為UDP。

DNS server

DNS resolver

https://www.jianshu.com/p/5f9e245e0453

DNS record type

  • A Record: 域名的IPv4地址。
  • AAAA Record: 域名的IPv6地址。
  • CNAME Record: 域名的別名。可以理解為域名的重定向吧,主要方便IP地址的變更。比如cdn廠商會給客戶企業分配固定的cname而不是IP,如果分配IP,cdn廠商做IP調整就受限哪些客戶企業的哪些域名綁定了這個IP,需要溝通服務遷移。還有在企業多個域名(www/mail/ftp或其他業務分類的域名)對應一個入口IP地址時候,也可以給多個域名做cname,便于后期的IP調整。總之,別名是一種松耦合的處理辦法。
  • MX Record: smtp郵箱域名的IP地址。給client端指明某個域名的郵件服務器地址。
  • PTR Record: 根據IP反向查找域名。
  • SRV Record: 服務的IP地址記錄,包含ip、port、priority、weight。
  • TXT Record:域名的文本記錄。可以記錄聯系方式、服務版本信息、反垃圾郵件等。
  • NS Record: dns zone。指定哪個域名服務器可以解析該域名的子域名。
  • SOA Record: 授權機構記錄,記錄ns中哪個是主服務器。

dig命令

  • A Record

  • CNAME Record

  • MX Record

  • SRV Record

  • TXT Record

wireshark抓包?

go demo

package mainimport ("fmt""net" )func main() {ips, _ := net.LookupIP("www.bing.com")fmt.Println(ips)cname, _ := net.LookupCNAME("www.bilibili.com")fmt.Println(cname)cname, srvs, _ := net.LookupSRV("xmpp-server", "tcp", "google.com")fmt.Println(cname)fmt.Println("優先級 權重 目標 端口")for _, value := range srvs {fmt.Printf("%d %d %s %d\n", value.Priority, value.Weight, value.Target, value.Port)} }

執行結果:

[202.89.233.100 202.89.233.101] js-cmcc-v4v6.biliapi.com. _xmpp-server._tcp.google.com. 優先級 權重 目標 端口 5 0 xmpp-server.l.google.com. 5269 20 0 alt1.xmpp-server.l.google.com. 5269 20 0 alt4.xmpp-server.l.google.com. 5269 20 0 alt2.xmpp-server.l.google.com. 5269 20 0 alt3.xmpp-server.l.google.com. 5269

基于dns的服務發現

  • A Record
    該方式只適合發現服務的IP地址,因此服務的端口是固定唯一的。

  • SRV Record
    該方式不僅可以發現服務IP和端口,還可以獲取服務的優先級和權重。
    使用該方式的開源產品:etcd
    etcd cluster在對外提供服務發現能力的同時,member之間的服務發現,客戶端發現服務端集群所采用的一種方式就是DNS srv記錄,源碼請參考go.etcd.io/etcd/pkg/srv這個package。etcd集群服務發現的其他方式見
    https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/clustering.md#dns-discovery,

  • TXT Record
    因為是文本記錄,所以可以自定義服務發現的協議字段等信息,較為靈活。
    使用該方式的開源產品:eureka

總之,不管使用dns的哪種record,dns做服務發現天然缺少推送機制,需要消費端輪詢dns記錄。同時,因為應用不同、開發語言sdk不同、操作系統不同,dns resolver的實現和封裝也就不同,name resolve整個過程中會遇到不同層面的cache,導致獲取最新ip地址有延時。因此在服務發現的場景下,name resolver要繞過操作系統或語言sdk的cache,api的選擇要謹慎。

?

總結

以上是生活随笔為你收集整理的DNS常用记录类型和服务发现(DNS解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。