bind: DNS服務端。
namedmanager: DNS web管理頁面。
dnsmasq: 並發查詢上游dns域名解析。
問題:
作為消息推送業務,單台業務機器域名解析並發達到上萬次。業務機器集群龐大,高峰期dns解析並發數可以達到100w。造成dns服務端壓力巨大,出現異常:高負載,解析超時,或者拒絕服務,無法解析域名。
解決方案如下:
1、上100w的並發查詢導致dns拒絕服務: bind默認recursive clients值為1000,加大bind並發數可以解決高並發問題,解決拒絕服務問題。 2、上游dns ip異常導致解析超時,導致業務異常: bind是單點查詢上游dns的,就算你寫了上10個上游dns ip都沒用,上100w的並發查詢,只要上游一個dns ip出現異常,就會導致一大批的業務異常。使用dnsmasq並發查詢上游dns,解決單點上游DNS ip異常超時問題。 3、dns域名解析並發數太大,導致dns服務端高負載、拒絕服務: 業務機器使用dnsmasq做本地dns緩存,解決bind服務端壓力問題。
這種架構對dns服務端有質變的優化效果。