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