BigBrother:UCloud全鏈路大規(guī)模網(wǎng)絡(luò)連通性檢測(cè)系統(tǒng)詳解-創(chuàng)新互聯(lián)

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

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到浠水網(wǎng)站設(shè)計(jì)與浠水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋浠水地區(qū)。

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

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

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

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

檢測(cè)效率低下,無(wú)論是 ssh、packet out,還是 tcpdump 都無(wú)法支持大規(guī)模的快速檢查;
適應(yīng)的場(chǎng)景有限,對(duì)于部分 dpdk、p4 網(wǎng)關(guān)類(lèi)產(chǎn)品,無(wú)法通過(guò) tcpdump 進(jìn)行抓包判斷。
因此做一款支持全鏈路大規(guī)模的連通性檢測(cè)系統(tǒng)是非常有必要的,我們的目標(biāo)就是讓運(yùn)維、NOC 的同學(xué)能夠迅速發(fā)現(xiàn)并解決網(wǎng)絡(luò)不通的問(wèn)題,同時(shí)為我們的虛擬網(wǎng)絡(luò)服務(wù)變更保駕護(hù)航。

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

BigBrother(下文簡(jiǎn)稱(chēng) BB)一詞源自喬治奧威爾的小說(shuō)《1984》,將此檢測(cè)系統(tǒng)命名為 BigBrother 寓意就是可以將全網(wǎng)資源連通情況都實(shí)時(shí)監(jiān)控起來(lái)。整個(gè) BB 檢測(cè)系統(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 的原理前,我們先來(lái)看兩個(gè)概念。在我們的虛擬網(wǎng)絡(luò)中,每個(gè)實(shí)例(uhost、umem、udb 等)都是通過(guò)接入點(diǎn)來(lái)接入虛擬網(wǎng)絡(luò),接入點(diǎn)由兩部分組成:

Entrypoint: inbound/outbound 報(bào)文都是經(jīng)由 Entrypoint 進(jìn)行接受和發(fā)送的。
Endpoint:連接實(shí)例的端點(diǎn),Endpoint 為最接近實(shí)例的網(wǎng)元。
例如在公有云場(chǎng)景中,entrypoint 和 endpoint 都是 openvswitch,而在物理云場(chǎng)景中,entrypoint 是我們的物理云轉(zhuǎn)發(fā)網(wǎng)關(guān)(vpcgw、hybridgw),endpoint 則是物理云主機(jī)的上聯(lián) ToR。

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

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

2 、檢測(cè)流程

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

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

以橙色流向部分為例(SRC->DST):1)BigBrother 模擬 DST 向 Endpoint 發(fā)送探測(cè)報(bào)文;2)SRC 端 Entrypoint 收到該探測(cè)報(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。

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

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

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

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

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

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

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

染色信息與主機(jī)、OS 無(wú)關(guān);
ovs2.3、ovs2.6 版本(現(xiàn)網(wǎng)主要版本)可以識(shí)別并處理此種染色信息。
因此我們?cè)敿?xì)比較了如下兩種候選方案。

1)icmp + tos 方案

第一種方案以 icmp 報(bào)文為載體,使用 tos 對(duì) 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()
對(duì)于 hook icmp_request 的 flow 可以簡(jiǎn)化為如下邏輯:action 部分主要由三部分組成:

Send_BB () 將報(bào)文鏡像給 BB;
Learn () 通過(guò) 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ā)操作。
對(duì)于 hook icmp_reply 的 flow 可以簡(jiǎn)化為如下邏輯:

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 保存下來(lái);?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 來(lái)進(jìn)行支持,為了使 ERSPAN 規(guī)則可以鏡像 tos 染色報(bào)文,需要 GRE 外層 Ip Header 中的 tos 繼承 overlay Ip Header 中標(biāo)記的 tos,所以需要全網(wǎng)對(duì) GRE 隧道設(shè)置繼承內(nèi)層 tos 的隧道屬性,執(zhí)行命令如下:

ovs-vsctl set in <gre_iface_name> options:tos=inherit
此種方案雖然可以實(shí)現(xiàn)染色及鏡像的功能,但是 hook 點(diǎn)預(yù)埋的 flow 過(guò)于復(fù)雜,不容易維護(hù),最關(guān)鍵的一點(diǎn)在于,混合云網(wǎng)絡(luò)中,該方案無(wú)法支持 learn flow,所以無(wú)法對(duì)反向的流量進(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()
對(duì)于 hook tcp_request 的 flow 可以簡(jiǎn)化為如下邏輯:

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

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

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

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

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

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

物理云

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

公有云 —> 物理云

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

1)BigBrother 向公有云宿主機(jī)發(fā)送探測(cè)報(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。

物理云 —> 公有云

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

1)BigBrother 向 vpcgw 發(fā)送探測(cè)報(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)

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

本地域 —> 地域 B

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

1)BigBrother 向本域主機(jī)發(fā)送探測(cè)報(bào)文

