劉敏
摘 ?要:隨著校園網(wǎng)網(wǎng)絡(luò)應(yīng)用的不斷增長,網(wǎng)絡(luò)中的流量監(jiān)控、故障排查、風(fēng)險預(yù)警等問題面臨巨大挑戰(zhàn)。在運用SDN技術(shù)對南向基礎(chǔ)網(wǎng)絡(luò)進行自動化部署,對北向構(gòu)建校園網(wǎng)網(wǎng)絡(luò)管理節(jié)點的基礎(chǔ)上,利用gPRC(Google遠程過程調(diào)用)、ERSPAN(封裝遠程端口鏡像)技術(shù)設(shè)計了校園網(wǎng)絡(luò)運維平臺,對網(wǎng)絡(luò)中的物理鏈路、TCP質(zhì)量、業(yè)務(wù)進行分析,提高了校園網(wǎng)絡(luò)的運維效率,對后繼智能化的網(wǎng)絡(luò)運維研究具有借鑒意義。
關(guān)鍵詞:網(wǎng)絡(luò)運維;軟件定義網(wǎng)絡(luò);gRPC;ERSPAN
中圖分類號:TP393 ? ? 文獻標識碼:A
Abstract: With the increasing campus network applications, network traffic monitoring, troubleshooting, risk warning and other issues are facing huge challenges. In this research, SDN (Software Defined Network) technology is used to deploy the basic network automation in the south, and network management node is constructed in the north. On this basis, this paper proposes to design a campus network operation and maintenance platform by using gPRC (Google Remote Procedure Call) and ERSPAN (Encapsulated Remote Port Mirroring) technology. Physical links, TCP (Transmission Control Protocol) quality, and business of the network are analyzed. This platform improves the efficiency of campus network operation and maintenance, and it has provided a reference for subsequent intelligent network operation and maintenance research.
Keywords: network operation and maintenance; software defined network; gRPC; ERSPAN
1 ? 引言(Introduction)
隨著云計算、人工智能、虛擬現(xiàn)實等各種技術(shù)在校園網(wǎng)中的應(yīng)用,網(wǎng)絡(luò)規(guī)模、數(shù)據(jù)流量快速增長。傳統(tǒng)的網(wǎng)絡(luò)運維方式越來越難以滿足校園網(wǎng)絡(luò)的應(yīng)用需求[1]。
(1)網(wǎng)絡(luò)越來越復(fù)雜化,采用傳統(tǒng)運維模式帶來的運維成本越來越高。由于校園網(wǎng)信息化程度不斷深入,以及信息化業(yè)務(wù)不斷上線,不同網(wǎng)絡(luò)需求使得網(wǎng)絡(luò)傳統(tǒng)運維方式面臨前所未有的挑戰(zhàn),難度越來越高。
(2)傳統(tǒng)的運維系統(tǒng)大部分是故障驅(qū)動,缺少有效的干預(yù)手段及事前預(yù)測。在傳統(tǒng)運維系統(tǒng)中,只能在網(wǎng)絡(luò)出現(xiàn)故障后,采用人工登記報修、電話或口頭等方式告知運維人員,運維人員在接到通知后,通過電話溝通、遠程操作等方法查找故障原因,提出可能的解決方案,故障排除時間長、效率低。
(3)傳統(tǒng)的運維系統(tǒng)是分鐘級數(shù)據(jù)采集,無法實現(xiàn)實時、精準的數(shù)據(jù)采集。傳統(tǒng)TCP/IP技術(shù)運維采用SNMP協(xié)議,從路由器、服務(wù)器、交換機等被管設(shè)備獲取設(shè)備運行的數(shù)據(jù),SNMP輪詢的方式必須要在一定的間隔時間內(nèi)不斷地進行輪詢,間隔時間太短增大了網(wǎng)絡(luò)通信擁塞的風(fēng)險,一般在分鐘級的時間內(nèi)采集和統(tǒng)計數(shù)據(jù),同時MIB II中大量的變量是只讀變量,可寫變量太少。
(4)傳統(tǒng)的運維系統(tǒng)重點在于網(wǎng)絡(luò)監(jiān)控,缺乏網(wǎng)絡(luò)關(guān)聯(lián)分析。網(wǎng)絡(luò)監(jiān)控工具將校園網(wǎng)整張網(wǎng)的布局和設(shè)備在網(wǎng)絡(luò)監(jiān)平臺中呈現(xiàn)出來,圖形化顯示當前網(wǎng)絡(luò)的連通性和整張網(wǎng)的網(wǎng)絡(luò)設(shè)備可達情況,無法得到網(wǎng)絡(luò)設(shè)備網(wǎng)絡(luò)質(zhì)量的詳細信息。
針對校園網(wǎng)中所面臨的運維現(xiàn)狀,基于SDN網(wǎng)絡(luò)架構(gòu),采用ERSPAN對流量進行實時采集,并進行流量分析,通過推模式主動把設(shè)備數(shù)據(jù)信息上送采集器,從而實現(xiàn)比傳統(tǒng)SNMP查詢方式更實時、更高效的數(shù)據(jù)采集性能。
2 ? 相關(guān)工作(Related work)
2.1 ? SDN(軟件定義網(wǎng)絡(luò))
SDN技術(shù)得到了很多開源組織、創(chuàng)業(yè)廠商、設(shè)備制造商和運營商的認可和推崇,SDN讓網(wǎng)絡(luò)運作簡化的思想是當今眾多的網(wǎng)絡(luò)平臺所共同認可的。其核心思想是通過標準化技術(shù)實現(xiàn)控制平面與轉(zhuǎn)發(fā)平面分離從而簡化網(wǎng)絡(luò)管理,采用高性能API Gateway提供符合RESTful標準的北向API,向應(yīng)用層開放使網(wǎng)絡(luò)的轉(zhuǎn)發(fā)功能具有可編程性,南向API支持NetConf、OpenFlow、BGP-LS、PCEP、SNMP等接口標準,實現(xiàn)對網(wǎng)絡(luò)流量靈活化、集中化、細粒度的控制,從而為網(wǎng)絡(luò)的集中管理和應(yīng)用創(chuàng)新提供了良好的平臺[2-4]。
2.2 ? gRPC、ERSPAN
gRPC(Google Remote Procedure Call, Google遠程過程調(diào)用)[5]是由Google發(fā)布的基于HTTP 2.0傳輸層協(xié)議承載的高性能開源軟件框架,目標是讓遠程服務(wù)調(diào)用更加簡單、透明。RPC框架負責(zé)屏蔽底層的傳輸方式(TCP或者UDP)、序列化方式(XML/JSON/二進制)和通信細節(jié),遵從server/client模型,客戶端可以像調(diào)用本地函數(shù)一樣調(diào)用server端提供的接口;提供了支持多種編程語言的、對網(wǎng)絡(luò)設(shè)備進行配置和管理的方法,通信雙方可以基于該軟件框架進行二次開發(fā)。
ERSPAN(Encapsulated Remote Switch Port Analyzer, 封裝遠程端口鏡像)[6]是一種三層遠程端口鏡像技術(shù),通過復(fù)制指定端口、VLAN或CPU的報文,并通過GRE隧道將復(fù)制的報文發(fā)送到遠程數(shù)據(jù)監(jiān)測設(shè)備,使用戶可以利用數(shù)據(jù)監(jiān)測設(shè)備分析這些報文(稱為鏡像報文),以進行網(wǎng)絡(luò)監(jiān)控和故障排除。
3 ?校園網(wǎng)絡(luò)運維平臺研究與設(shè)計(Research and design of campus network operation and maintenance platform)
3.1 ? 運維平臺系統(tǒng)架構(gòu)
如圖1所示,整個系統(tǒng)分為:(1)向北開放的API,為運維應(yīng)用以及其他上層應(yīng)用提供分析能力;(2)數(shù)據(jù)分析平臺,采用Spark、Flink等分布式計算引擎以及AI人工智能模型庫完成數(shù)據(jù)在線/離線分析任務(wù);(3)基于大數(shù)據(jù)的數(shù)據(jù)采集器、分布式部署架構(gòu)實現(xiàn)數(shù)據(jù)采集能力的橫向擴展,以滿足不同網(wǎng)絡(luò)規(guī)模的數(shù)據(jù)采集需求;(4)通過SDN控制器內(nèi)的NETCONF等方式向設(shè)備下發(fā)配置,實現(xiàn)對網(wǎng)絡(luò)設(shè)備的管理,同時控制器可以根據(jù)分析器提供的分析數(shù)據(jù),為網(wǎng)絡(luò)設(shè)備下發(fā)配置,對網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)行為進行調(diào)整,也可以控制網(wǎng)絡(luò)設(shè)備有選擇地對數(shù)據(jù)進行采樣和上報。
3.2 ? 基于EVPN(以太網(wǎng)虛擬專用網(wǎng)絡(luò))的SDN校園網(wǎng)絡(luò)運行機制
利用EVPN技術(shù)實現(xiàn)SDN在校園網(wǎng)絡(luò)中的數(shù)據(jù)控制平面和數(shù)據(jù)轉(zhuǎn)發(fā)平面分離[7]。數(shù)據(jù)控制與轉(zhuǎn)發(fā)分離機制新增五種BGP EVPN消息類型EVPN NLRI(Network Layer Reachability Information, 網(wǎng)絡(luò)層可達性信息):Ethernet Auto-discovery Route(RT-1)、MAC/IP Advertisement Route(RT-2)、Inclusive Multicast Ethernet Tag Route(RT-3)、Ethernet Segment Route(RT-4)、IP Prefix Advertisement Route(RT-5)。在數(shù)據(jù)控制面引入RR(路由反射器),核心設(shè)備與分支設(shè)備協(xié)商ibgp evpn鄰居,所有的分支設(shè)備都只和RR建立BGP對等體關(guān)系,RR發(fā)現(xiàn)并接收分支設(shè)備發(fā)起的RT-2或者RT-3的路由通告,連接后形成Client列表,分支設(shè)備將收到的路由信息反射給其他所有的分支設(shè)備,實現(xiàn)控制面的路由轉(zhuǎn)發(fā)。在數(shù)據(jù)轉(zhuǎn)發(fā)面,依靠RT-3建立BUM廣播表,每個分支設(shè)備都通告自己的VNI(虛擬網(wǎng)絡(luò)實例)信息,這樣,每個分支設(shè)備都有全網(wǎng)的VXLAN信息以及VXLAN和下一跳的關(guān)系。分支設(shè)備會和那些跟自己有相同VXLAN的下一跳自動建立VXLAN隧道,并將此VXLAN隧道跟這些相同的VXLAN關(guān)聯(lián),對每個VXLAN而言,所有這些建立并關(guān)聯(lián)的VXLAN隧道就構(gòu)成了BUM廣播,形成了二層廣播域隧道,實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)[8]。
3.3 ? 校園運維系統(tǒng)數(shù)據(jù)采集機制
基礎(chǔ)網(wǎng)絡(luò)數(shù)據(jù)采集機制如圖2所示。
gRPC是一次訂閱,多次推送,采集設(shè)備管理、接口管理、IP轉(zhuǎn)發(fā)、LLDP、系統(tǒng)日志等業(yè)務(wù)數(shù)據(jù),采集器與設(shè)備之間的數(shù)據(jù)鏈路采用TCP協(xié)議,使用TLS協(xié)議對通道加密和進行雙向證書認證,進行安全通信。采集器與設(shè)備進行安全通信后,應(yīng)用HTTP 2.0協(xié)議使設(shè)備指定服務(wù)端口等待采集器發(fā)起的連接請求,采集器執(zhí)行相關(guān)程序登錄設(shè)備并調(diào)用proto文件提供的gRPC方法向設(shè)備下發(fā)配置和發(fā)送訂閱需要采集的接口流量統(tǒng)計、CPU、告警等數(shù)據(jù)信息的請求消息,設(shè)備以Protocol Buffer編碼等形式回復(fù)應(yīng)答消息。
ERSPAN是對原始基于字節(jié)流的傳輸層流量報文進行鏡像,可以對TCP報文轉(zhuǎn)發(fā)路徑上的下發(fā)流匹配規(guī)則,將TCP報文鏡像到采集器,實現(xiàn)對應(yīng)用流的流量統(tǒng)計、路徑還原、延時計算、應(yīng)用識別等分析處理。
4 ?基于SDN校園網(wǎng)絡(luò)運維的實現(xiàn)(Implementation of campus network operation and maintenance based on SDN)
4.1 ? gRPC遠程監(jiān)控
gRPC采用客戶端/服務(wù)器模型,使用HTTP 2.0協(xié)議傳輸報文,實現(xiàn)設(shè)備自動讀取各種統(tǒng)計信息(CPU、內(nèi)存、接口等),根據(jù)采集器的訂閱要求將采集的信息通過gRPC協(xié)議上報給采集器,實現(xiàn)更加實時、高效的數(shù)據(jù)采集功能。gRPC數(shù)據(jù)采集如圖3所示。
gRPC的工作機制:(1)服務(wù)器通過監(jiān)聽指定服務(wù)端口來等待客戶端的連接請求。(2)用戶通過執(zhí)行客戶端程序登錄服務(wù)器。(3)客戶端調(diào)用proto文件提供的gRPC方法發(fā)送請求消息。(4)服務(wù)器回復(fù)應(yīng)答消息。
設(shè)備數(shù)據(jù)采集模式:設(shè)備作為gRPC服務(wù)器,采集器作為gRPC客戶端模式。
(1)公共proto文件。公共RPC方法,其內(nèi)容和含義如下:
syntax ="proto2";
package grpc_service;
message GetJsonReply { //Get方法應(yīng)答結(jié)果
required string result = 1;
}
message SubscribeReply { //訂閱結(jié)果
required string result = 1;
}
message ConfigReply { //配置結(jié)果
required string result = 1;
}
message ReportEvent { //訂閱事件結(jié)果定義
required string token_id = 1; // token_id
required string stream_name = 2; //訂閱的事件流名稱
required string event_name = 3; //訂閱的事件名
required string json_text = 4; //訂閱結(jié)果json字符串
}
message GetReportRequest{ //獲取事件訂閱結(jié)果請求
required string token_id = 1; //成功后的token_id
}
message SubscribeRequest { //定義事件流名稱
required string stream_name = 1;
}
service GrpcService { //定義gRPC方法
rpc SubscribeByStreamName (SubscribeRequest) returns (SubscribeReply) {} //訂閱事件流
rpc GetEventReport (GetReportRequest) returns (stream ReportEvent) {} //獲取事件結(jié)果
}
(2)業(yè)務(wù)模塊proto文件。支持Device、Ifmgr、IPFW、LLDP、Syslog等多個業(yè)務(wù)模塊的proto文件,描述具體的業(yè)務(wù)數(shù)據(jù)格式。Device模塊數(shù)據(jù)的RPC方法,其內(nèi)容和含義如下:
syntax = "proto2";
import "grpc_service.proto";
package device;
message DeviceBase { //獲取設(shè)備基本信息結(jié)構(gòu)定義
optional string HostName = 1; //設(shè)備的名稱
optional string HostOid = 2; //sysoid
optional uint32 MaxChassisNum = 3; //最大框數(shù)
optional uint32 MaxSlotNum = 4; //最大slot數(shù)
optional string HostDescription = 5; //設(shè)備描述信息
}
message DevicePhysicalEntities { //設(shè)備物理實體信息
message Entity {
optional uint32 PhysicalIndex = 1; //實體索引
optional string VendorType = 2; //vendor類型
optional uint32 EntityClass = 3;//實體類型
optional string SoftwareRev = 4; //軟件版本
optional string SerialNumber = 5; //序列號
optional string Model = 6; //模式
}
repeated Entity entity = 1;
}
service DeviceService { //定義的RPC方法
rpc GetJsonDeviceBase(DeviceBase) returns (grpc_service.GetJsonReply) {} //獲取設(shè)備基本信息
rpc GetJsonDevicePhysicalEntities(DevicePhysicalEntities) returns
(grpc_service.GetJsonReply) {}
} //獲取設(shè)備實體信息
4.2 ? ERSPAN流分析
(1)將鏡像報文封裝為ERSPAN Type II的GRE報文。GRE報文如圖4所示。
(2)TCP會話傳輸?shù)臄?shù)據(jù)流大?。?/p>
①請求方向流量:請求方向的FIN-ACK序列號和SYN序列號。
②應(yīng)答方向流量:應(yīng)答方向的FIN-ACK序列號和SYN-ACK序列號。
(3)TCP報文在網(wǎng)絡(luò)設(shè)備中進行三層轉(zhuǎn)發(fā)時,按照IP首部的TTL字段會逐跳遞減原理,先內(nèi)層匹配內(nèi)容,然后排序內(nèi)外層報文的TTL,再匹配識別完成路徑還原;由采集器對每份數(shù)據(jù)流打時間戳,并根據(jù)時間戳信息計算TCP在設(shè)備間的逐跳傳輸延時;對TCP內(nèi)層報文的五元組信息,以及應(yīng)用層的主機號和端口信息進行應(yīng)用識別。
5 ?實驗結(jié)果與分析(Experimental results and analysis)
5.1 ? gRPC配置
(1)配置Device(gRPC服務(wù)器)
開啟gRPC功能。
[Device]grpc enable
創(chuàng)建本地用戶test,配置該用戶的密碼,授權(quán)用戶角色為network-admin,可以使用的服務(wù)類型為HTTPS服務(wù)。
[Device]local-user test
[Device-luser-manage-test]password simple 123456TESTplat&!
[Device-luser-manage-test]authorization-attribute user-role network-admin
[Device-luser-manage-test]service-type https
[Device-luser-manage-test]quit
(2)配置gRPC客戶端
①在gRPC客戶端安裝gRPC環(huán)境。
②獲取.proto文件(該文件中已寫入訂閱LLDP事件的配置),并通過protocol buffers編譯器生成特定語言(例如Java、Python、C/C++、Go)的執(zhí)行代碼。
③編寫客戶端程序,調(diào)用上一步生成的代碼。
④執(zhí)行客戶端程序,登錄gRPC服務(wù)器。
5.2 ? ERSPAN配置
(1)配置 Device A
# 配置OSPF協(xié)議。
[DeviceA] ospf 1
[DeviceA-ospf-1] area 0
[DeviceA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
# 創(chuàng)建本地鏡像組1。
[DeviceA] mirroring-group 1 local
# 配置本地鏡像組1的源端口為GigabitEthernet1/0/1,
目的端口為GigabitEthernet1/0/2,鏡像報文的目的IP地址為40.1.1.2,源IP地址為20.1.1.1。
[DeviceA] mirroring-group 1 mirroring-port gigabitethernet 1/0/1 both
[DeviceA] mirroring-group 1 monitor-port gigabitethernet 1/0/2 destination-ip 40.1.1.2 source-ip 20.1.1.1
(2)配置Device B
# 配置OSPF協(xié)議。
[DeviceB] ospf 1
[DeviceB-ospf-1] area 0
[DeviceB-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255
(3)驗證配置
# 顯示Device A上所有鏡像組的配置信息。
[DeviceA] display mirroring-group all
Mirroring group 1:
Type: Local
Status: Active
Mirroring port:
GigabitEthernet1/0/1 Both
Monitor port: GigabitEthernet1/0/2
Encapsulation: Destination IP address 40.1.1.2
Source IP address 20.1.1.1
Destination MAC address 000f-e241-5e5b
5.3 ? 分析
gRPC采集數(shù)據(jù)包括網(wǎng)絡(luò)設(shè)備的實時資源信息、RDMA統(tǒng)計信息、RDMA告警信息等,如表1所示。
ERSPAN技術(shù)采集網(wǎng)絡(luò)TCP特征報文,上傳數(shù)據(jù)采集分析器。分析器通過TCP流分析技術(shù),實現(xiàn)如下功能分析:
(1)分析沿途交換機上報的TCP鏡像報文可獲得應(yīng)用流量轉(zhuǎn)發(fā)路徑;分析采集TCP報文時間戳可獲得應(yīng)用建立TCP連接時延及沿途交換機轉(zhuǎn)發(fā)時延,定位應(yīng)用體驗差是因為網(wǎng)絡(luò)慢還是應(yīng)用本身的問題;分析TCP報文頭可獲取應(yīng)用TCP連接持續(xù)時間及流量大小。(2)根據(jù)TCP流生命周期的交互協(xié)議報文,結(jié)合大數(shù)據(jù)分析算法,實現(xiàn)TCP連接異常檢測,如TCP連接異常、TTL會話異常。ERSPAN采集到的部分數(shù)據(jù)分析如圖5所示。
6 ? 結(jié)論(Conclusion)
SDN可以通過控制器下發(fā)配置使得網(wǎng)絡(luò)運維更為方便。本文致力于通過gRPC、ERSPAN技術(shù)持續(xù)采集設(shè)備數(shù)據(jù)、日志數(shù)據(jù)、流量數(shù)據(jù)、拓撲數(shù)據(jù)等,通過對數(shù)據(jù)的統(tǒng)計分析,實時洞察整網(wǎng)狀態(tài),結(jié)合SDN控制器的網(wǎng)絡(luò)運行策略,得出網(wǎng)絡(luò)運行過程中產(chǎn)生的問題,快速定位網(wǎng)絡(luò)故障位置,方便網(wǎng)絡(luò)運維。本文的設(shè)計研究也存在一些不足之處:并未結(jié)合人工智能、大數(shù)據(jù)技術(shù)進行研究,通過模型,利用歷史數(shù)據(jù)訓(xùn)練,預(yù)防網(wǎng)絡(luò)故障的發(fā)生;也未對通過網(wǎng)絡(luò)發(fā)現(xiàn)的問題自動修改SDN控制器的網(wǎng)絡(luò)配置策略,自動解決網(wǎng)絡(luò)問題進行研究。
參考文獻(References)
[1] 王關(guān)祥.高校網(wǎng)絡(luò)運行管理與安全維護研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2019(10):92-93.
[2] MCKEOWN N, ANDERSON T, BALARISHNAN H, et al.?? ? Openflow: Enabling innovation in campus networks[J]. ACMSIGCOMM Computer Communication Review, 2008, 38(2):69-74.
[3] 張少軍,蘭巨龍,胡宇翔,等.軟件定義網(wǎng)絡(luò)控制平面可擴展性研究進展[J].軟件學(xué)報,2018,29(01):160-175.
[4] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報,2013,24(5):1078-1097.
[5] 張鳳軍,羅廣軍,邱帆,等.基于SDN的分組傳送網(wǎng)架構(gòu)設(shè)計及實現(xiàn)[J].中國電子科學(xué)研究院學(xué)報,2020,15(07):665-671.
[6] 潘竹虹,許卓斌.信息采集網(wǎng)絡(luò)支撐系統(tǒng)的設(shè)計與實現(xiàn)[J].廈門大學(xué)學(xué)報(自然科學(xué)版),2016,55(03):426-433.
[7] 趙俊,包叢笑,李星.基于OpenFlow協(xié)議的覆蓋網(wǎng)絡(luò)路由器設(shè)計[J].清華大學(xué)學(xué)報(自然科學(xué)版),2018,58(02):164-169.
[8] ZHAO Z F, HONG F, LI R P. SDN based VxLAN optimization in cloud computing networks[J]. IEEE Access, 2017(5):23312-23319.
作者簡介:
劉 ? 敏(1977-),男,碩士,講師.研究領(lǐng)域:網(wǎng)絡(luò)技術(shù),大數(shù)據(jù)技術(shù).