通常,網(wǎng)絡(luò)工程師專注在技術(shù)方面檢查問題,而不是問題的需求。良好的網(wǎng)絡(luò)設(shè)計(jì)原則通常是先提出一些基本問題,然后仔細(xì)思考真正需要的東西。
例如在一個(gè)網(wǎng)絡(luò)圖中,需要將服務(wù)從主機(jī)1移動(dòng)到主機(jī)2,每個(gè)主機(jī)都連接到不同的數(shù)據(jù)中心結(jié)構(gòu)。這兩個(gè)結(jié)構(gòu)通過服務(wù)提供商提供的鏈路連接在連接到結(jié)構(gòu)邊緣的兩個(gè)路由器之間。
人們要問的第一個(gè)問題是:真的需要以太網(wǎng)或延伸的Layer 2嗎?
數(shù)據(jù)中心互聯(lián)(DCI)的大部分復(fù)雜性是試圖使擴(kuò)展的物理環(huán)境看起來像一個(gè)以太網(wǎng)域的結(jié)果。但以太網(wǎng)并非設(shè)計(jì)用于跨越長地理區(qū)域并互連數(shù)千臺主機(jī)。
雖然有些技術(shù)允許這些類型的互聯(lián),但重要的是要考慮這些工具應(yīng)該如何實(shí)現(xiàn)以及在哪里實(shí)現(xiàn),而不是簡單地將復(fù)雜性推到網(wǎng)絡(luò)中。
在這個(gè)數(shù)據(jù)中心互聯(lián)圖中,真的需要以太網(wǎng)擴(kuò)展嗎?
保留IP地址
Layer 2移動(dòng)性的最常見原因是保留服務(wù)或應(yīng)用程序的IP地址,同時(shí)將其從一個(gè)數(shù)據(jù)中心結(jié)構(gòu)移動(dòng)到另一個(gè)數(shù)據(jù)中心結(jié)構(gòu)。但是,服務(wù)移動(dòng)性有三個(gè)組成部分:
首先是客戶如何找到服務(wù)。是通過名稱還是IP地址本身?如果通過其名稱發(fā)現(xiàn)服務(wù),則可以使用某些命名規(guī)范(例如動(dòng)態(tài)域名系統(tǒng))來允許服務(wù)移動(dòng)而不要求IP地址保持不變。
采用域名系統(tǒng)(DNS)通常被認(rèn)為是非常慢的措施。但在公司或數(shù)據(jù)中心內(nèi),沒有理由不采用DNS。用戶可以調(diào)整DNS計(jì)時(shí)器,并且可以設(shè)計(jì)負(fù)載平衡和其他功能,以允許在具有兩個(gè)不同IP地址的兩個(gè)服務(wù)副本之間快速進(jìn)行故障轉(zhuǎn)移。
第二個(gè)組件是將IP地址本身從網(wǎng)絡(luò)中的一個(gè)位置移動(dòng)到另一個(gè)位置。最簡單的方法是將新舊物理設(shè)備連接到同一物理段。雖然需要重新學(xué)習(xí)低層到IP層的映射,但其他一切都保持不變。
采用延伸Layer 2的風(fēng)險(xiǎn)
在過去,應(yīng)用程序的設(shè)計(jì)假設(shè)應(yīng)用程序的不同部分通過以太網(wǎng)段直接連接。應(yīng)用程序不應(yīng)再以這種方式編寫,盡管它們通常仍然存在。為了解決這個(gè)問題,很容易讓網(wǎng)絡(luò)更加復(fù)雜,但這忽略了真正的權(quán)衡。
添加延伸的Layer 2會使網(wǎng)絡(luò)更加復(fù)雜,從而導(dǎo)致網(wǎng)絡(luò)變得脆弱。延伸的Layer 2可能會觸發(fā)更高的網(wǎng)絡(luò)故障率,最終導(dǎo)致企業(yè)損失可用性,而不是考慮如何使應(yīng)用程序更好地工作。
另一個(gè)考慮因素是Layer 3。應(yīng)用程序無法在Layer 3工作會如何影響其在整個(gè)網(wǎng)絡(luò)中的性能?如果應(yīng)用程序的開發(fā)人員將其設(shè)計(jì)為僅在短期本地鏈接上工作,則可能會對計(jì)時(shí)器、流量控制和其他因素進(jìn)行假設(shè)。
因此,應(yīng)用程序可能在地理上延伸的段中工作得更好,但也可能是應(yīng)用程序運(yùn)行接近某個(gè)性能指標(biāo)的邊緣,最終會導(dǎo)致失敗。沒有真正的方法來了解這種差異。
服務(wù)移動(dòng)性的第三個(gè)組件是發(fā)現(xiàn)。服務(wù)的不同實(shí)例如何相互查找?即使指示了某種形式的Layer 2移動(dòng)性,也可能將單個(gè)邏輯Layer 2段分解為多個(gè)廣播域。這不僅簡化了網(wǎng)絡(luò)的設(shè)計(jì),而且還減小了各種故障域的大小,增加了平均故障間隔時(shí)間。
同樣,應(yīng)用程序不應(yīng)再使用此類型的Layer 2發(fā)現(xiàn)機(jī)制;如果這樣做,則需要非常小心地設(shè)計(jì)應(yīng)用程序。
安全和遙測問題
除了這些組件之外,還有其他數(shù)據(jù)中心互連挑戰(zhàn),特別是在安全和遙測方面。
例如有一個(gè)常見的假設(shè),即如果通過供應(yīng)商提供的虛擬電路傳輸流量,則它是安全的。這是一個(gè)糟糕的假設(shè)。隧道增加了一個(gè)新的標(biāo)題,可以防止攻擊者攔截或檢查流量。必須明確處理安全性,特別是在處理最初設(shè)計(jì)為在單個(gè)物理設(shè)施中包含的單個(gè)短段傳輸流的時(shí)候。
同時(shí),遙測是必不可少的。用戶如何知道在延伸鏈接中可能遇到的延遲和抖動(dòng)?怎么知道丟包的時(shí)間、地點(diǎn)和數(shù)量?如何確定數(shù)據(jù)包是否無序傳送?遙測和管理是數(shù)據(jù)中心之間連接的關(guān)鍵組成部分,在出現(xiàn)問題之前需要加以解決。
數(shù)據(jù)中心互連通常被認(rèn)為是一個(gè)已解決的問題。然而,重新審視數(shù)據(jù)中心互連技術(shù)可能面臨的問題,以仔細(xì)地確定增加復(fù)雜性是否是最好的方法,這是很有價(jià)值的。