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