DNS解析

1、DNS解析

$ nslookup www.baidu.com
Server:        172.17.1.235
Address:    172.17.1.235#53 #port 53, local DNS 172.17.1.235

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 183.232.231.172
Name:    www.a.shifen.com
Address: 183.232.231.174

$ dig www.baidu.com #也可以用dig查看遞歸查找情況

; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47972
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        59    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    71    IN    A    183.232.231.174
www.a.shifen.com.    71    IN    A    183.232.231.172

;; AUTHORITY SECTION:
shifen.com.        61127    IN    NS    ns4.baidu.com.
shifen.com.        61127    IN    NS    dns.baidu.com.
shifen.com.        61127    IN    NS    ns3.baidu.com.
shifen.com.        61127    IN    NS    ns2.baidu.com.

;; ADDITIONAL SECTION:
dns.baidu.com.        25537    IN    A    202.108.22.220
ns2.baidu.com.        1807    IN    A    220.181.33.31
ns3.baidu.com.        22324    IN    A    112.80.248.64
ns4.baidu.com.        23390    IN    A    14.215.178.80

;; Query time: 1 msec #總計耗時1ms,很快
;; SERVER: 172.17.1.235#53(172.17.1.235)
;; WHEN: Wed Jun 19 09:58:52 CST 2019
;; MSG SIZE  rcvd: 237

$ dig +trace +nodnssec www.baidu.com

; <<>> DiG 9.10.6 <<>> +trace +nodnssec www.baidu.com
;; global options: +cmd
.            367863    IN    NS    e.root-servers.net.
.            367863    IN    NS    b.root-servers.net.

$ nslookup -debug www.baidu.com #打開debug模式跟蹤,查看具體情況

$ cat /etc/resolv.conf #查看DNS配置,檢查DNS是否配置

$ echo "nameserver 192.168.10.1" > /etc/resolv.conf #寫入DNS

$ nslookup  www.baidu.com #再次查看下是否正常

假如正常了,看下耗時

$ time nslookup www.baidu.com

Server:        192.168.10.1
Address:    192.168.10.1#53

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 182.61.200.7
Name:    www.a.shifen.com
Address: 182.61.200.6


real    0m0.052s 
user    0m0.004s
sys    0m0.027s

假如解析不穩定,偶現超時失敗情況, 考慮:1)DNS服務器本身不穩定 2)客戶端到DNS服務器網絡延時大 3)鏈路中網絡設備丟包。

1)的情況,上面 192.168.10.1是我的DNS服務器,DNS異常可能會出現很多域名解析問題,這裏我們假設DNS服務器是正常的。

2)的情況,本地到DNS延遲大還是有很大可能的,使用

$ ping -c3 172.17.1.235  #查看下時延和丟包情況

如果時延比較大,考慮換一個DNS。多次執行,發現時間不穩定,考慮加dnsmasq緩存服務,

$ /etc/init.d/dnsmasq start #開始緩存服務
 * Starting DNS forwarder and DHCP server dnsmasq                    [ OK ]

$ echo nameserver 127.0.0.1 > /etc/resolv.conf #更改DNS服務地址爲本地迴環地址

$  time nslookup www.xxx.com #多執行幾次驗證下,會看到第一次執行耗時長,之後都快很多。開啓DNS緩存後,緩存服務會定時去更新DNS,這對大多數服務來說是可以容忍的。

2、DNS常見優化思路

DNS結果緩存:開啓dnsmasq

DNS解析預存:在web應用中,不等用戶點擊頁面上超鏈,瀏覽器在後臺自動解析域名,把結果緩存。

HttpDNS取代DNS解析:移動應用防DNS劫持

基於DNS的全局負載均衡(GSLB):負載均衡和高可用,同時返回離用戶最近的IP。

注:學習倪鵬飛老師linux性能優化課程筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章