国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

BigBrother:UCloud全鏈路大規(guī)模網(wǎng)絡(luò)連通性檢測系統(tǒng)詳解

mrli2016 / 3395人閱讀

摘要:宋體為此,我們設(shè)計(jì)了一款支持全鏈路大規(guī)模的網(wǎng)絡(luò)連通性內(nèi)部檢測系統(tǒng)。宋體因此做一款支持全鏈路大規(guī)模的連通性檢測系統(tǒng)是非常有必要的,我們的目標(biāo)就是讓運(yùn)維的同學(xué)能夠迅速發(fā)現(xiàn)并解決網(wǎng)絡(luò)不通的問題,同時(shí)為我們的虛擬網(wǎng)絡(luò)服務(wù)變更保駕護(hù)航。

虛擬網(wǎng)絡(luò)排查問題困難,傳統(tǒng)的 traceroute 等工具很難起到太大作用,大部分情況下都需要到宿主機(jī)、混合云網(wǎng)關(guān)上抓包來 troubleshooting,耗時(shí)又費(fèi)力。有些場景中包的傳送路徑比較長(如跨域、混合云等),可能丟包的地方比較多,更增加了故障排查的難度。

為此,我們設(shè)計(jì)了一款支持全鏈路大規(guī)模的網(wǎng)絡(luò)連通性內(nèi)部檢測系統(tǒng) BigBrother。基于 TCP 報(bào)文的染色可將檢測報(bào)文和用戶流量區(qū)分開,能支持物理云和跨地域的復(fù)雜場景,還打造了完整的檢測框架,幫助運(yùn)維同事直接定位故障點(diǎn),或一鍵判斷虛擬網(wǎng)絡(luò)是否存在問題。

BigBrother 上線后即用于云主機(jī)遷移前后的連通性驗(yàn)證,保證出現(xiàn)異常后可以及時(shí)告警回滾。從 8 月初至今歷時(shí)兩個(gè)月,共遷移 2000 多臺主機(jī),及時(shí)發(fā)現(xiàn)遷移異常近 10 起。

一、第一代網(wǎng)絡(luò)連通性工具的不足

在設(shè)計(jì) BigBrother 這前,我們也有第一代的網(wǎng)絡(luò)連通性檢查工具,原理就是通過 SSH 跳轉(zhuǎn)到目標(biāo)宿主機(jī)上,利用 ovs 的 packet out 命令將構(gòu)造的報(bào)文發(fā)出去,最后在對端的宿主機(jī)上 tcpdump 該報(bào)文,從而驗(yàn)證兩端的連通性。但是從它的原理就不難看出,這種檢測方式有著很大的缺點(diǎn):

  • 檢測效率低下,無論是 ssh、packet out,還是 tcpdump 都無法支持大規(guī)模的快速檢查;
  • 適應(yīng)的場景有限,對于部分 dpdk、p4 網(wǎng)關(guān)類產(chǎn)品,無法通過 tcpdump 進(jìn)行抓包判斷。

因此做一款支持全鏈路大規(guī)模的連通性檢測系統(tǒng)是非常有必要的,我們的目標(biāo)就是讓運(yùn)維、NOC 的同學(xué)能夠迅速發(fā)現(xiàn)并解決網(wǎng)絡(luò)不通的問題,同時(shí)為我們的虛擬網(wǎng)絡(luò)服務(wù)變更保駕護(hù)航。

二、BigBrother 的實(shí)現(xiàn)原理

BigBrother(下文簡稱 BB)可以將全網(wǎng)資源連通情況都實(shí)時(shí)監(jiān)控起來。整個(gè) BB 檢測系統(tǒng)由若干個(gè)組件配合完成,mafia 提供 console 進(jìn)行創(chuàng)建及展示 task 的結(jié)果,minitrue 用于將用戶傳入的參數(shù)轉(zhuǎn)化為注包的范圍,telescreen 用于構(gòu)造報(bào)文及收發(fā)報(bào)文。

1、Entrypoint 和 Endpoint

