一個網工的openstack探索之旅

一個網工的openstack探索之旅

4 人贊了文章

概述

本人是網工中普通的一員,這篇文字簡要記錄了本人以一個網路工程師對vxlan技術與數據中心網路技術產生的種種疑問為切入點,引申出了對openstack基本架構的學習和著重對neutron組件的學習;為了不只是把以上研究停留在紙面上,同時搭建了各種實驗環境進行了驗證與測試。

spine-leaf數據中心網路架構

是怎麼樣的?

spine-leaf簡單示意圖

為什麼是這樣的,它解決了哪些問題?

underlay路由網路,避免二層環路同時網路路由冗餘

overlay隧道網路,提供了大二層的隧道組網

虛機遷移所需要的大二層網路

傳統大二層網路面臨的挑戰:

1.環路與廣播域大

2.設備表相瓶頸

3.因為大二層網路VLAN標籤無法多租戶復用,租戶數量超過4096後,

它的核心的技術是什麼,核心技術工作的原理是什麼?

VXLAN

一種隧道技術,二層報文再次封裝到UDP

缺少控制面,原始的vxlan技術單純利用二層轉發機制轉發vxlan報文。

純網路實驗環境

華為ENSP

華為的vxlan實現方式

1.靜態配置轉發麵-集中式網關

2.協議控制轉發麵-EVPN-集中式網關

簡單的集中式網關

配置待補充

3.協議控制轉發麵-EVPN-分散式網關

組網完畢後,測試過程中感覺出現了軟體bug,具體細節待補充

4.SDN-EVPN-分散式網關

折騰不出實驗環境

華為硬體VTEP方案思考

一.使用VLAN對應VNI,可分配的VNI數量依然關聯於VLAN,是否依然存在可劃分的二層域不足的情況?

vlan在每個宿主機內或二層Vtep下不能重複,在不同的宿主機或二層Vtep下可重複使用,意味著第4097個租戶可以重新使用vlan1作為local vlan。

二.openstack軟體形式VXLAN組網也是採用Internal VLAN 與 vni對應進行數據轉發,是否依然存在可劃分的二層域不足的情況?

vlan在每個宿主機內或二層Vtep下不能重複,在不同的宿主機或二層Vtep下可重複使用,意味著第4097個租戶可以重新使用vlan1作為local vlan。

三.openstack租戶雲主機的網關是分配在neutron VRouter上,分為以下兩種情況:

1.普通VRouter,租戶雲主機跨子網流量與南北向流量經過VRouter所在的network-node轉發。

2.分散式VRouter,對於做了一對一靜態nat轉換的雲主機(openstack中稱作被分配了floating IP的 instance),雲主機的跨子網流量與南北向流量(SNAT)經過本地compute-node的分部署路由轉發;對於那些未明確指定inside-local address與inside-global address 綁定的雲主機(openstack 中稱為 instances with a fixed IP address,我覺得加一個only理解會更容易),雲主機的跨子網流量經過本地分散式路由賺翻,南北向(SNAT)流量依然經過network-node的VRouter進行轉發。

以上可以看出無論是普通路由還是分散式路由,租戶雲主機的網關都是在openstack虛擬網路中維護的,而在華為和華三的硬體VTEP組網中是存在L3 VXLAN GATEWAY概念的,並且此網關地址就是租戶主機的網關地址,用於租戶雲主機的跨子網訪問。

問題1:openstack VRouter網關與硬體方案的 L3 VXLAN GATEWAY是共存的嗎?如果不能共存是否需要改變openstack的組網類型(改自服務為運營商)?不確定

問題2:openstack 的neutron使用什麼樣的網路類型(flat,vlan)來配合硬體類型VTEP方案? 應該是vlan

問題3:硬體組網的vxlan vni與如何與openstack租戶配合使用?

一個vni對應一個vpc子網的vlan

自建openstack綜合實驗環境描述:

版本 V1.0 非分散式路由,物理網路為VLAN大二層

拓撲圖:

network-node external bridge由於圖片大小關係省略

1台組裝機,主要配置:i7-8700k、48G內存、2T硬碟

外層虛擬化環境 :vsphere esxi 6.5 ,創建EVE-NG Host虛擬機、controller-node虛擬機、nova-node虛擬機、network-node虛擬機

物理網路設備模擬器:EVE-NG,模擬普通VLAN類型的物理網路

網路模擬器與虛擬宿主機橋接網路:vsphere vswith

虛擬宿主機,組建openstack環境:3個節點分別為controller-node、nova-node、network-node,根據官方文檔手工組建pike 版本openstack,成功!

(一句話包含搭建中千言萬語的坑,搭建完畢又面臨一堆的坑nova_vnc故障、dhcp故障、AZ劃分後instance 無法創建故障以及各種自己給自己挖的坑 )。

版本V2.0 分散式路由、物理網路VXLAN組網

學習過程中對於華為的組網方案比較熟悉,奈何EVE-NG無法模擬華為12800,,最終會選擇了Arista VEOS 4.14.5F來組建vxlan網路(不太熟悉,看了手冊好像不支持BGP-EVPN方式組網,比較鬱悶)。

拓撲圖待續。。

精力有限,以上的記錄尚待補充各種細節

總結

本人目前供職於一家集成公司,目前專門做網路安全集成項目(是的,其實我現在做網路安全),但是對於網路技術一直保持熱情並且對openstack技術一直很好奇,目前的項目也涉及到雲、網、安的融合,所以自己組裝了一台電腦專門用作對openstack的學習,期間各種艱辛與挫敗不多描述,從3月下旬開始到4月底每天下班後繼續折騰到後半夜周六日不休息,付出了大量的精力,我想說的是沒有平台、沒有指引、英文水平一般的話搞點前沿的技術真tm難。

最後真的感謝知乎各路網路技術話題牛人、雲技計算網路肖老師、李宗標老師等等,在學習的這段時間裡學習參考了好多前輩的分析的課程、書籍,博客,為我探索過程中的指路燈塔。


推薦閱讀:

TAG:雲計算 | OpenStack | 計算機網路 |