2)ovs 收到報(bào)文后鏡像至 BigBrother3)ovs 將報(bào)文送至實(shí)例 4)實(shí)例回應(yīng)報(bào)文 5)ovs 將回應(yīng)報(bào)文鏡像至 BigBrother6)ovs 將報(bào)文送至 sdngw7)sdngw 將報(bào)文鏡像至 BigBrother

地域 B—> 本地域

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

1)BigBrother 向本域 sdngw 發(fā)送探測(cè)報(bào)文

2)sdngw 收到報(bào)文后鏡像至 BigBrother3)sdngw 將報(bào)文送至對(duì)端 sdngw 進(jìn)行轉(zhuǎn)發(fā) 4)本域 sdngw 收到對(duì)端回應(yīng)報(bào)文 5)sdngw 將回應(yīng)報(bào)文鏡像至 BigBrother6)sdngw 將報(bào)文送至本地域宿主機(jī) 7)ovs 將報(bào)文鏡像至 BigBrother

三、Bigbrother 服務(wù)框架

整個(gè) BB 檢測(cè)系統(tǒng)由若干個(gè)組件配合完成,minitrue 用于將用戶傳入的參數(shù)轉(zhuǎn)化為注包的范圍,telescreen 用于構(gòu)造報(bào)文及收發(fā)報(bào)文。

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

1、服務(wù)框架圖

API: FE 服務(wù)對(duì)外提供的 HTTP 接口,用于創(chuàng)建任務(wù)和查詢?nèi)蝿?wù)進(jìn)度;

Logic:業(yè)務(wù)處理層,?于分析?參并將其轉(zhuǎn)換為若干源?主機(jī)對(duì)放入 Disruptor 中;Disruptor:此組件為開(kāi)源高性能隊(duì)列;Sender:將 Disruptor 中 pop 的數(shù)據(jù)組裝成 GRE packet,并發(fā)送給 EntryPoint;Receiver:接收從 EndPoint 上報(bào)的 GRE packet;Analysis:將接收的報(bào)?存入內(nèi)存中,同時(shí)對(duì)報(bào)文進(jìn)?分析。

2、Task 的執(zhí)行及結(jié)果分析

1)task

上文中我們?cè)敿?xì)介紹了 BB 探測(cè)報(bào)文的設(shè)計(jì)和生命周期,但是我們還有一個(gè)問(wèn)題需要解決:提高 BB 的并發(fā)能力。按照上文的介紹,每次 BB 只能執(zhí)行一次探測(cè),順序執(zhí)行才能保證檢測(cè)結(jié)果的準(zhǔn)確性,所以我們?cè)O(shè)計(jì)利用 TCP 報(bào)頭中的序列號(hào)來(lái)提高并發(fā)。

以下是一個(gè) TCP 報(bào)文的首部結(jié)構(gòu):

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

其中 32 位的 Seq 序列號(hào)就是我們要利用的,在 BB 探測(cè)過(guò)程中每個(gè) Seq 序列號(hào)都唯?標(biāo)識(shí)?個(gè) pair 對(duì),然后我們將 Seq 序列號(hào)分成了兩部分:

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

Task_id:?于標(biāo)識(shí)一個(gè) Task,由于僅有 5 位,所以每次同時(shí)進(jìn)?的 Task 不能超過(guò) 32 個(gè) ;
Pair_id:用于標(biāo)識(shí)在一個(gè) Task 內(nèi),待檢測(cè)的一個(gè) pair 對(duì)。
因此,我們可以將 BB 并發(fā)的任務(wù)數(shù)提高到了 32 個(gè),而每個(gè)任務(wù)支持大的檢測(cè) pair 對(duì)數(shù)可以達(dá)到 2 的 27 次方,相當(dāng)于每個(gè)任務(wù)都可以支持一個(gè)容量為 10000 臺(tái)云主機(jī)的 VPC 進(jìn)行 Full Mesh 檢測(cè),足以覆蓋現(xiàn)有用戶的網(wǎng)絡(luò)規(guī)模。

2)task 的執(zhí)行

當(dāng)運(yùn)維同學(xué)在 mafia(任務(wù)控制臺(tái))上點(diǎn)擊創(chuàng)建一個(gè) BB task 進(jìn)行連通性檢查時(shí),會(huì)經(jīng)歷以下幾個(gè)過(guò)程:

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

?請(qǐng)求發(fā)送給 minitrue 服務(wù),根據(jù)輸入的參數(shù)來(lái)確定探測(cè)范圍;?minitrue 將計(jì)算得到的探測(cè)范圍以源、目節(jié)點(diǎn)列表的形式發(fā)送給 telescreen 服務(wù);?telescreen 構(gòu)建 Gre 報(bào)文,并放入高性能隊(duì)列中進(jìn)行發(fā)包;同時(shí),telescreen 會(huì)監(jiān)聽(tīng)網(wǎng)卡獲取鏡像報(bào)文回來(lái)的報(bào)文并存入內(nèi)存;?minitrue 的分析程序定時(shí)獲取 telescreen 的收包結(jié)果并進(jìn)行分析;?最后運(yùn)維同學(xué)可以在 mafia 上看到最終的探測(cè)結(jié)果。

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

