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

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

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

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

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