在具體介紹 BB 的原理前,我們先來看兩個(gè)概念。在我們的虛擬網(wǎng)絡(luò)中,每個(gè)實(shí)例(uhost、umem、udb 等)都是通過接入點(diǎn)來接入虛擬網(wǎng)絡(luò),接入點(diǎn)由兩部分組成:

  • Entrypoint: inbound/outbound 報(bào)文都是經(jīng)由 Entrypoint 進(jìn)行接受和發(fā)送的。
  • Endpoint:連接實(shí)例的端點(diǎn),Endpoint 為最接近實(shí)例的網(wǎng)元。

例如在公有云場景中,entrypoint 和 endpoint 都是 openvswitch,而在物理云場景中,entrypoint 是我們的物理云轉(zhuǎn)發(fā)網(wǎng)關(guān)(vpcgw、hybridgw),endpoint 則是物理云主機(jī)的上聯(lián) ToR。

以上就是各種場景中的接入點(diǎn)說明,之所以要明確這兩個(gè)概念,是因?yàn)樵?BB 系統(tǒng)中,我們將 Entrypoint 作為注包點(diǎn),向其發(fā)送 GRE 探測報(bào)文,同時(shí)將 Endpoint 作為采樣點(diǎn),Endpoint 會識別并鏡像特殊的探測報(bào)文至 BB。

2 、檢測流程

檢測方案如圖所示,可分為兩部分組成,在圖中的流向分為橙色和紫色。

以橙色流向部分為例(SRC->DST):1)BigBrother 模擬 DST 向 Endpoint 發(fā)送探測報(bào)文;2)SRC 端 Entrypoint 收到該探測報(bào)文后轉(zhuǎn)發(fā)給 Endpoint;3)Endpoint 將該報(bào)文鏡像至 BigBrother;4)Endpoint 將報(bào)文正常轉(zhuǎn)發(fā)至實(shí)例;5)實(shí)例回復(fù)報(bào)文給 Endpoint;6)Endpoint 收到該回復(fù)報(bào)文后進(jìn)行 GRE 封裝,然后鏡像至 BigBrother;7)Endpoint 將報(bào)文正常轉(zhuǎn)發(fā)至 Entrypoint;8)SRC Entrypoint 將回復(fù)報(bào)文發(fā)送至 DST Entrypoint;9)DST Entrypoint 收到回復(fù)報(bào)文后發(fā)送給 Endpoint;10)DST Endpoint 將回復(fù)報(bào)文鏡像至 Bigbrother。

至此,單邊的檢測結(jié)束。在檢測過程中,BigBrother 發(fā)送了 1 個(gè)探測報(bào)文,共收到了 3 個(gè)采樣報(bào)文,通過分析這 3 個(gè)采樣點(diǎn)可以確認(rèn) SRC->DST 方向是否通信正常。

反之亦然,紫色部分原理相同。全部檢測結(jié)束后,BigBrother 共可以收到 6 個(gè)探測報(bào)文,如果 6 個(gè)報(bào)文均收到則表示連通性正常。

3 、探測報(bào)文設(shè)計(jì)

上文中介紹了 BB 的檢測流程,下面我們再來看下探測報(bào)文及轉(zhuǎn)發(fā)面的設(shè)計(jì)實(shí)現(xiàn)。公有云和混合云的設(shè)計(jì)存在很多不同。公有云轉(zhuǎn)發(fā)面需要在全局 hook 點(diǎn) (table_1),分別 hook 探測報(bào)文的 request 和 response,然后進(jìn)行染色、鏡像至 BB 等步驟。而混合云轉(zhuǎn)發(fā)面則需要 ToR、PE 交換機(jī)開啟 ERSPAN 功能,將染色的報(bào)文鏡像至 BB 即可。

整體數(shù)據(jù)包交互如下圖所示:

而一個(gè)合格的探測報(bào)文首先應(yīng)該具備以下特征:

  • 染色信息與主機(jī)、OS 無關(guān);
  • ovs2.3、ovs2.6 版本(現(xiàn)網(wǎng)主要版本)可以識別并處理此種染色信息。

因此我們詳細(xì)比較了如下兩種候選方案。

1)icmp + tos 方案

第一種方案以 icmp 報(bào)文為載體,使用 tos 對 icmp_request 進(jìn)行染色,采集時(shí)將此 tos 的 icmp 報(bào)文鏡像至 BB 即可。

