
當前云計算的建設已經(jīng)如火如荼,云計算帶來(lái)的好處也顯而易見(jiàn),各行各業(yè)都在積極上云。對于IaaS這層來(lái)說(shuō),主要由計算、存儲、網(wǎng)絡(luò )組成。如果說(shuō)計算像人體的靈魂,那存儲就是大腦,保存了認知的所有信息;網(wǎng)絡(luò )是血管,連通了身體每一個(gè)部分。計算是最核心的,存儲是最重要的,而網(wǎng)絡(luò )是最復雜的。
在ZStack云網(wǎng)絡(luò )中,網(wǎng)絡(luò )的部署模式可以分為扁平網(wǎng)絡(luò )和VPC網(wǎng)絡(luò ),而在VPC網(wǎng)絡(luò )中,又可以通過(guò)EIP或者OSPF動(dòng)態(tài)路由兩種模式來(lái)讓外部網(wǎng)絡(luò )訪(fǎng)問(wèn)VPC內部虛擬機,本文來(lái)分析一下這幾種模式的特點(diǎn)和適用場(chǎng)景。
1. OSPF簡(jiǎn)介
在看各種網(wǎng)絡(luò )模型的適用場(chǎng)景之前,咱們先來(lái)了解下動(dòng)態(tài)路由和OSPF的相關(guān)概念
路由是指在路由器上指導數據包流量轉發(fā)的路徑信息,讓路由器知道該從哪個(gè)接口將數據包發(fā)出去。路由器就好比交叉路口,而路由就好比路牌,數據包就好比轎車(chē),路牌告訴司機,到某某路該從哪個(gè)路口走,這個(gè)和路由器轉發(fā)數據包非常相像。那么問(wèn)題又來(lái)了,路牌是政府建造的,路由是怎么生成的呢?
路由可以分為3類(lèi):
- 直連路由:路由器接口所屬網(wǎng)段的信息,自動(dòng)生成
- 靜態(tài)路由:管理員手工配置的路由信息,適用于小規模環(huán)境
- 動(dòng)態(tài)路由:通過(guò)動(dòng)態(tài)路由鄰居相互之間交互而生成的路由信息,適用于大規模復雜環(huán)境
靜態(tài)路由因為所有的路由條目都是手工配置,那么在規模越來(lái)越大的情況下,配置的復雜度會(huì )成倍上升,并且無(wú)法自適應網(wǎng)絡(luò )拓撲的更改。一旦某臺路由器宕機,會(huì )使得和這臺路由器相關(guān)的所有網(wǎng)段都無(wú)法通信,如果要更改拓撲,修改配置也會(huì )變得非常麻煩;而動(dòng)態(tài)路由的出現很好地解決了靜態(tài)路由的問(wèn)題,只需要進(jìn)行協(xié)議初始配置即可,路由條目都是動(dòng)態(tài)生成,也能夠自適應拓撲的改變,自動(dòng)改變數據的轉發(fā)路徑。
OSPF就屬于動(dòng)態(tài)路由中應用最廣泛的一種。OSPF是一種基于鏈路狀態(tài)的路由協(xié)議,使用最短路徑優(yōu)先算法來(lái)計算出路由。OSPF的工作過(guò)程如下所示:

在OSPF啟動(dòng)以后,會(huì )周期性的發(fā)送Hello包,當收到鄰居發(fā)來(lái)的Hello包以后,狀態(tài)變更為2-way;然后,在整個(gè)網(wǎng)段上所有的OSPF路由器開(kāi)始進(jìn)行DR/BDR的選舉,也就是網(wǎng)段的管理者/備份管理者;后續所有的路由器都和DR/BDR建立鄰接關(guān)系,將本地連接的所有網(wǎng)段信息傳遞給DR/BDR,再由DR將計算出的整個(gè)網(wǎng)絡(luò )的拓撲信息發(fā)送給所有路由器;最后,所有路由器以自己為根,根據算法計算出到各網(wǎng)段的最優(yōu)路徑并寫(xiě)入路由表。
2. 扁平網(wǎng)絡(luò )
2.1 拓撲架構
扁平網(wǎng)絡(luò )的架構如下所示:

扁平網(wǎng)絡(luò )其實(shí)就是個(gè)純二層網(wǎng)絡(luò ),云平臺只提供二層轉發(fā)的功能,通過(guò)DHCP給虛擬機自動(dòng)分配IP。云平臺會(huì )創(chuàng )建一個(gè)虛擬網(wǎng)橋,分別連接虛擬機和物理網(wǎng)卡,虛擬機數據包通過(guò)物理網(wǎng)卡轉發(fā)到物理交換機上,由物理交換機提供網(wǎng)關(guān)以及三層轉發(fā)。
2.2 適用場(chǎng)景
來(lái)看下扁平網(wǎng)絡(luò )的特點(diǎn):
扁平網(wǎng)絡(luò )最大的特色就是簡(jiǎn)單,配置完二三層網(wǎng)絡(luò )即可,數據流量也非常簡(jiǎn)單,物理網(wǎng)卡只是做橋接;但是相應的,扁平網(wǎng)絡(luò )支持的網(wǎng)絡(luò )服務(wù)就非常少,比如負載均衡、IPSec、端口轉發(fā)等功能,扁平網(wǎng)絡(luò )都是不支持的,而這些在企業(yè)網(wǎng)絡(luò )中使用比較普遍。因此,扁平網(wǎng)絡(luò )適用于對網(wǎng)絡(luò )要求簡(jiǎn)單,只需要互通性的場(chǎng)景。
3. VPC網(wǎng)絡(luò )-EIP模式
3.1 拓撲架構
VPC網(wǎng)絡(luò )EIP模式的架構如下所示:

在VPC網(wǎng)絡(luò )中,云平臺提供vrouter功能,vrouter一端是公有網(wǎng)絡(luò ),用于和物理網(wǎng)絡(luò )相連接,這邊的公有網(wǎng)絡(luò )只是一個(gè)概念,表示公共的網(wǎng)絡(luò ),并不是一定需要用真正的公網(wǎng)IP;另一端連接租戶(hù)的VPC網(wǎng)絡(luò ),作為VPC網(wǎng)絡(luò )的網(wǎng)關(guān),并可以提供EIP、LB、端口轉發(fā)等網(wǎng)絡(luò )服務(wù),提供多租戶(hù)隔離,支持VXLAN,可以進(jìn)行更好的網(wǎng)絡(luò )擴展。
不同的租戶(hù)之間的IP段是可以重復的,VPC網(wǎng)絡(luò )訪(fǎng)問(wèn)外部的時(shí)候,在VPC路由器的公網(wǎng)接口會(huì )進(jìn)行SNAT,轉換為公網(wǎng)IP;而外部訪(fǎng)問(wèn)VPC網(wǎng)絡(luò )的時(shí)候,通過(guò)訪(fǎng)問(wèn)虛擬機綁定的EIP,在VPC路由器的公網(wǎng)接口會(huì )進(jìn)行DNAT,轉換為虛擬機的真實(shí)IP,這樣就可以進(jìn)行內外互通。
3.2 適用場(chǎng)景
來(lái)看下EIP模式的特點(diǎn):
VPC網(wǎng)絡(luò )提供的網(wǎng)絡(luò )服務(wù)非常豐富,如EIP、IPSec、端口轉發(fā)、分布式路由、負載均衡等,可以應對各種網(wǎng)絡(luò )的需求,不同租戶(hù)之間相互隔離,IP段都是自定義,而且不需要擔心沖突的問(wèn)題。EIP模式和公有云網(wǎng)絡(luò )是一致的,每個(gè)租戶(hù)都在VPC內部自定義IP段,對外訪(fǎng)問(wèn)通過(guò)SNAT,外部訪(fǎng)問(wèn)虛擬機則通過(guò)EIP。
EIP模式適用于公有云、托管云以及一些特殊場(chǎng)景,比如不允許暴露真實(shí)IP、公司被收購IT系統需要合并,當然,私有云場(chǎng)景也是適合的。
4. VPC網(wǎng)絡(luò )-OSPF模式
在上節咱們看到了EIP的特點(diǎn),事實(shí)上大多數的私有云網(wǎng)絡(luò )都是EIP模式,但是咱們來(lái)仔細分析一下,EIP模式的虛擬機和外部通信,其實(shí)是要經(jīng)過(guò)SNAT和DNAT的,這樣就涉及到IP地址的轉換,會(huì )引起如下的幾個(gè)問(wèn)題:
- 性能損耗:IP的轉換是需要依靠NAT規則一條條來(lái)匹配的,一旦規模變得比較大,規則數量就會(huì )上升,NAT的效率就低了,這樣轉發(fā)性能就會(huì )有影響
- IP管理不方便:私有云內部一般都是私網(wǎng)IP,使用EIP模式,公有網(wǎng)絡(luò )和VPC網(wǎng)絡(luò )都是私網(wǎng)IP,在大多數的場(chǎng)景下,其實(shí)根本沒(méi)必要進(jìn)行轉換,直接將真實(shí)IP暴露給云外部即可,網(wǎng)工還需要來(lái)維護NAT的對應關(guān)系,增加了維護的工作量,同時(shí)也使得架構更加復雜
- EIP配置復雜:如果給每個(gè)虛擬機都分配一個(gè)EIP,那每個(gè)虛擬機都需要額外配置EIP,當虛擬機數量龐大的時(shí)候,配置會(huì )耗費很長(cháng)時(shí)間;如果部分虛擬機不用EIP而使用端口轉發(fā)的話(huà),端口轉發(fā)的配置和管理也比較復雜。
ZStack的解決方案是在VPC路由器上運行OSPF協(xié)議,和物理交換機對接,并關(guān)閉SNAT。
4.1 OSPF拓撲架構
OSPF方案的總體架構如下所示:

