多地部署輕松搞定:借助Linode VLAN快速實(shí)現(xiàn)多區(qū)域部署
VLAN和VPC是一種網(wǎng)絡(luò)隔離方法,我們可以借此保護(hù)自己部署在公有云中的基礎(chǔ)設(shè)施。通過減少網(wǎng)絡(luò)的攻擊面,同時(shí)供我們對(duì)需要以及不需要訪問互聯(lián)網(wǎng)的應(yīng)用程序?qū)舆M(jìn)行分割,這些方法有助于提高整體安全性。那么不妨考慮一個(gè)更大的話題:是否能在Linode的幫助下,實(shí)現(xiàn)私有網(wǎng)絡(luò)的跨地域部署。
這里所說的“地域”(Region)是指一個(gè)云服務(wù)提供商內(nèi)部所包含的不同地理位置,而“區(qū)域”(Zone)通常是指在一個(gè)地域內(nèi)所提供的多個(gè)托管地點(diǎn)。例如,云服務(wù)商可能在北京設(shè)立了“北方地域”,并在廣州設(shè)立了“南方地域”,每個(gè)地域都是通過當(dāng)?shù)氐亩鄠€(gè)“區(qū)域”提供服務(wù)的。
除了可以通過距離大部分用戶更近的地理位置提供延遲更低的服務(wù),多地域方式部署的應(yīng)用程序還可以幫助我們大幅提高應(yīng)用程序的可靠性與容錯(cuò)性。任何可能對(duì)一個(gè)位置運(yùn)行的工作負(fù)載造成影響的問題(包括硬件故障或本地網(wǎng)絡(luò)中斷),都可通過將用戶重新路由到另一個(gè)位置的方式加以緩解。
延伸閱讀,了解Akamai cloud-computing
部署多地域 VLAN
為了在多地域部署的不同 VLAN 分段之間進(jìn)行路由,我們可以使用虛擬專用網(wǎng)絡(luò)(VPN)將 VLAN 網(wǎng)段捆綁在一起。
首先,我們需要使用一個(gè)充當(dāng)公共路由器的 Linode 節(jié)點(diǎn)將部署在一個(gè)地域的所有相關(guān) VLAN 捆綁在一起。此時(shí),每個(gè) VLAN 網(wǎng)段都是獨(dú)立且隔離的二層域,在自己的第三層子網(wǎng)內(nèi)運(yùn)行。各個(gè) VLAN 網(wǎng)段之間的所有流量都會(huì)流經(jīng)該路由器,我們可以在路由器上通過防火墻規(guī)則來管理允許哪些流量在不同網(wǎng)段之間穿越。
隨后可以配置這個(gè)路由器實(shí)例,借助公共互聯(lián)網(wǎng)和 VPN 軟件(如 WireGuard 或 IPSec 等協(xié)議)將其他網(wǎng)段之間的流量橋接在一起。
上述例子展示了一個(gè)包含兩個(gè)地域的部署。每個(gè)地域負(fù)責(zé)通過一個(gè)路由器實(shí)例管理兩個(gè)獨(dú)立 VLAN 之間的連接,隨后,每個(gè)路由器即可使用配置有多個(gè)接口的 Linode 路由器實(shí)例在本地橋接多個(gè)地域。路由器可通過 WireGuard 隧道,借助每個(gè)地域的公共互聯(lián)網(wǎng)橫跨每個(gè)地域。
配置 NAT 出口點(diǎn)
至此,流量已經(jīng)可以不受地域限制在任何 VLAN 之間流動(dòng)。此外,路由器實(shí)例可以充當(dāng)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)出口點(diǎn),為本地 VLAN 提供互聯(lián)網(wǎng)連接(如果部署路由器實(shí)例時(shí)未提供本地互聯(lián)網(wǎng)連接)。這種配置下,本地路由器實(shí)例將被指定為默認(rèn)網(wǎng)關(guān)(例如通常會(huì)在 10.0.0.0/24 網(wǎng)絡(luò)中配置為 10.0.0.1)。我們還可以將路由器實(shí)例當(dāng)作安全套接字外殼(SSH)的管理堡壘機(jī)。
實(shí)現(xiàn)這類 NAT 配置的一種常見方法是使用防火墻規(guī)則來標(biāo)記 WireGuard 流量,并對(duì)檢測(cè)出的未包含該標(biāo)記的所有流量進(jìn)行 IP 掩蔽(IP masquerading)。
例如,路由器可配置為使用如下的 iptables 規(guī)則:
iptables -t nat -A POSTROUTING -o eth0 -m mark ! --mark 42 -j MASQUERADE
我們可以配置 WireGuard 在其配置中使用 FirewallMark(如 “42”),該配置保證了不對(duì) WireGuard 流量進(jìn)行 NAT,但對(duì)所有 VLAN 流量進(jìn)行 NAT。
隨后即可配置云防火墻規(guī)則允許路由節(jié)點(diǎn)之間的 WireGuard 通信(通常為 udp/51820)。
最后,如果需要,我們還可以使用防火墻規(guī)則配置路由器實(shí)例,從而控制或記錄流經(jīng)本地和全局網(wǎng)段的流量。
注意事項(xiàng)
上述例子中的部署可用于在全球范圍內(nèi)跨越多個(gè)地域?qū)崿F(xiàn)共享,并借助路由器實(shí)例控制不同 VLAN 網(wǎng)段之間的流量。在通過隧道將多個(gè) VLAN 網(wǎng)段的流量傳輸至一個(gè)聚合點(diǎn)時(shí),務(wù)必要了解這樣做可能對(duì)性能和帶寬產(chǎn)生的影響。此時(shí)可獲得的性能主要取決于分配給路由器的計(jì)算資源所具備的上行帶寬。
此外在確定要使用的 VPN 協(xié)議時(shí)也需要慎重,這樣才能保證滿足部署的特定要求。所選擇的技術(shù)將對(duì)點(diǎn)對(duì)點(diǎn)帶寬以及通過公共互聯(lián)網(wǎng)所發(fā)出的流量的安全性產(chǎn)生極大影響。例如,WireGuard 會(huì)使用 Cryptography 來保證流量不被攔截,相比諸如 strongSwan 這種 IPSec 實(shí)現(xiàn),可以更好地減少漏洞和暴露,可信度更高。
多云部署
用來跨越多個(gè)地域的這種技術(shù)還可用于跨越多個(gè)云平臺(tái)。例如,我們可以在另一個(gè)云平臺(tái)的網(wǎng)絡(luò)邊界內(nèi)部署一個(gè)路由器實(shí)例,并將其綁定到該實(shí)例本地且由云提供商提供的 VPC 中。我們可以在路由器之間通過 WireGuard 隧道將不同云提供商的網(wǎng)絡(luò)橋接在一起,這種做法對(duì)于專門在私有網(wǎng)絡(luò)中保持隔離的服務(wù)往往能起到很好的效果。
總結(jié)
最終,在設(shè)計(jì)自己的私有網(wǎng)絡(luò)時(shí),有很多工具可供我們使用,這樣做的收益往往超過了所帶來的復(fù)雜性。如果應(yīng)用程序和用戶數(shù)都在快速增長(zhǎng),妥善設(shè)計(jì)的環(huán)境將有助于降低大部分用戶可能遇到的延遲,從而極大改善用戶體驗(yàn)。另外,額外的容錯(cuò)能力也有助于改善服務(wù)的可靠性,并改善服務(wù)的可用性和可訪問性。
這篇文章的內(nèi)容感覺還行吧?有沒有想要立即在 Linode 平臺(tái)上親自嘗試一下?別忘了,現(xiàn)在注冊(cè)可以免費(fèi)獲得價(jià)值 100 美元的使用額度,快點(diǎn)自己動(dòng)手體驗(yàn)本文介紹的功能和服務(wù)吧↓↓↓
出海云服務(wù),選擇Akamai Linode!
歡迎關(guān)注Akamai ,第一時(shí)間了解高可用的MySQL/MariaDB參考架構(gòu),以及豐富的應(yīng)用程序示例。