云上虛擬網(wǎng)絡(luò)VPC規(guī)劃設(shè)計(jì)實(shí)踐
云上虛擬網(wǎng)絡(luò)是指在云計(jì)算環(huán)境中構(gòu)建的虛擬網(wǎng)絡(luò)架構(gòu)。它允許用戶在云服務(wù)提供商的基礎(chǔ)設(shè)施上創(chuàng)建和管理自己的網(wǎng)絡(luò)環(huán)境。這種網(wǎng)絡(luò)環(huán)境模擬了傳統(tǒng)的物理網(wǎng)絡(luò),但完全在軟件層面上實(shí)現(xiàn),具有高度的靈活性和可擴(kuò)展性。以下是云上虛擬網(wǎng)絡(luò)的一些關(guān)鍵特點(diǎn):
1. 虛擬專用網(wǎng)絡(luò)(VPN):用戶可以通過VPN連接到云上虛擬網(wǎng)絡(luò),實(shí)現(xiàn)遠(yuǎn)程訪問和數(shù)據(jù)傳輸。
2. 軟件定義網(wǎng)絡(luò)(SDN):通過軟件定義網(wǎng)絡(luò)技術(shù),用戶可以編程控制網(wǎng)絡(luò)流量和策略,而不需要改變物理硬件。
3. 網(wǎng)絡(luò)隔離:在云環(huán)境中,不同的虛擬網(wǎng)絡(luò)可以相互隔離,確保數(shù)據(jù)安全和網(wǎng)絡(luò)性能。
4. 彈性擴(kuò)展:根據(jù)業(yè)務(wù)需求,用戶可以靈活地增加或減少網(wǎng)絡(luò)資源,如帶寬、IP地址等。
5. 多租戶環(huán)境:云服務(wù)提供商的基礎(chǔ)設(shè)施通常服務(wù)于多個(gè)客戶,虛擬網(wǎng)絡(luò)技術(shù)確保了不同客戶之間的網(wǎng)絡(luò)環(huán)境相互獨(dú)立。
6. 集成服務(wù):云上虛擬網(wǎng)絡(luò)支持自動(dòng)化部署和管理,簡化了網(wǎng)絡(luò)配置和維護(hù)工作。云上虛擬網(wǎng)絡(luò)可以與云服務(wù)提供商的其他服務(wù)(如計(jì)算、存儲(chǔ)、數(shù)據(jù)庫等)集成,提供一站式的解決方案。與傳統(tǒng)的物理網(wǎng)絡(luò)相比,云上虛擬網(wǎng)絡(luò)可以降低成本,因?yàn)樗鼫p少了對物理硬件的依賴。
云上虛擬網(wǎng)絡(luò)是云計(jì)算技術(shù)的一個(gè)重要組成部分,它為企業(yè)提供了一個(gè)靈活、可擴(kuò)展且成本效益高的網(wǎng)絡(luò)解決方案。(1)VPC:專有網(wǎng)絡(luò),云上用戶自定義的私有網(wǎng)絡(luò)。(2)vSwitch:交換機(jī),組成專有網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)設(shè)備,交換機(jī)可以連接不同的云資源,在專有網(wǎng)絡(luò)內(nèi)創(chuàng)建云資源時(shí),必須指定云資源所在連接的交換機(jī)。(3)vRouter:路由器,作為專有網(wǎng)絡(luò)的樞紐,可以連接vpc的各個(gè)交換機(jī),同時(shí)也是連接專有網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的網(wǎng)關(guān)設(shè)備;路由器根據(jù)路由條目轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。(4)RouterTable:路由表,路由器上管理路由條目的列表。(5)RouterEntry:路由條目,定義了通向指定目標(biāo)網(wǎng)段的網(wǎng)絡(luò)流量的下一跳地址。路由條目包括系統(tǒng)路由和自定義路由兩種類型。
1、VPC:用戶私有網(wǎng)絡(luò)
VPC(Virtual Private Cloud)的正規(guī)叫法是“虛擬私有云”,但更多被人們稱為“虛擬私有網(wǎng)絡(luò)”或“虛擬網(wǎng)絡(luò)”。VPC給了用戶一個(gè)完整獨(dú)占的網(wǎng)絡(luò)(Network),然后在這個(gè)網(wǎng)絡(luò)上,用戶創(chuàng)建子網(wǎng)、VM、存儲(chǔ)等虛擬資源,才形成一個(gè)私有的1云。不同的VPC在網(wǎng)絡(luò)上是完全隔離的,他們可以使用同樣的IP段,而不用擔(dān)心IP沖突的問題。
一朵云里可以有若干個(gè)Region,不同Region的物理資源(計(jì)算、存儲(chǔ)、網(wǎng)絡(luò))是完全獨(dú)立和不共享的。一個(gè)Region里面可以創(chuàng)建多個(gè)VPC。一個(gè)VPC內(nèi)又可創(chuàng)建多個(gè)子網(wǎng)(Subnet)。一個(gè)子網(wǎng)內(nèi),可以有多個(gè)虛機(jī)(VM)。
在一些云平臺(tái)里,如果你不創(chuàng)建VPC而是直接申請?zhí)摍C(jī),云平臺(tái)會(huì)自動(dòng)給你創(chuàng)建VPC及子網(wǎng)。
2、子網(wǎng):虛機(jī)的棲息地
子網(wǎng)(Subnet)獨(dú)占VPC中的一個(gè)IP地址段,和同一VPC中其他子網(wǎng)不共享。
虛機(jī)(VM)總是位于某個(gè)子網(wǎng),并從中獲得IP地址。一個(gè)子網(wǎng)內(nèi)的多個(gè)VM可以分布在多臺(tái)宿主機(jī)上。創(chuàng)建子網(wǎng)很簡單,選擇所在的“可用區(qū)
”,定義IP段(即CIDR)和網(wǎng)關(guān)地址就可以了。
創(chuàng)建子網(wǎng)
這里面又出現(xiàn)一個(gè)新概念:可用區(qū)
,這就是人們常說的AZ
(Available Zone)。
可以簡單將AZ理解為機(jī)房,即一個(gè)Region有多個(gè)機(jī)房,每個(gè)機(jī)房就是一個(gè)AZ。不同AZ使用不同的電力和制冷,使用獨(dú)立的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源(但網(wǎng)絡(luò)是互通的)。這樣,即便一個(gè)AZ不可用了,另一個(gè)還是可用的。
一個(gè)子網(wǎng)內(nèi)的不同虛機(jī),可以在一個(gè)AZ中,也可以在不同的AZ中。Region、AZ、VPC、子網(wǎng)的簡單邏輯關(guān)系。
Region、AZ、VPC、Subnet的關(guān)系
子網(wǎng)內(nèi)的VM缺省是可以互相通信的,原因是它們都接在虛擬交換機(jī)
(vSwitch
)上。VPC、子網(wǎng)、vSwitch和VM的簡單邏輯關(guān)系示意如下:
VPC、子網(wǎng)、vSwitch及VM
vSwitch是由OVS
(Open vSwitch)技術(shù)實(shí)現(xiàn)的,OVS是分布式技術(shù),分布在多臺(tái)宿主機(jī)上。
OVS提供分布式虛擬交換機(jī)功能
子網(wǎng)內(nèi)部的通信就是二層通信,如果要和子網(wǎng)外部通信,就需要虛擬路由器
(vRouter
)了。
3、虛擬路由器:子網(wǎng)和外部通信的途徑
在同一子網(wǎng)內(nèi)的VM,都是在二層通信的。當(dāng)子網(wǎng)內(nèi)VM需要訪問其他子網(wǎng)(同一VPC或是不同VPC)的VM,或者訪問外部網(wǎng)絡(luò),就需要三層互通。創(chuàng)建子網(wǎng)時(shí)要填的那個(gè)“網(wǎng)關(guān)地址”吧,“網(wǎng)關(guān)地址”就是vRouter的一個(gè)接口地址。
創(chuàng)建VPC時(shí),云平臺(tái)會(huì)自動(dòng)給你一個(gè)vRouter
,不用專門去創(chuàng)建這個(gè)。
和vSwitch一樣,vRouter也是通過虛機(jī)實(shí)現(xiàn)的;而且和OVS一樣,vRouter也有分布式解決方案,叫DVR(Distributed Virtual Router)。
VPC由于是虛擬私有網(wǎng),所以VPC之間天生就是互相隔離的,想讓兩個(gè)VPC互通,需要在它們之間建立“對等連接
”,然后就能互通了。當(dāng)然,前提是兩個(gè)VPC的地址空間沒有重疊。
通常情況下,“
對等連接
”不能跨Region,如果一個(gè)VPC要連接不同Region的另一個(gè)VPC,要在云平臺(tái)中配置“云連接
”來實(shí)現(xiàn)。
比如在某平臺(tái),建立“對等連接
”,選擇要互通的VPC即可;
虛擬路由器示意
4、網(wǎng)絡(luò)ACL和安全組:云原生的安全控制
云網(wǎng)絡(luò)內(nèi)置了兩種比較簡單靈活的安全控制方法,一種是針對子網(wǎng)的網(wǎng)絡(luò)ACL
,一種是針對虛機(jī)的安全組
。兩者的控制位置和方法略有不同,可以組合使用。
比如可以對某子網(wǎng)建立如下網(wǎng)絡(luò)ACL
規(guī)則,拒絕所有對TCP 445端口的入站訪問,沒有任何流量可以訪問該子網(wǎng)內(nèi)任一VM的TCP 445端口。從邏輯拓?fù)渖现v,網(wǎng)絡(luò)ACL
位于路由器和子網(wǎng)之間。
網(wǎng)絡(luò)ACL的邏輯示意圖
另一種隔離機(jī)制是安全組
。用戶可以建多個(gè)安全組,每個(gè)VM可以選擇劃入多個(gè)安全組,然后該VM就受這些安全組策略的保護(hù)了。
將某VM實(shí)例綁定到某安全組上
安全組
(Security Groups
)可以指定具體的入向和出向流量規(guī)則,如下圖所示。
新建安全組規(guī)則
一個(gè)安全組里的VM,可以不在一個(gè)子網(wǎng)里,也可以不在一個(gè)VPC中,如下圖所示。
安全組邏輯示意
簡單地說,網(wǎng)絡(luò)ACL是針對子網(wǎng)的,安全組是針對虛機(jī)的。安全組以前多使用Linux bridge中的iptables實(shí)現(xiàn),現(xiàn)在多使用OVS的流表技術(shù)實(shí)現(xiàn)。
在有的云平臺(tái)中,將網(wǎng)絡(luò)ACL和安全組合二為一提供給用戶,不再區(qū)分這兩種概念。
5、微隔離:更精細(xì)更通用的隔離
微隔離
(Micro-Segmentation)是更細(xì)粒度的網(wǎng)絡(luò)隔離技術(shù),能夠?qū)ξ锢頇C(jī)、虛擬機(jī)、容器之間流量進(jìn)行隔離。它的原理是安裝agent,然后通過主機(jī)防火墻(如iptables)進(jìn)行控制。對于物理機(jī)和虛擬機(jī),這很容易做到,對于容器,agent以k8s網(wǎng)絡(luò)插件的形式出現(xiàn),實(shí)現(xiàn)對各容器的網(wǎng)絡(luò)轉(zhuǎn)發(fā)和控制。
微隔離主要分為策略控制中心和策略執(zhí)行單元,前者是大腦,下發(fā)策略,后者執(zhí)行策略。前者實(shí)現(xiàn)可視化和集中管理能力,按角色、業(yè)務(wù)功能等多維度的標(biāo)簽對需要隔離對象進(jìn)行分組,后者執(zhí)行流量監(jiān)測和隔離。微隔離并不是云廠商提供的服務(wù),通常是第三方實(shí)現(xiàn)的。
6、vFW和vLB:虛擬防火墻和虛擬負(fù)載均衡
網(wǎng)絡(luò)ACL是針對子網(wǎng)的保護(hù);vFW是針對VPC的保護(hù),保護(hù)的層面不一樣。
而且,專業(yè)性不同。網(wǎng)絡(luò)ACL是無狀態(tài)的,不能跟蹤網(wǎng)絡(luò)協(xié)議的狀態(tài),僅僅用于放行或攔截IP/端口,不能做到比較高級(jí)和專業(yè)的應(yīng)用層防護(hù)。而vFW可以做到和傳統(tǒng)防火墻一樣強(qiáng)大的功能。
vFW通常是用虛機(jī)實(shí)現(xiàn)的,出于性能考慮,可以用硬件防火墻替代vFW,將硬件下掛在VxLAN網(wǎng)關(guān)下使用。
虛擬負(fù)載均衡
(vLB
)也是用虛機(jī)實(shí)現(xiàn)的,提供第四層負(fù)載均衡,通常底層使用LVS(Linux Virtual Server)技術(shù)。此外,云原生中還有第七層的LB,通常是API網(wǎng)關(guān)干這事(比如通過Nginx)。
下圖是在云內(nèi)創(chuàng)建vLB的圖示:
vLB的創(chuàng)建示例
增加vFW和vLB后,云網(wǎng)絡(luò)的示意圖為:
增加vFW和vLB后的VPC邏輯示意
7、網(wǎng)關(guān):通往外部世界
網(wǎng)關(guān)
(Gateway
)可以實(shí)現(xiàn)子網(wǎng)和外部網(wǎng)絡(luò)的連接。網(wǎng)關(guān)有多種,比如NAT網(wǎng)關(guān)、互聯(lián)網(wǎng)網(wǎng)關(guān)、專線網(wǎng)關(guān)、VPN網(wǎng)關(guān)等。
NAT網(wǎng)關(guān)
(NGW
) 用于沒有公共IP的VM訪問互聯(lián)網(wǎng),互聯(lián)網(wǎng)網(wǎng)關(guān)
(IGW
) 用于有公共 IP 的VM訪問互聯(lián)網(wǎng)。
以NAT網(wǎng)關(guān)為例,用戶在控制臺(tái)創(chuàng)建“NAT網(wǎng)關(guān)”并給網(wǎng)關(guān)綁定一個(gè)EIP
(彈性公網(wǎng)IP
),然后,做一下NAT設(shè)置,就可以讓子網(wǎng)內(nèi)的VM連接互聯(lián)網(wǎng)了。
NAT網(wǎng)關(guān)實(shí)例
8、云連接:把云網(wǎng)絡(luò)和企業(yè)DC連起來
云連接
(Cloud Connect)不僅提供跨Region的VPC連接,更提供云上和云下的連接,比如公有云和企業(yè)DC的連接。
常見的云連接有兩種形式:VPN
、云專線
(Direct Connect);前者走互聯(lián)網(wǎng),后者走物理專線;前者通過VPN網(wǎng)關(guān),后者通過專線網(wǎng)關(guān)。企業(yè)如果有私有云,可以通過云連接,讓公有云和私有云打通形成混合云。
下圖是本文所介紹網(wǎng)絡(luò)組件的集合圖示。
含云連接的云網(wǎng)絡(luò)示意圖
其中,Region1和Region2通過云專線建立連接;Region1通過云專線,Region2通過VPN,和企業(yè)的DC建立連接。
在進(jìn)行VPC(Virtual Private Cloud)的規(guī)劃設(shè)計(jì)時(shí),最佳實(shí)踐的建議如下:
1. 確定VPC的數(shù)量:如果沒有多地域部署系統(tǒng)的要求,并且各個(gè)系統(tǒng)之間不需要通過VPC進(jìn)行隔離,推薦使用一個(gè)VPC。如果需要多地域部署或者需要對不同業(yè)務(wù)系統(tǒng)進(jìn)行嚴(yán)格隔離(例如生產(chǎn)環(huán)境和測試環(huán)境),則需要使用多個(gè)VPC。
2. 虛擬交換機(jī)(VSwitch)的使用:即使只使用一個(gè)VPC,也建議至少使用兩個(gè)虛擬交換機(jī),并且這兩個(gè)虛擬交換機(jī)應(yīng)該分布在不同的可用區(qū),以實(shí)現(xiàn)跨可用區(qū)的容災(zāi)。
3. 網(wǎng)段的選擇:在選擇網(wǎng)段時(shí),需要考慮是否需要與線下IDC互通或者是否需要多個(gè)VPC。阿里云默認(rèn)提供了三個(gè)標(biāo)準(zhǔn)私網(wǎng)網(wǎng)段供用戶選擇,建議使用這些標(biāo)準(zhǔn)網(wǎng)段的子網(wǎng)作為VPC的網(wǎng)段,掩碼建議不超過/16。如果VPC和線下IDC需要互通,需要規(guī)劃不同的網(wǎng)段以避免沖突。
4. 多VPC和IDC互通的網(wǎng)段規(guī)劃:如果云上存在多個(gè)VPC并且需要和云下IDC互通,需要規(guī)劃不同的網(wǎng)段以確保地址不沖突。盡量做到不同VPC的網(wǎng)段不同,如果做不到,則保證不同VPC的虛擬交換機(jī)網(wǎng)段不同,如果還做不到,則保證要通信的虛擬交換機(jī)網(wǎng)段不同。
5. 安全性最佳實(shí)踐:在VPC中添加子網(wǎng)時(shí),應(yīng)在多個(gè)可用區(qū)中創(chuàng)建子網(wǎng)以提供高可用性。使用安全組和網(wǎng)絡(luò)ACL來控制流量。利用IAM來管理對VPC中資源的訪問。使用VPC流日志監(jiān)控IP流量,并使用網(wǎng)絡(luò)訪問分析器和AWS Network Firewall來保護(hù)VPC。
6. 性能優(yōu)化:在設(shè)計(jì)VPC時(shí),應(yīng)考慮到網(wǎng)絡(luò)性能的需求,合理規(guī)劃網(wǎng)段和子網(wǎng),以確保網(wǎng)絡(luò)通信的效率和低延遲。
7. 管理和監(jiān)控:定期檢查VPC的配置和性能,使用云服務(wù)商提供的工具進(jìn)行監(jiān)控和日志記錄,以便及時(shí)發(fā)現(xiàn)和解決網(wǎng)絡(luò)問題。
8. 遵守云服務(wù)商的最佳實(shí)踐:不同的云服務(wù)商可能會(huì)有自己的最佳實(shí)踐指南,應(yīng)根據(jù)所使用的云服務(wù)提供商的指南進(jìn)行VPC的規(guī)劃和設(shè)計(jì)。
通過遵循這些最佳實(shí)踐,可以確保VPC的安全性、高可用性和性能,同時(shí)也能夠滿足業(yè)務(wù)需求和未來的擴(kuò)展性。
參考鏈接:
1. 公有云相關(guān)概念——region和AZ、VPC、安全組、公有云網(wǎng)絡(luò)架構(gòu) https://www.cnblogs.com/yunjisuanchengzhanglu/p/16164376.html
2. 一文搞懂AWS Region, VPC, VPC endpoint,AZ, Subnet 基礎(chǔ)篇上 https://zhuanlan.zhihu.com/p/360701963
3. 淺談VPC二三,秒懂秒透 https://www.sdnlab.com/20510.html
4. 云產(chǎn)品相關(guān)網(wǎng)絡(luò)概念學(xué)習(xí)Regison/AZ/VPC https://blog.csdn.net/qq_24433609/article/details/122846124
5. 這些基本概念都不懂,還談什么你會(huì)VXLAN?https://www.sohu.com/a/561265642_657867
6. 數(shù)據(jù)中心——Vxlan基本概念2 https://blog.csdn.net/m0_49864110/article/details/125265373
7. 我非要捅穿這 Neutron https://www.cnblogs.com/jmilkfan-fanguiju/p/10589719.html
8. OpenStack Neutron實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化 https://www.jianshu.com/p/7dc785c6c826
9. Neutron的VLAN實(shí)現(xiàn)模型 http://www.javaxks.com/?p=53958
10. OpenStack 安全組原理詳解 https://iswbm.com/168.html
11. Linux VXLAN http://www.senlt.cn/article/121754251.html
12. OpenStack入門篇之VXLAN原理 https://www.cnblogs.com/linuxk/p/9455486.html
13. 深度好文:vxlan介紹 https://baijiahao.baidu.com/s?id=1709356306036351889&wfr=spider&for=pc
14. OpenStack OVS實(shí)現(xiàn)安全組(五) https://blog.csdn.net/qq_20817327/article/details/107032223
15. 數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)淺談(三)https://zhuanlan.zhihu.com/p/30119950?utm_source=wechat_session&utm_id=0
16. 網(wǎng)絡(luò)ACL簡介 https://support.huaweicloud.com/usermanual-vpc/acl_0001.html
17. 一文看懂Amazon EKS中的網(wǎng)絡(luò)規(guī)劃 https://aws.amazon.com/cn/blogs/china/understand-the-network-planni