VXLAN基本原理與配置示例

一  VXLAN的原理

     VXLAN(Virtual eXtensible LAN 可擴展虛擬局域網絡)是一種網絡虛擬化技術,底層基於IP網絡,採用"Mac In UDP"封裝形式的二層以太網交換技術。相對於VLAN,VXLAN具有以下優勢:

     1) 應用靈活部署: 通過VXLAN封裝後的2層以太網幀可以跨3層網絡邊界,讓組網以及應用部署變得更加靈活,同時解決多租戶網絡環境中IP地址衝突問題。

     2) 更好的擴展性: 傳統 VLANID字段爲12-bit,VLAN數量爲4096;VXLAN使用24-bit VNID (VXLAN network identifier),支持 16,000,000 邏輯網絡,解決了傳統二層網絡VLAN資源不足的問題。

     3) 提高網絡利用率: 傳統以太網使用 STP預防環路, STP導致網絡冗餘路徑處於阻塞狀態, VXLAN報文基於 3層 IP報頭傳輸,能有效利用網絡路徑,支持 ECMP(equal-cost multipath )和鏈路聚合協議。

      VXLAN的網絡模型如圖所示:

         VXLAN技術將已有的三層物理網絡作爲Underlay網絡,在其上構建虛擬的二層網絡,即Overlay網絡。Overlay網絡通過封裝技術,利用Underlay網絡提供的三層轉發路徑,實現租戶二層報文跨越三層網絡在不同站點之間傳遞。對於租戶來說,Underlay網絡是透明的,同一租戶的不同站點就像工作在同一局域網中。

         VXLAN的網絡模型包括以下幾個部分:

         1) 用戶終端: 可以是PC機、無線設備、服務器上創建的VM等

         2) VTEP(VXLAN Tunel End Point): VXLAN的邊緣設備,VXLAN的相關處理都在VTEP上進行,例如識別以太網數據幀所屬的VXLAN,報文的封裝與解封等

         3) VXLAN隧道: 兩個VTEP設備之間的點到點邏輯隧道,用於傳輸VXLAN報文

         4) 核心設備: 底層IP網絡中的設備,不參與VXLAN處理,僅根據VXLAN報文的目的地址進行三層轉發

         5) VSI(Virtual Switch Instance 虛擬交換實例): VTEP上爲一個VXLAN提供二層交換服務的虛擬交換實例,可以看成是VTEP上一個基於VXLAN進行二層轉發的虛擬交換機

         6) AC(Attachment Circuit 接入電路): VTEP上連接本地站點的物理電路或者虛擬電路,與VSI關聯的三層接口稱爲AC。

 

二  VXLAN網關

      和VLAN類似,不同VNI之間的VXLAN,及VXLAN和非VXLAN之間不能直接相互通信。爲了使VXLAN之間,以及VXLAN和非VXLAN之間能夠進行通信,VXLAN引入了VXLAN網關。

      VXLAN網關分爲:

      1) 二層網關:用於解決租戶接入VXLAN虛擬網絡的問題,也可用於同一VXLAN虛擬網絡的子網通信。

      2) 三層網關:用於VXLAN虛擬網絡的跨子網通信以及外部網絡的訪問。

      根據三層網關部署方式的不同,VXLAN三層網關又可以分爲集中式網關和分佈式網關

      集中式網關是指將三層網關集中部署在一臺設備上,所有跨子網的流量都經過三層網關進行轉發,實現流量的集中管理,如圖所示:

                                                

        集中式網關部署簡單,但不同VXLAN的流量均由單一網關處理,使得其負載壓力較大。在分佈式網關中,每臺VTEP設備均可以作爲網關,緩解了網關的壓力,如圖所示:

                                         

         分佈式網關中,Spine節點不感知VXLAN隧道,只作爲報文轉發的中間節點。

 

三、HCL搭建VXLAN示例

       下面在HCL環境中搭建一個VXLAN的示例,加深對以上概念的理解。

                    

        如圖所示,RouterA與RouterB作爲VTEP設備,同時也作爲分佈式網關設備。RouterC作爲路由反射器,負責在集羣中反射BGP路由,這裏我們通過BGP路由完成RouterA與RouterB之間VXLAN隧道的建立,並使得客戶端之間可以彼此互通。

        1) 在RouterA、RouterB、RouterC之間配置OSPF,使得彼此之間路由可達。注意這裏我們配置RouterA的Loopback0地址爲1.1.1.1作爲其vtep地址,配置RouterB的Loopback0地址爲2.2.2.2作爲其vtep地址。

        查看RouterA的OSPF路由表:

        

 

       2) 創建三層交換實例,配置其RD和RT

       

 

       3) 創建VSI接口,並配置網關地址:

       

       這裏我們在該接口中配置了2個分佈式網關,並且綁定了第二步創建的三層交換實例,同時爲了保證網關之間的三層互通,指定了l3-vni。

 

        4) 創建VSI實例,並且關聯第三步創建的VSI接口

        

           在該VSI實例中創建VXLAN通道。

 

        5) 在RouterA的2/0/2接口上關聯第四步創建的VSI實例

        

        以上完成了RouterA的配置,RouterB與RouterA的配置步驟相同。

        到目前爲止,RouterA與RouterB之間的VXLAN隧道還沒有建立,我們需要配置BGP路由完成VXLAN隧道的自動創建。

 

        6) 在配置BGP時,爲了避免BGP對等體之間建立full-mesh連接,將RouterC作爲路由反射器,RouterA與RouterB只與RouterC建立BGP連接即可

        RouterA配置如下:

        

 

        RouterB與RouterA配置相同

        RouterC配置如下:

        

        等RouterA、RouterB與RouterC之間的對等體建立好之後,查看BGP路由:

              

        其中下發了二類、三類路由;二類路由是主機IP/MAC路由、三類路由是VTEP路由

        查看VXLAN隧道,已經自動生成:

        

        驗證下流量是否通,10.1.1.1 ping 20.1.1.2:

        

        可見,不同網段的主機流量已經互通,下面來抓包驗證一下:

        抓取10.1.1.1設備的1/0/1口、RouterA的2/0/1口、20.1.1.2的1/0/1口:

        下圖是10.1.1.1設備1/0/1口的報文,封裝的ICMP報文中,src ip是10.1.1.1,dst ip 是20.1.1.2,src mac是虛機自身的mac,由於是跨網段互通,故dst mac是RouterA網關的mac

        

 

        下圖是RouterA 2/0/1口的報文,可以看見,VTEP在ICMP報文外層又封裝了一層VXLAN,且src ip是1.1.1.1,即RouterA的VTEP ip,dst ip是2.2.2.2,即RouterB的VTEP ip,vxlan id是1000,即VSI中指定的l3-vni

        

 

       下圖是20.1.1.2設備1/0/1口的報文,可見,RouterB對VXLAN報文進行了解封,此時報文中的src mac爲RouterB的網關mac,dst mac爲20.1.1.2設備的mac

       

 

        通過以上的步驟,我們完成了搭建VXLAN的示例。

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