簡單談?wù)凮penStack中的網(wǎng)絡(luò)隔離
前言
最近,關(guān)于xx公有云的用戶網(wǎng)絡(luò),由于隔離問題引發(fā)安全討論,大家頓時對啥“經(jīng)典網(wǎng)絡(luò)”、“VPC”等概念興趣大增,大家的熱議中多次提到AWS的VPC,亞馬遜的AWS怎么搞的,我們不得而知,但是我們可以聊聊OpenStack的,畢竟它一直在模仿AWS嘛;
“隔離”啥
首先,我們先搞清楚,所謂“隔離”,到底是在“隔”什么;
我們知道,計算機網(wǎng)絡(luò),是分層實現(xiàn)的,不同協(xié)議工作在不同層,這些層的設(shè)計、制定都有國際標(biāo)準(zhǔn),按著OSI的分層模型,共有七個層,大家在討論的隔離,通常指的是第2層,也叫“數(shù)據(jù)鏈路層”;
數(shù)據(jù)鏈路層的網(wǎng)絡(luò)包,也叫“幀”,我們常說的網(wǎng)卡的MAC地址,就是幀的地址,MAC,其實是“媒體訪問控制”(media access control)的簡稱,這是數(shù)據(jù)鏈路層的一個子層;
那為什么要在這個二層上搞隔離呢?
因為二層的幀,其中一些幀的地址是廣播地址,在同一個二層的設(shè)備都可以、也必須接收這些幀,交換機一般認(rèn)為工作在二層,對這些廣播包,也都要轉(zhuǎn)發(fā),所以二層通常被稱為一個“廣播域”,這就好比大家在一個教室里,都能互相看到,除非分隔到不同的教室;
OpenStack的玩法
openstack的neutron負(fù)責(zé)為虛擬機提供網(wǎng)絡(luò),而且openstack是假設(shè)多租戶的,那多租戶之間的隔離問題,它當(dāng)然要提供支持,下面我們就看一下neutron是怎么實現(xiàn)的;
平坦網(wǎng)絡(luò)
neutron中創(chuàng)建的網(wǎng)絡(luò)是有“type”的,其中最基礎(chǔ)的一種type就是“flat”,顧名思義,“平坦”就是指都在一個空間下,也就是沒有做二層上的隔離,虛擬機都在同一個二層,同一個廣播域;
從網(wǎng)上找了個示意圖:
這種”平坦“的大二層網(wǎng)絡(luò),雖然實現(xiàn)、管理相對簡單,但也會有諸多問題,除了安全方面,還有廣播風(fēng)暴等問題;
單個大二層網(wǎng)絡(luò),就好比整個學(xué)校的人都在一個大禮堂,大家都能看到,而且萬一誰得了傳染病,大家都被傳染,要想隔離,可以把人分散到各個教室;
VLAN隔離網(wǎng)絡(luò)
neutron中創(chuàng)建”vlan“這種類型的網(wǎng)絡(luò),就是主要使用的二層隔離方案,VLAN(虛擬局域網(wǎng))本身就是交換機廣泛使用的二層隔離技術(shù);
示意圖大概這樣:
這就好比把整個學(xué)校的人,從大禮堂,分隔到了不同的教室,同一個教室的人互相可見,不同教室的人不可見;
但這種方案也有一定的局限性,首先管理相對麻煩,需要配合設(shè)置物理交換機,另外VLAN的可用數(shù)量有限制,VLAN的ID號僅有四千多個,我們假設(shè)每個租戶分配1個VLAN,那最多也就能支持四千多個租戶;
OverLay網(wǎng)絡(luò)
overlay(覆蓋)網(wǎng)絡(luò),所謂”覆蓋“,大體上指”在一層上面覆蓋另一層,也可以說是用一層載著另一層移動“,VXLAN是最常見的協(xié)議,它是把虛擬機的二層的幀,在宿主機上用UDP包裹起來,然后以宿主機的IP,必要的話,經(jīng)過3層的路由,到達(dá)目的宿主機,然后再解封,把內(nèi)包裹的二層幀,輸送給目的虛擬機;
有點抽象?我們先看看VXLAN的包結(jié)構(gòu),就知道”包裹“是啥意思了:
那個”Inner Frame“就是被包裹的虛擬機的二層的包;
最終封裝完的包,外層的源IP、目的IP地址,都是宿主機的,所以只要宿主機之間互通(3層可達(dá)),被封裝的內(nèi)層幀就可以被運輸:
那這種方案有什么優(yōu)點呢?
主要的:
vxlan的范圍足夠大,一千六百多萬,租戶隨便用 因為是完全隔離的,租戶可以隨意定義自己的網(wǎng)絡(luò),哪怕和其他租戶的IP段重疊都沒有關(guān)系,比如上圖中,租戶A的網(wǎng)絡(luò),與租戶B的網(wǎng)絡(luò) 如果通過一定技術(shù)實現(xiàn)支持3層路由器,租戶可以將自己的網(wǎng)絡(luò),隨意組織自己的網(wǎng)絡(luò)拓?fù)?,比如上圖中,租戶A的兩個網(wǎng)絡(luò),連接到一個路由器(可以是虛擬的)上
關(guān)于上面提的第三點,在neutron中大概是這樣的:
VPC
最后,那到底啥是VPC呢?
很明確的告訴你,上面這個圖就是VPC!
VPC(virtual private cloud),不是個技術(shù)專有名詞,而是亞馬遜AWS創(chuàng)造的一個產(chǎn)品層面的名詞;
租戶網(wǎng)絡(luò)徹底隔離、IP段都能重疊、路由器、網(wǎng)絡(luò)拓?fù)涠寄苡勺约憾x,這還不是”虛擬私有云“嗎!
相關(guān)文章
openstack云計算cinder架構(gòu)及各組件功能介紹
這篇文章主要為大家介紹了openstack云計算之cinder架構(gòu)及各組件功能介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04詳解VMware接入Openstack—使用Openstack創(chuàng)建vCenter虛擬機
本篇文章主要介紹了VMware接入Openstack—使用Openstack創(chuàng)建vCenter虛擬機,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03openstack云計算組件keystone部署及操作使用技巧
這篇文章主要為大家介紹了openstack云計算組件keystone部署及操作使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04Openstack 創(chuàng)建項目和虛擬機詳細(xì)介紹
這篇文章主要介紹了Openstack 創(chuàng)建項目和虛擬機詳細(xì)介紹的相關(guān)資料,這里舉例說明如何實現(xiàn),圖文教程,需要的朋友可以參考下2016-11-11詳解Openstack組件部署 — Overview和前期環(huán)境準(zhǔn)備
本篇文章主要介紹了詳解Openstack組件部署 — Overview和前期環(huán)境準(zhǔn)備,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03