ZStack實踐匯|更適合私有云的網絡部署模式-動態路由

作者:ZStack 邵悠鋒

前言

當前雲計算的建設已經如火如荼,雲計算帶來的好處也顯而易見,各行各業都在積極上雲。對於IaaS這層來說,主要由計算、存儲、網絡組成。如果說計算像人體的靈魂,那存儲就是大腦,保存了認知的所有信息;網絡是血管,連通了身體每一個部分。計算是最核心的,存儲是最重要的,而網絡是最複雜的。

在ZStack雲網絡中,網絡的部署模式可以分爲扁平網絡和VPC網絡,而在VPC網絡中,又可以通過EIP或者OSPF動態路由兩種模式來讓外部網絡訪問VPC內部虛擬機,本文來分析一下這幾種模式的特點和適用場景。

1. OSPF簡介

在看各種網絡模型的適用場景之前,咱們先來了解下動態路由和OSPF的相關概念

路由是指在路由器上指導數據包流量轉發的路徑信息,讓路由器知道該從哪個接口將數據包發出去。路由器就好比交叉路口,而路由就好比路牌,數據包就好比轎車,路牌告訴司機,到某某路該從哪個路口走,這個和路由器轉發數據包非常相像。那麼問題又來了,路牌是政府建造的,路由是怎麼生成的呢?

路由可以分爲3類:
直連路由:路由器接口所屬網段的信息,自動生成

靜態路由:管理員手工配置的路由信息,適用於小規模環境

動態路由:通過動態路由鄰居相互之間交互而生成的路由信息,適用於大規模複雜環境

靜態路由因爲所有的路由條目都是手工配置,那麼在規模越來越大的情況下,配置的複雜度會成倍上升,並且無法自適應網絡拓撲的更改。一旦某臺路由器宕機,會使得和這臺路由器相關的所有網段都無法通信,如果要更改拓撲,修改配置也會變得非常麻煩;而動態路由的出現很好地解決了靜態路由的問題,只需要進行協議初始配置即可,路由條目都是動態生成,也能夠自適應拓撲的改變,自動改變數據的轉發路徑。

OSPF就屬於動態路由中應用最廣泛的一種。OSPF是一種基於鏈路狀態的路由協議,使用最短路徑優先算法來計算出路由。OSPF的工作過程如下所示:

在這裏插入圖片描述

在OSPF啓動以後,會週期性的發送Hello包,當收到鄰居發來的Hello包以後,狀態變更爲2-way;然後,在整個網段上所有的OSPF路由器開始進行DR/BDR的選舉,也就是網段的管理者/備份管理者;後續所有的路由器都和DR/BDR建立鄰接關係,將本地連接的所有網段信息傳遞給DR/BDR,再由DR將計算出的整個網絡的拓撲信息發送給所有路由器;最後,所有路由器以自己爲根,根據算法計算出到各網段的最優路徑並寫入路由表。

2. 扁平網絡

2.1 拓撲架構
扁平網絡的架構如下所示:
在這裏插入圖片描述
扁平網絡其實就是個純二層網絡,雲平臺只提供二層轉發的功能,通過DHCP給虛擬機自動分配IP。雲平臺會創建一個虛擬網橋,分別連接虛擬機和物理網卡,虛擬機數據包通過物理網卡轉發到物理交換機上,由物理交換機提供網關以及三層轉發。

2.2 適用場景
來看下扁平網絡的特點:
扁平網絡最大的特色就是簡單,配置完二三層網絡即可,數據流量也非常簡單,物理網卡只是做橋接;但是相應的,扁平網絡支持的網絡服務就非常少,比如負載均衡、IPSec、端口轉發等功能,扁平網絡都是不支持的,而這些在企業網絡中使用比較普遍。因此,扁平網絡適用於對網絡要求簡單,只需要互通性的場景。

3. VPC網絡-EIP模式

3.1 拓撲架構

VPC網絡EIP模式的架構如下所示:

在這裏插入圖片描述
在VPC網絡中,雲平臺提供vrouter功能,vrouter一端是公有網絡,用於和物理網絡相連接,這邊的公有網絡只是一個概念,表示公共的網絡,並不是一定需要用真正的公網IP;另一端連接租戶的VPC網絡,作爲VPC網絡的網關,並可以提供EIP、LB、端口轉發等網絡服務,提供多租戶隔離,支持VXLAN,可以進行更好的網絡擴展。

不同的租戶之間的IP段是可以重複的,VPC網絡訪問外部的時候,在VPC路由器的公網接口會進行SNAT,轉換爲公網IP;而外部訪問VPC網絡的時候,通過訪問虛擬機綁定的EIP,在VPC路由器的公網接口會進行DNAT,轉換爲虛擬機的真實IP,這樣就可以進行內外互通。

