Linux下域名解析的優(yōu)化

緣起

Linux系統(tǒng)下域名解析的配置文件是/etc/resolv.conf,這個大家都知道。估計一般的系統(tǒng)管理員、運維人員都知道在這里面配置上兩個或更多的nameserver,以便一個掛掉后還能正常解析域名。但真的情況是這樣嗎?
我從某次故障說起吧,有一次,線上報大量的dns解析失敗,上去看,發(fā)現(xiàn)是一臺nameserver掛掉了,幸好/etc/resolv.conf中的另外一臺沒有掛,所以,還不是百分百的解析失敗。從邏輯上來講,這些失敗的請求應該會去嘗試另外一個(好的)nameserver的,但是重試的場景和策略是什么呢?不得而知。所以我就關注了下/etc/resolv.conf文件的配置問題。

下策

優(yōu)化方案之一,就是在/etc/resolv.conf中做優(yōu)化設置。優(yōu)化前內(nèi)容如下:

nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3

優(yōu)化之后,文件內(nèi)容變?yōu)椋?/p>

options timeout:1 attempts:1 rotate
nameserver 10.0.0.1
nameserver 10.0.0.2
nameserver 10.0.0.3

這里大概講下新加的幾個選項的含義:

  • nameserver:dns服務器的ip地址。最多能設三個。
  • timeout:查詢一個nameserver的超時時間,單位是秒。系統(tǒng)缺省是5,最大可以設為30。這他娘不是坑爹嗎?那個應用的dns請求會允許這么長的超時時間?早tm超時出錯返回了吧。所以我們這里改成最小值:1
  • attempts:這個是查詢的整個都嘗試一遍的次數(shù)。缺省是2,我覺得在有3臺nameserver的前提下,都查詢一遍就完全夠了(畢竟三臺中有一臺能正常查出結(jié)果的概率是相當大的吧,尤其是nameserver都有監(jiān)控的說)
  • rotate:這個參數(shù)的含義是隨機選取一個作為首選查詢的dns server。系統(tǒng)缺省是從上到下的,所以你該了解到為什么缺省情況下第一個nameserver的負載比第三個的大多了吧。

之所以這只是下策,是因為這種解決方案如果碰到有一臺nameserver(假如是10.0.0.1)掛掉的情況下,客戶端解析請求如果又恰好分到這臺nameserver的時候,應用會解析超時失敗的概率太高了。

中策

中策就是做nameserver的高可用,用lvs來做,做兩個vip:10.0.0.4和10.0.0.5,后端real server還是指向這三臺真實的nameserver:10.0.0.1、10.0.0.2和10.0.0.3,這樣real server的健康狀況就由lvs來維護了,這樣當客戶端來訪問vip時,只要后端的3臺不都掛掉,就一定能保證返回正確的結(jié)果。
具體的配置我就不貼了,直接用keepalived來做即可。
這個解決方案其實也挺完美的,尤其是當有現(xiàn)成的lvs director的時候。看了最后一策,就知道為什么這個只是中策了。

上策

這個方案是我仔細考慮后推薦的方案,尤其適用于沒有現(xiàn)成的lvs director的環(huán)境里。這個方案的主要特點是:

  • 本機起dnsmasq,監(jiān)聽本地的udp 53口,用來監(jiān)聽來自于本地的解析請求。
  • 在dnsmasq里,將上層服務器定義為10.0.0.1、10.0.0.2和10.0.0.3。

這個方案的優(yōu)點在于:

  • 本地雖然多起一個dnsmasq服務,但是僅監(jiān)聽127.0.0.1,所以基本不影響性能
  • dnsmasq會自己維護上游服務器的健康狀況,不會把解析請求發(fā)到掛掉的上游服務器上

這個方案能夠自動做dns server的故障切換,而且不引入任何外部的依賴(dnsmasq是本機跑的),幾乎不影響性能,甚至于還有可能提升性能,畢竟,dnsmasq也是會做一級緩存的。所以,我認為其為上策!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內(nèi)容

  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,898評論 0 0
  • dnsmasq是什么我就不說了,請自行百度。 目前我需要使用的用途是:1.dhcp(分配一個或者多個內(nèi)網(wǎng)ip地址)...
    dnaEMx閱讀 16,247評論 0 6
  • DNS 是什么 DNS (Domain Name System), 也叫網(wǎng)域名稱系統(tǒng),是互聯(lián)網(wǎng)的一項服務。它實質(zhì)上...
    interstellar多米諾閱讀 2,833評論 0 6
  • 在使用consul做docker容器服務化的過程中,使用到了dnsmasq做DNS請求轉(zhuǎn)發(fā),于是研究了下DNS協(xié)議...
    __七把刀__閱讀 4,011評論 2 13
  • 14.1 引言 域名系統(tǒng)(DNS)是一種用于TCP/IP應用程序的分布式數(shù)據(jù)庫,它提供主機名字和IP地址之間的轉(zhuǎn)換...
    張芳濤閱讀 1,910評論 0 8