3)task 的結(jié)果分析

task 執(zhí)行結(jié)束后,運(yùn)維同學(xué)可以在 mafia 查看到最后的檢測(cè)報(bào)告,包括發(fā)送的總 pair 數(shù)、收到的 pair 數(shù)、成功以及失敗的數(shù)量。同時(shí),檢測(cè)失敗的源目詳細(xì)信息也會(huì)展示出來(lái),最終以 bitmap 的方式呈現(xiàn)出來(lái),0 表示沒(méi)有收到報(bào)文,1 表示收到報(bào)文。

我們以下圖的結(jié)果為例,解釋其含義。圖中是檢測(cè) ip pair (10.9.88.160<—>10.8.17.169) 的雙向連通性。

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

我們?cè)倩仡櫹碌诙轮?BigBrother 檢測(cè)的流程圖,首先 BigBrother 會(huì)模擬 10.9.88.160 向 10.8.17.169 的宿主機(jī)上發(fā)送探測(cè)報(bào)文,報(bào)文的內(nèi)容為 <flag=SYN, nw_src=10.9.88.160, nw_dst=10.8.17.169>。如果 10.8.17.169 —>10.9.88.160 單向連通性正常的話,BigBrother 最終會(huì)收到 3 個(gè)報(bào)文:

(1)<flag=SYN, nw_src=10.9.88.160,

nw_dst=10.8.17.169>

(2)<flag=ACK, nw_src=10.8.17.169,

nw_dst=10.9.88.160>

(3)<flag=ACK, nw_src=10.8.17.169,

nw_dst=10.9.88.160>

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

上圖 bitmap 后三位的結(jié)果為 111,表示這 3 個(gè)報(bào)文都收到了,即 10.8.17.169 —>10.9.88.160 單向的連通性正常。

反之亦然,前三位則表示 10.9.88.160 —> 10.8.17.169 單向的連通性情況,結(jié)果為 100,(2)(3) 報(bào)文沒(méi)有收到,即表示 10.9.88.160 —> 10.8.17.169 單向的連通性異常,虛機(jī) 10.9.88.160 沒(méi)有回復(fù)報(bào)文,可以斷定虛機(jī)內(nèi)部異?;蛱摍C(jī)內(nèi)部存在 iptables 規(guī)則將探測(cè)報(bào)文過(guò)濾。

3 、基于活躍 flow 的連通性檢查

上文我們提到,運(yùn)維同學(xué)可以在 mafia 上創(chuàng)建 BB task 來(lái)進(jìn)行連通性的檢查,通過(guò)傳入 mac、子網(wǎng) id、VPC id 來(lái)確定檢測(cè)的范圍,進(jìn)而進(jìn)行全量驗(yàn)證。但是大多數(shù)場(chǎng)景中,我們不需要進(jìn)行全互聯(lián)檢查,這樣不僅浪費(fèi)時(shí)間而且還會(huì)對(duì)控制面造成一定的壓力。我們僅需要針對(duì)指定范圍內(nèi)的活躍 flow 驗(yàn)證連通性即可,所以我們又引入了活躍 flow 檢測(cè)的服務(wù) ——river。river 是虛擬網(wǎng)絡(luò)億級(jí)別活躍流的分析系統(tǒng),借助這個(gè)系統(tǒng) BB 可以拿到用戶的活躍通信源目,類(lèi)似于緩存里的熱點(diǎn)數(shù)據(jù),這樣可以讓 BB 快速精準(zhǔn)驗(yàn)證變更。

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

與上文全量 BB 探測(cè)的區(qū)別在于,minitrue 無(wú)須自己計(jì)算源、目節(jié)點(diǎn)列表,只需指定范圍后向 river 獲取活躍列表,然后通過(guò)常規(guī)的檢測(cè)流程將列表傳送給 telescreen 進(jìn)行發(fā)包即可。

四、投入使用和未來(lái)計(jì)劃

BigBrother 上線后就參與到了資源整合項(xiàng)目中,用于云主機(jī)遷移前后的連通性驗(yàn)證,保證出現(xiàn)異常后可以及時(shí)告警回滾。從 8 月初至今歷時(shí)兩個(gè)月,共遷移 2000 多臺(tái)主機(jī),及時(shí)發(fā)現(xiàn)遷移異常近 10 起。

同時(shí),我們對(duì) BigBrother 后續(xù)版本也有著一定的規(guī)劃,例如:

除了對(duì)連通性的檢測(cè)外,還需要有平均時(shí)延,大時(shí)延對(duì)、丟包率的檢測(cè);
打算基于 BigBrother 構(gòu)建針對(duì)指定用戶的內(nèi)網(wǎng)全天候監(jiān)控。

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:BigBrother:UCloud全鏈路大規(guī)模網(wǎng)絡(luò)連通性檢測(cè)系統(tǒng)詳解-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.muchs.cn/article40/dpjjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、App開(kāi)發(fā)網(wǎng)站收錄、企業(yè)建站、App設(shè)計(jì)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化