cookie=0x20008,table=1,priority=40000,metadata=0x1,icmp,icmp_type=8,icmp_code=0,nw_tos=0x40 actions=Send_BB(),Learn(),Back_0()

對于 hook icmp_request 的 flow 可以簡化為如下邏輯:action 部分主要由三部分組成:

  • Send_BB () 將報(bào)文鏡像給 BB;
  • Learn () 通過 icmp_request 報(bào)文學(xué)習(xí)到一條用于匹配 icmp_reply 報(bào)文的 flow,該條 flow 的主要?jiǎng)幼靼ǎ喝旧㈢R像至 BB;
# 1. REG3 64200# (global hook) reg3 load:64200->NXM_NX_REG3[], # 2. learn action learn(table=31,idle_timeout=2,hard_timeout=4,priority=30000,dl_type=0x0800,ip_proto=1,icmp_type=0,icmp_code=0,NXM_OF_IP_SRC[]=NXM_OF_IP_DST[],NXM_OF_IP_DST[ ]=NXM_OF_IP_SRC[],Stain(),Send_BB()),# 3. REG3 0load:0->NXM_NX_REG3[]?
  • Back_0 () 將該報(bào)文送回 table_0,進(jìn)行常規(guī)的轉(zhuǎn)發(fā)操作。

對于 hook icmp_reply 的 flow 可以簡化為如下邏輯:

cookie=0x20008,table=1,priority=40000,metadata=0x1,icmp,icmp_type=0,icmp_code=0,nw_tos=0x40

action 部分主要由四部分組成:?Save (in_port, tun_src) 將報(bào)文中的 in_port 和 tun_src 保存下來;?Resubmit (table=31) 跳轉(zhuǎn)至 table31,匹配 icmp_request learn 生成的 flow;?Restore (in_port, tun_src) 恢復(fù) in_port 和 tun_src;?Back_0 () 將該報(bào)文送回 table_0,進(jìn)行常規(guī)的轉(zhuǎn)發(fā)操作。 以上討論的是公有云側(cè) ovs 的染色及鏡像方法,而混合云側(cè)就需要交換機(jī) ERSPAN 來進(jìn)行支持,為了使 ERSPAN 規(guī)則可以鏡像 tos 染色報(bào)文,需要 GRE 外層 Ip Header 中的 tos 繼承 overlay Ip Header 中標(biāo)記的 tos,所以需要全網(wǎng)對 GRE 隧道設(shè)置繼承內(nèi)層 tos 的隧道屬性,執(zhí)行命令如下:

ovs-vsctl set in  options:tos=inherit

此種方案雖然可以實(shí)現(xiàn)染色及鏡像的功能,但是 hook 點(diǎn)預(yù)埋的 flow 過于復(fù)雜,不容易維護(hù),最關(guān)鍵的一點(diǎn)在于,混合云網(wǎng)絡(luò)中,該方案無法支持 learn flow,所以無法對反向的流量進(jìn)行染色。

2)tcp 方案

第二種方案以 tcp 報(bào)文為載體,使用特定的端口作為染色條件,采集時(shí)將此源目端口的 tcp 報(bào)文鏡像至 BB 即可。

cookie=0x20008,table=1,priority=40000,tcp,metadata=0x1,tp_src=[port],tp_dst=[port] actions=Send_BB(),Back_0()

對于 hook tcp_request 的 flow 可以簡化為如下邏輯:

action 部分主要由兩部分組成:?Send_BB () 將報(bào)文鏡像給 BB;?Back_0 () 將該報(bào)文送回 table_0,進(jìn)行常規(guī)的轉(zhuǎn)發(fā)操作。

以上兩種方案進(jìn)行對比不難看出,第一種方案依賴較多并且適用場景受限,所以 BB 采用的是第二種方案。但是 tcp 方案也有一定的缺陷,如何選擇染色的 port 并且要與用戶的流量區(qū)分開來,這是一個(gè)難點(diǎn)。經(jīng)過我們幾次踩坑后分析,最后決定使用 tcp 源目 port=11 來進(jìn)行染色(目前已告知用戶會使用 TCP 端口 11 進(jìn)行掃描,詳見 https://docs.ucloud.cn/network/unet/faq

),報(bào)文如下圖所示。

