了解最新公司動態(tài)及行業(yè)資訊
半夜十二點,小王睡得很香。
突然,清脆的手機(jī)鈴聲響起,將睡夢中的小王拉回了現(xiàn)實。
“你好,請問是誰?”
“王功,我是監(jiān)控中心的,公司的xxx服務(wù)器宕機(jī)了,請看一下?!?/p>
小王揉了揉眼睛,起身,打開筆記本電腦,開始了一個不眠之夜。
作為運維工程師,上面的橋段經(jīng)常發(fā)生在大家身邊。白天繁重的工作讓人筋疲力盡,而作為夜間值班的工程師,你仍然要面對突發(fā)的網(wǎng)絡(luò)或系統(tǒng)故障。生活是黑白的,白天和黑夜。
請問,運維工程中可以用什么來拯救睡眠?
再講一個故事。
我有一個朋友是網(wǎng)絡(luò)工程師。姑且稱他為“錢哥”吧。
在和錢哥聊天的時候,我問他們晚上的電話任務(wù)是否繁重。他冷漠的回答如下:
“如果我們世界中的某個站點 (PoP) 出現(xiàn)故障,我們完全不必?fù)?dān)心或擔(dān)心。工程師應(yīng)該睡覺和休息?!?/p>
我很疑惑,你要知道它是一家全球CDN服務(wù)商,據(jù)說全世界10%的互聯(lián)網(wǎng)流量都跑在他們家的網(wǎng)絡(luò)上。
按常識來說,這樣規(guī)模的公司,一個區(qū)域性網(wǎng)站倒閉是一件極其嚴(yán)重的事情。但是錢哥的回答讓我很疑惑,徹底顛覆了我的認(rèn)知。
他們都是工程師,差距這么大,別人晚上睡覺,我們的機(jī)房很干!
經(jīng)過一番追問,我終于明白了他們的秘密,原來這一切都是因為他們使用了這項技術(shù)。
那我們能不能像錢哥一樣,用科技讓工程師安睡一夜?
科普,什么是技術(shù)?
在IP地址的世界里,眾所周知的IP地址類型大致有以下幾種:
IP
單播IP服務(wù)器運維,IP地址與主機(jī)一一對應(yīng)。
如下圖,紅色節(jié)點為數(shù)據(jù)包發(fā)送方,綠色節(jié)點為數(shù)據(jù)包接收方。
當(dāng)一個數(shù)據(jù)包被發(fā)送到一個特定的 IP 地址時,全球只有一臺主機(jī)接收該數(shù)據(jù)包。這是。
IP
組播IP,組播IP有一個特定的IP地址段。當(dāng)一個數(shù)據(jù)包被發(fā)送到這個組播IP地址時,組內(nèi)的成員可以收到該數(shù)據(jù)包的副本。
如下圖,紅色節(jié)點為數(shù)據(jù)包發(fā)送方,綠色節(jié)點為數(shù)據(jù)包接收方。
當(dāng)一個數(shù)據(jù)包被發(fā)送到一個特定的組播IP地址時,同時有多個數(shù)據(jù)包的接收者。
IP
廣播IP,任何單播網(wǎng)段的最后一個IP地址。發(fā)送到該地址的數(shù)據(jù)包被泛洪到整個廣播域的成員。
如下圖,紅色節(jié)點為數(shù)據(jù)包發(fā)送方,綠色節(jié)點為數(shù)據(jù)包接收方。
當(dāng)一個數(shù)據(jù)包被發(fā)送到一個廣播IP地址時,所有成員都是數(shù)據(jù)包的接收者。
IP是一種特殊類型的IP地址,結(jié)合了各種特點
中文叫任播。
從宏觀上看,類似于同一時間有多個相同類型的數(shù)據(jù)流的接收者。
而且從微觀的角度來看,它具有獨特性。每個單獨的 IP 會話都可以找到唯一的源主機(jī)和目標(biāo)主機(jī)。
乍看之下似乎矛盾,其實不然。
以DNS請求為例,假設(shè)全國人民同時發(fā)送100萬個DNS請求,全部發(fā)送到1.1.1.的DNS服務(wù)器地址@>1.
在宏觀層面,所有數(shù)據(jù)包都被傳送到分布在全國各地的 DNS 服務(wù)器。分布在各地的DNS服務(wù)器分別接收一定數(shù)量的DNS請求并做出響應(yīng)。這反映了特點。
微觀上,一個特定的DNS請求包必須發(fā)送到某個DNS主機(jī),而不是多個DNS主機(jī)同時接收該包。這是一項功能。
如下圖,紅色節(jié)點為數(shù)據(jù)包發(fā)送方,綠色節(jié)點為數(shù)據(jù)包接收方。
在環(huán)境中,一般情況下,同時有多個有效的數(shù)據(jù)包接收者,但對于特定的IP數(shù)據(jù)包,只有一個接收者主機(jī)接收到該數(shù)據(jù)包。
胡說八道在哪里?
在企業(yè)網(wǎng)絡(luò)環(huán)境中比較少見,主要用于大規(guī)模DNS部署、CDN數(shù)據(jù)緩存、數(shù)據(jù)中心等。
自然很多做企業(yè)網(wǎng)絡(luò)維護(hù)的朋友都會有疑問?;ヂ?lián)網(wǎng)上的多臺主機(jī)怎么能使用同一個IP,這不是IP地址沖突嗎?
答案:
首先,每個服務(wù)器主機(jī)位于不同的地理位置,并且它們不在同一個廣播域中。所以把所有的主機(jī)都配置成同一個IP地址不會造成我們?nèi)粘?吹降腎P地址沖突。
其次,配置相同的IP地址是不夠的,我們還需要強(qiáng)大的BGP幫助。
使用 BGP,每個站點都通告相同的 IP 地址。
自然會收到不同的目標(biāo)路徑,但I(xiàn)P地址段相同。那么數(shù)據(jù)包在這個環(huán)境中是如何路由的呢?
別著急,往下看。
為了讓大家有更深入的了解和了解,下面將詳細(xì)介紹主要優(yōu)點和用途
:
使用1:負(fù)載-負(fù)載均衡和系統(tǒng)冗余
不談理論,舉個例子方便理解。
為了說明使用和負(fù)載均衡的關(guān)系,以及冗余,一個具體的例子如下:
假設(shè)我們現(xiàn)在有三個 DNS 服務(wù)器站點,分別位于北京、上海和廣州。他們?yōu)槿珖秶?DNS 解析服務(wù)提供服務(wù)。
按照一般的方案,為了實現(xiàn)三臺DNS服務(wù)器的負(fù)載均衡,有些人可能會考慮使用硬件負(fù)載均衡設(shè)備,比如常見的F5負(fù)載均衡設(shè)備。
但是,如果使用硬件負(fù)載均衡,會出現(xiàn)以下問題:
1. 網(wǎng)絡(luò)流量瓶頸。所有流量都需要先經(jīng)過負(fù)載均衡設(shè)備,硬件設(shè)備本身的吞吐量決定了整個網(wǎng)絡(luò)環(huán)境的吞吐量。
2. 高昂的硬件成本,為了實現(xiàn)全國流量負(fù)載均衡,試想一下需要多少吞吐量的硬件設(shè)備。硬件吞吐量越高,購買成本越高。
通過技術(shù),無需任何第三方負(fù)載均衡器即可輕松實現(xiàn)負(fù)載均衡的效果,同時提供冗余和高可靠性。
實現(xiàn)如下:
通過配置三個DNS站點的服務(wù)器IP為同一個IP服務(wù)器運維,例如1.1.1.1/32。然后,1.1.1.0/24的網(wǎng)段通過各個站點的BGP對外公布。
(注意:為什么要宣布/24而不是/32?因為在其中,為了減小全局路由表的大小,運營商默認(rèn)只接受小于等于/8的網(wǎng)段,并且大于或等于 /24 宣布訪問 。)
以上步驟完成后,互聯(lián)網(wǎng)路由表將有三個不同的1.1.1.1/24出口路由器,分別是北京、上海和廣州。
這很重要,因為所有用戶都使用 1.1.1.1 作為他們的 DNS 服務(wù)器。
對于東北地區(qū)的用戶,哪個DNS服務(wù)器會為東北地區(qū)的用戶提供解析?
答案是:就近原則!
讓我們看一下數(shù)據(jù)包如何通過網(wǎng)絡(luò)路由的細(xì)節(jié):
當(dāng)用戶的DNS請求到達(dá)運營商的寬帶路由器時,運營商的路由器會根據(jù)BGP路由原則選擇到1.1.1.1的最優(yōu)路徑。
例如,在用戶的寬帶運營商和DNS服務(wù)器運營商相同的情況下,IGP最終將是決定哪個DNS服務(wù)器為用戶提供服務(wù)的關(guān)鍵因素。
在某種程度上,IGP 是物理距離的代表。
如上圖,四川寬帶路由器通過查看BGP路由發(fā)現(xiàn)1.1.1.1出口的最優(yōu)路由在廣州。然后將四川用戶的DNS報文發(fā)送到廣州的DNS服務(wù)器。
同樣,東北用戶的DNS解析會發(fā)給北京的DNS服務(wù)器,而上海的DNS服務(wù)器負(fù)責(zé)江南地區(qū)。
如果出現(xiàn)問題怎么辦?
如果三臺DNS服務(wù)器中的一臺出現(xiàn)故障,例如廣東DNS服務(wù)宕機(jī)。 BGP 協(xié)議將立即停止通告這個 1.1.1.0/24 網(wǎng)段。路由表將只有北京和上海的 DNS 可供選擇。
此時,原廣東DNS服務(wù)的用戶會根據(jù)“最近原則”選擇另一臺DNS服務(wù)器,如上海DNS。
從而實現(xiàn)業(yè)務(wù)平滑遷移和服務(wù)高可用。
基于以上分析,我們不難得出以下結(jié)論:
全國用戶最終會根據(jù)與DNS服務(wù)器的距離來決定使用哪個DNS服務(wù)器進(jìn)行域名解析。
從DNS的角度來看,正是因為不同地理位置的用戶會根據(jù)就近的路由選擇不同的DNS服務(wù)器,最終達(dá)到三臺DNS服務(wù)器負(fù)載均衡的效果。
如果其中一個節(jié)點出現(xiàn)故障,業(yè)務(wù)會立即遷移到其他可用節(jié)點,避免網(wǎng)絡(luò)服務(wù)故障。完全不需要人工干預(yù)。