OSPF是VPC路由器的一個(gè)功能模塊,可以和物理交換機的OSPF進(jìn)行無(wú)縫對接,使用時(shí)需要先關(guān)閉SNAT的功能,將VPC網(wǎng)絡(luò )的IP宣告給鄰居。通過(guò)OSPF,物理網(wǎng)絡(luò )可以學(xué)習到VPC網(wǎng)絡(luò )的真實(shí)IP并直接訪(fǎng)問(wèn),不需要再做DNAT轉換,相對于傳統VPC網(wǎng)絡(luò )來(lái)說(shuō)架構更簡(jiǎn)單,更容易和物理網(wǎng)絡(luò )進(jìn)行聯(lián)動(dòng)。使用OSPF,VPC路由器就是物理網(wǎng)絡(luò )在虛擬環(huán)境中的一個(gè)延伸,100%還原物理路由器的NFV方案,并且VPC路由器依然可以支持負載均衡、IPSec、端口轉發(fā)等功能。
4.2 適用場(chǎng)景
OSPF模式本質(zhì)上是把物理交換機的部分功能以NFV的形式來(lái)實(shí)現,和傳統物理網(wǎng)絡(luò )相比較,除了接入層是由物理設備變更為虛擬設備,其他都沒(méi)有變化,整體架構和傳統網(wǎng)絡(luò )是一樣的,因此,可以適用于絕大部分的私有云環(huán)境,并且沒(méi)有NAT的性能損耗,網(wǎng)絡(luò )架構更加簡(jiǎn)單,和EIP模式相比較,OSPF模式更適合私有云場(chǎng)景。
可能有人會(huì )問(wèn)多租戶(hù)場(chǎng)景怎么辦?IP無(wú)法重復的話(huà)是否會(huì )不夠用?多租戶(hù)隔離怎么辦?其實(shí)這個(gè)完全沒(méi)必要擔心,10.0.0.0/8這個(gè)段就是專(zhuān)門(mén)給私有網(wǎng)絡(luò )分配的,足足1000多萬(wàn)個(gè)IP,完全滿(mǎn)足99%以上的私有云環(huán)境,而且企業(yè)內部的IP都是網(wǎng)工統一分配管理的,如果讓使用者自定義網(wǎng)絡(luò ),反而會(huì )將整體架構變復雜,增加網(wǎng)絡(luò )運維的工作量;多租戶(hù)隔離其實(shí)并不是靠NAT來(lái)做的,多租戶(hù)隔離一是路由沒(méi)有發(fā)布,二是依靠虛擬防火墻來(lái)做訪(fǎng)問(wèn)控制,而NAT的作用是允許內部IP重復。
公有云能否不用EIP呢?這個(gè)其實(shí)是不行的,因為公有云是所有不同公司/個(gè)人的用戶(hù)共享一個(gè)平臺,IP的規劃必然會(huì )有重復,所以需要用NAT來(lái)做防IP沖突,用EIP來(lái)提供外部訪(fǎng)問(wèn)。而私有云只是一個(gè)公司內部的環(huán)境,IP規劃必然不能有沖突,所以絕大部分的私有云場(chǎng)景不需要NAT和EIP,使用動(dòng)態(tài)路由是更適合的方式。
總結
綜上所述,扁平網(wǎng)絡(luò )、VPC網(wǎng)絡(luò )EIP模式、OSPF模式都有各自的適用場(chǎng)景,對于網(wǎng)絡(luò )需求簡(jiǎn)單、只需要連通性的場(chǎng)景,適合使用扁平網(wǎng)絡(luò );對于絕大部分的私有云場(chǎng)景,更適合使用OSPF模式,對接物理交換機,將物理網(wǎng)絡(luò )延伸到虛擬環(huán)境;對于公有云、托管云以及一些特殊場(chǎng)景,適合使用EIP模式。