3.2 適用場景

來看下EIP模式的特點:
VPC網絡提供的網絡服務非常豐富,如EIP、IPSec、端口轉發、分佈式路由、負載均衡等,可以應對各種網絡的需求,不同租戶之間相互隔離,IP段都是自定義,而且不需要擔心衝突的問題。EIP模式和公有云網絡是一致的,每個租戶都在VPC內部自定義IP段,對外訪問通過SNAT,外部訪問虛擬機則通過EIP。
EIP模式適用於公有云、託管雲以及一些特殊場景,比如不允許暴露真實IP、公司被收購IT系統需要合併,當然,私有云場景也是適合的。

4. VPC網絡-OSPF模式

在上節咱們看到了EIP的特點,事實上大多數的私有云網絡都是EIP模式,但是咱們來仔細分析一下,EIP模式的虛擬機和外部通信,其實是要經過SNAT和DNAT的,這樣就涉及到IP地址的轉換,會引起如下的幾個問題:

1、性能損耗:IP的轉換是需要依靠NAT規則一條條來匹配的,一旦規模變得比較大,規則數量就會上升,NAT的效率就低了,這樣轉發性能就會有影響

2、IP管理不方便:私有云內部一般都是私網IP,使用EIP模式,公有網絡和VPC網絡都是私網IP,在大多數的場景下,其實根本沒必要進行轉換,直接將真實IP暴露給雲外部即可,網工還需要來維護NAT的對應關係,增加了維護的工作量,同時也使得架構更加複雜

3、EIP配置複雜:如果給每個虛擬機都分配一個EIP,那每個虛擬機都需要額外配置EIP,當虛擬機數量龐大的時候,配置會耗費很長時間;如果部分虛擬機不用EIP而使用端口轉發的話,端口轉發的配置和管理也比較複雜。

那麼,是否有一種方法可以解決以上的問題呢?

ZStack的解決方案是在VPC路由器上運行OSPF協議,和物理交換機對接,並關閉SNAT。

4.1 OSPF拓撲架構

OSPF方案的總體架構如下所示:
在這裏插入圖片描述
OSPF是VPC路由器的一個功能模塊,可以和物理交換機的OSPF進行無縫對接,使用時需要先關閉SNAT的功能,將VPC網絡的IP宣告給鄰居。通過OSPF,物理網絡可以學習到VPC網絡的真實IP並直接訪問,不需要再做DNAT轉換,相對於傳統VPC網絡來說架構更簡單,更容易和物理網絡進行聯動。使用OSPF,VPC路由器就是物理網絡在虛擬環境中的一個延伸,100%還原物理路由器的NFV方案,並且VPC路由器依然可以支持負載均衡、IPSec、端口轉發等功能。

4.2 適用場景

OSPF模式本質上是把物理交換機的部分功能以NFV的形式來實現,和傳統物理網絡相比較,除了接入層是由物理設備變更爲虛擬設備,其他都沒有變化,整體架構和傳統網絡是一樣的,因此,可以適用於絕大部分的私有云環境,並且沒有NAT的性能損耗,網絡架構更加簡單,和EIP模式相比較,OSPF模式更適合私有云場景。

可能有人會問多租戶場景怎麼辦?IP無法重複的話是否會不夠用?多租戶隔離怎麼辦?其實這個完全沒必要擔心,10.0.0.0/8這個段就是專門給私有網絡分配的,足足1000多萬個IP,完全滿足99%以上的私有云環境,而且企業內部的IP都是網工統一分配管理的,如果讓使用者自定義網絡,反而會將整體架構變複雜,增加網絡運維的工作量;多租戶隔離其實並不是靠NAT來做的,多租戶隔離一是路由沒有發佈,二是依靠虛擬防火牆來做訪問控制,而NAT的作用是允許內部IP重複。

公有云能否不用EIP呢?這個其實是不行的,因爲公有云是所有不同公司/個人的用戶共享一個平臺,IP的規劃必然會有重複,所以需要用NAT來做防IP衝突,用EIP來提供外部訪問。而私有云只是一個公司內部的環境,IP規劃必然不能有衝突,所以絕大部分的私有云場景不需要NAT和EIP,使用動態路由是更適合的方式。

總結

綜上所述,扁平網絡、VPC網絡EIP模式、OSPF模式都有各自的適用場景,對於網絡需求簡單、只需要連通性的場景,適合使用扁平網絡;對於絕大部分的私有云場景,更適合使用OSPF模式,對接物理交換機,將物理網絡延伸到虛擬環境;對於公有云、託管雲以及一些特殊場景,適合使用EIP模式

在這裏插入圖片描述

歡迎關注ZStack中國社區QQ羣、ZStack官方微信!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章