4、各場景下探測報(bào)文的生命周期

BB 被設(shè)計(jì)為支持多種網(wǎng)絡(luò)場景,能應(yīng)對物理云和跨域互通的網(wǎng)絡(luò)復(fù)雜性。這章節(jié)我們以探測物理云和跨域?yàn)槔敿?xì)分析下 BB 探測報(bào)文的生命周期。

  • 物理云

公有云互通物理云場景下,探測報(bào)文生命周期如下:

公有云 —> 物理云

1)BigBrother 向公有云宿主機(jī)發(fā)送探測報(bào)文

2)ovs 收到報(bào)文后鏡像至 BigBrother3)ovs 將報(bào)文送至實(shí)例 4)實(shí)例回應(yīng)報(bào)文 5)ovs 將回應(yīng)報(bào)文鏡像至 BigBrother6)物理云核心交換機(jī)收到報(bào)文,并發(fā)送給匯聚交換機(jī) 7)8)9)10)物理云匯聚交換機(jī)發(fā)送報(bào)文給 vpcgw,vpcgw 處理報(bào)文后回送至匯聚交換機(jī) 11)在物理云匯聚交換機(jī)配置 ERSPAN,將報(bào)文鏡像至 BigBrother。

物理云 —> 公有云

1)BigBrother 向 vpcgw 發(fā)送探測報(bào)文

2)3)vpcgw 處理報(bào)文后回送至匯聚交換機(jī) 4)在物理云匯聚交換機(jī)配置 ERSPAN,將報(bào)文鏡像至 BigBrother5)匯聚交換機(jī)將報(bào)文送至 phost 的上聯(lián) Tor6)Tor 將報(bào)文送至 phost7)phost 回應(yīng)報(bào)文 8)在 phost 的上聯(lián) Tor 配置 ERSPAN,將報(bào)文鏡像至 BigBrother9)報(bào)文送至公有云宿主機(jī) ovs10)ovs 收到報(bào)文后鏡像至 BigBrother

  • 跨域網(wǎng)關(guān)

公有云跨域互通場景下,探測報(bào)文生命周期如下:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/117603.html

相關(guān)文章

  • 雷鋒網(wǎng):破除計(jì)算中心化,UCloud的游戲新規(guī)則

    摘要:目前,的全棧邊緣計(jì)算產(chǎn)品包括虛擬機(jī)安全容器和裸金屬。契機(jī)之下,雷鋒網(wǎng)對話了高級產(chǎn)品負(fù)責(zé)人曾凱源,聽他闡述的邊緣計(jì)算布局戰(zhàn)略打法做與不做。曾凱源表示,邊緣計(jì)算含在戰(zhàn)略中,提供的是基礎(chǔ)計(jì)算能力。云廠商推進(jìn)邊緣計(jì)算,已成有趣共識邊緣計(jì)算的概念自2017年起就以摧枯拉朽之勢裹挾著技術(shù)人和投資人追捧,還曾一度引發(fā)股市熱炒和瘋狂套現(xiàn),漸漸形成與云計(jì)算分庭抗禮的格局,此后國內(nèi)一大批邊緣計(jì)算產(chǎn)業(yè)聯(lián)盟破土而出...

    Tecode 評論0 收藏0
  • 無線網(wǎng)絡(luò)技術(shù)學(xué)習(xí)總結(jié)

    摘要:通過通信線路連入通信子網(wǎng)終端是用戶訪問網(wǎng)絡(luò)的界面網(wǎng)絡(luò)操作系統(tǒng)是相對于主機(jī)操作系統(tǒng)而言的。接收方使用同一擴(kuò)頻碼進(jìn)行擴(kuò)解。 目錄 一、計(jì)算機(jī)網(wǎng)絡(luò) 1.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)概述 2.計(jì)算機(jī)網(wǎng)絡(luò)分類 3.無線網(wǎng)絡(luò)分類 二、無線通信和網(wǎng)絡(luò)仿真技術(shù)基礎(chǔ) 1.基本概念 2.調(diào)制 (1)、概述 (2)、常用方式 ...

    animabear 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<