上一篇文章已經(jīng)介紹過,在集中式網(wǎng)絡節(jié)點模式下,所有的計算節(jié)點只安裝二層代理,所有三層流量無論是南北或東西走向都必須經(jīng)過網(wǎng)絡節(jié)點,盡管可以通過HA的方式保證網(wǎng)絡節(jié)點的高可用,但是基于vrrp的HA方式同一時間點只有一個網(wǎng)絡節(jié)點處于工作狀態(tài),這樣在大規(guī)模場景下網(wǎng)絡節(jié)點仍然會成為性能瓶頸,為此openstack社區(qū)從Juno版本開始推出的DVR模式來解決上述問題,需要說明的是:在Mitaka版本之前DVR與L3 HA功能不能同時啟用,從Mitaka版本之后才支持DVR與L3 HA功能同時開啟。
我們提供的服務有:成都網(wǎng)站設計、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、三亞ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的三亞網(wǎng)站制作公司
為了解決網(wǎng)絡節(jié)點的流量瓶頸問題,DVR通過在計算節(jié)點部署L3 Agent,讓不同subnet之間的東西流量和綁定floating ip的vm的南北流量直接通過計算節(jié)點訪問外網(wǎng),只有未綁定floating ip的vm的南北南北流量才需要通過網(wǎng)絡節(jié)點SNAT訪問外網(wǎng),此時的集群架構如下圖所示:
不同于集中式網(wǎng)絡節(jié)點中所有計算節(jié)點只走二層流量,DVR模式下,每個計算節(jié)點都可以走3層流量,以此來分攤網(wǎng)絡節(jié)點的流量壓力。
DVR模式下,網(wǎng)絡節(jié)點內部組件此時如下圖所示:
可以看到,啟用DVR模式后的網(wǎng)絡節(jié)點多了一個SNAT Namespace空間。在在所有計算節(jié)點都開啟DVR功能時,Router Namespace中的Metadata Agent只負責處理Project網(wǎng)絡中的元數(shù)據(jù),SNAT Namespace空間負責對只有fix ip的vm通過源地址轉換的方式訪問外網(wǎng)。如果所有的計算節(jié)點將DVR模式關閉,此時vm的流量和集中式網(wǎng)絡節(jié)點一致,即所有的三層流量都需要經(jīng)過網(wǎng)絡節(jié)點的Router Namespace處理。
當開啟DVR功能后,此時計算節(jié)點內部組件如下圖所示:
啟用DVR功能的計算節(jié)點因為部署了L3 Agent組建,所以擁有Distribute Router NameSpace,并且當創(chuàng)建vm時,還會自動生成fip名稱空間,所有計算節(jié)點的Distribute Router NameSpace完全一致,名稱空間接口的ip和mac地址也一樣(初始化時所有計算節(jié)點的名稱空間都是源自網(wǎng)絡節(jié)點的副本),了解網(wǎng)絡的都知道,同一時間同一網(wǎng)絡中ip與mac地址要一致,否則交換通過反復mac地址學習到的arp表條目會有沖突,為了解決這一問題,DVR結構為每個運行L3 Agent的計算節(jié)點指定全局唯一的mac地址(dvr_host_mac)。
相同subnet下vm之間的流量走向與集中式網(wǎng)絡節(jié)點類似,此處不在贅述,下面以不同subnet之間vm的vxlan流量走向為例進行說明,此時vm間流量走向如下圖所示:
1.位于compute1中的vm1向compute2中的vm2發(fā)出請求。此時源/目的ip為vm1/2的ip地址,源/目的mac地址為vm1與網(wǎng)關qr-1的mac地址。
2.報文經(jīng)過linux bridge進行iptables安全檢查,然后送往br-int。
3.進入br-int上的報文被打上內部vlan號并送往vm1的網(wǎng)關qr-1,qr-1接口上配置vm1的網(wǎng)關地址,經(jīng)查表報文從qr-2口流出,qr-2接口設置vm2的網(wǎng)關地址。
4.從qr-2口出來的報文,此時源/目的ip為vm2網(wǎng)關(qr-2)的ip和vm2的ip地址,源/目的mac為qr-2口mac和vm2的mac地址,并將報文進入br-tun。
5.報文在br-tun交換機上將源mac地址(qr-2)換為全局唯一mac地址(dvr_host_mac),然后進行vxlan封裝,離開compute1。
6.報文到達compute2后首先vxlan解封裝,然后再將源mac地址(dvr_host_mac)換為vm2網(wǎng)關(qr-2)mac地址,送往br-int并在br-int交換機打上內部vlan號。
7.報文脫掉內部vlan號,進入linux bridge,進行安全策略檢查。
8.最終數(shù)據(jù)報文達到vm2。
vm2數(shù)據(jù)報文返回的過程與數(shù)據(jù)報文到達vm2的過程一致,不再贅述。
vm南北流量分為floating ip和fix ip兩種情況,對這兩種情況分別進行說明:
沒有綁定floating ip的vm在訪問外網(wǎng)時需要通過網(wǎng)絡節(jié)點的SNAT Router NameSpace進行地址轉換,其流量走向如下圖所示:
1.vm向外網(wǎng)發(fā)起請求,數(shù)據(jù)報文送往linux bridge。
2.進入linux bridge的數(shù)據(jù)報文經(jīng)過iptables安全策略檢查后將報文送往br-int,此時打上內部vlan號。
3.數(shù)據(jù)報文從br-int送往Router NameSpace的qr口,該接口配置了vm的網(wǎng)關地址,在Router NameSpace內對Snet NameSpace的sg口的mac地址進行解析,sg接口為vm所在子網(wǎng)的接口,該接口上的ip地址與vm在同一網(wǎng)段。然后將報文送往br-tun。
4.數(shù)據(jù)報文進入br-tun后脫掉內部vlan號,進行vxlan封裝,打上vni號,離開conpute1.
5.數(shù)據(jù)報文進入Network節(jié)點,脫掉vni號,進行vxlan解封裝,送往br-int交換機,進入br-int交換機后打上內部vlan號。
6.數(shù)據(jù)報文進入sg后,進行路由查表,將數(shù)據(jù)發(fā)往fg口,fg口上配置的是可被路由的公網(wǎng)ip。
7.數(shù)據(jù)報文在fg口上進行SNAT地址轉換,轉換后的源ip地址為fg口上配置的公網(wǎng)ip訪問公網(wǎng)。
啟用DVR功能后每臺計算節(jié)點主機都安裝了L3 Agent,綁定了floating ip的vm不再需要繞行到網(wǎng)絡節(jié)點,直接由計算節(jié)點主機訪問呢公網(wǎng),其流量走向如下圖所示:
1.vm向外網(wǎng)發(fā)起訪問,由于vm是provider類型的私網(wǎng)地址,所以首先要去找vm地址所在的網(wǎng)關。
2.數(shù)據(jù)報文經(jīng)過linux bridge和br-int后進入Distribute NameSpace的qr口,該接口配置的ip地址為vm的網(wǎng)關地址。
3.數(shù)據(jù)報文從qr口流出,進入rfp口,該接口上配置有2個ip地址,其中3為vm綁定的floating ip地址,在此處進行SNAT地址轉換,外網(wǎng)流量訪問vm時在此名稱空間利用iptables做DNAT地址轉換。
4.通過qrouter與fip內部通信的直連接口(4),接口地址由L3 Agent自行維護,ip為169.254.x.x/31格式,將數(shù)據(jù)包發(fā)往fip名稱空間。
5.fip空間的直連接口fpr接收到數(shù)據(jù)包后,轉發(fā)給外網(wǎng)網(wǎng)關fg口。
6.fip名稱空間外網(wǎng)網(wǎng)關接口將數(shù)據(jù)包發(fā)到br-ex交換機最后通過物理網(wǎng)卡訪問internet,外網(wǎng)訪問vm的數(shù)據(jù)流向為該過程的逆方向,此處不再贅述。
針對使用floating ip的數(shù)據(jù)包進出時需要注意的地方是:
1.fg接口上會額外配置一個外網(wǎng)ip地址,這也是為什么公有云場景下不會將vm外網(wǎng)ip直接設置成公網(wǎng)ip地址的原因,因為每個計算主機都需要一個額外的地址作為fg網(wǎng)關地址。
2.當外部網(wǎng)絡訪問vm時,請求的ip地址是qrouter名稱空間中rfp接口上做SNAT的ip地址,但此時fg接口會響應rfp接口上外網(wǎng)ip的arp地址解析請求,所以通常認為fg接口是floating ip的arp代理接口。
通過前文得知,開啟DVR模式下的網(wǎng)絡節(jié)點只是針對沒有綁定floating ip的vm進行SNAT地址轉換,并且qrouter名稱空間只處理元數(shù)據(jù),所以不同于傳統(tǒng)L3 HA對Router NameSpace的高可用,DVR下的L3 HA是對SNAT NameSpace進行的高可用,仍采用vrrp實現(xiàn),如下圖所示:
從部署結構來看,分別要對SNAT外網(wǎng)ip地址和子網(wǎng)接口ip地址做高可用,所以當使用keepalive時,此時架構如下圖所示:
網(wǎng)頁題目:講清楚說明白openstack中vm流量走向之2——DVR模式
網(wǎng)站路徑:http://aaarwkj.com/article2/pjceoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、自適應網(wǎng)站、建站公司、靜態(tài)網(wǎng)站、網(wǎng)頁設計公司、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)