劉敏
摘 ?要:隨著校園網(wǎng)網(wǎng)絡應用的不斷增長,網(wǎng)絡中的流量監(jiān)控、故障排查、風險預警等問題面臨巨大挑戰(zhàn)。在運用SDN技術對南向基礎網(wǎng)絡進行自動化部署,對北向構建校園網(wǎng)網(wǎng)絡管理節(jié)點的基礎上,利用gPRC(Google遠程過程調用)、ERSPAN(封裝遠程端口鏡像)技術設計了校園網(wǎng)絡運維平臺,對網(wǎng)絡中的物理鏈路、TCP質量、業(yè)務進行分析,提高了校園網(wǎng)絡的運維效率,對后繼智能化的網(wǎng)絡運維研究具有借鑒意義。
關鍵詞:網(wǎng)絡運維;軟件定義網(wǎng)絡;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)實等各種技術在校園網(wǎng)中的應用,網(wǎng)絡規(guī)模、數(shù)據(jù)流量快速增長。傳統(tǒng)的網(wǎng)絡運維方式越來越難以滿足校園網(wǎng)絡的應用需求[1]。
(1)網(wǎng)絡越來越復雜化,采用傳統(tǒng)運維模式帶來的運維成本越來越高。由于校園網(wǎng)信息化程度不斷深入,以及信息化業(yè)務不斷上線,不同網(wǎng)絡需求使得網(wǎng)絡傳統(tǒng)運維方式面臨前所未有的挑戰(zhàn),難度越來越高。
(2)傳統(tǒng)的運維系統(tǒng)大部分是故障驅動,缺少有效的干預手段及事前預測。在傳統(tǒng)運維系統(tǒng)中,只能在網(wǎng)絡出現(xiàn)故障后,采用人工登記報修、電話或口頭等方式告知運維人員,運維人員在接到通知后,通過電話溝通、遠程操作等方法查找故障原因,提出可能的解決方案,故障排除時間長、效率低。
(3)傳統(tǒng)的運維系統(tǒng)是分鐘級數(shù)據(jù)采集,無法實現(xiàn)實時、精準的數(shù)據(jù)采集。傳統(tǒng)TCP/IP技術運維采用SNMP協(xié)議,從路由器、服務器、交換機等被管設備獲取設備運行的數(shù)據(jù),SNMP輪詢的方式必須要在一定的間隔時間內不斷地進行輪詢,間隔時間太短增大了網(wǎng)絡通信擁塞的風險,一般在分鐘級的時間內采集和統(tǒng)計數(shù)據(jù),同時MIB II中大量的變量是只讀變量,可寫變量太少。
(4)傳統(tǒng)的運維系統(tǒng)重點在于網(wǎng)絡監(jiān)控,缺乏網(wǎng)絡關聯(lián)分析。網(wǎng)絡監(jiān)控工具將校園網(wǎng)整張網(wǎng)的布局和設備在網(wǎng)絡監(jiān)平臺中呈現(xiàn)出來,圖形化顯示當前網(wǎng)絡的連通性和整張網(wǎng)的網(wǎng)絡設備可達情況,無法得到網(wǎng)絡設備網(wǎng)絡質量的詳細信息。
針對校園網(wǎng)中所面臨的運維現(xiàn)狀,基于SDN網(wǎng)絡架構,采用ERSPAN對流量進行實時采集,并進行流量分析,通過推模式主動把設備數(shù)據(jù)信息上送采集器,從而實現(xiàn)比傳統(tǒng)SNMP查詢方式更實時、更高效的數(shù)據(jù)采集性能。
2 ? 相關工作(Related work)
2.1 ? SDN(軟件定義網(wǎng)絡)
SDN技術得到了很多開源組織、創(chuàng)業(yè)廠商、設備制造商和運營商的認可和推崇,SDN讓網(wǎng)絡運作簡化的思想是當今眾多的網(wǎng)絡平臺所共同認可的。其核心思想是通過標準化技術實現(xiàn)控制平面與轉發(fā)平面分離從而簡化網(wǎng)絡管理,采用高性能API Gateway提供符合RESTful標準的北向API,向應用層開放使網(wǎng)絡的轉發(fā)功能具有可編程性,南向API支持NetConf、OpenFlow、BGP-LS、PCEP、SNMP等接口標準,實現(xiàn)對網(wǎng)絡流量靈活化、集中化、細粒度的控制,從而為網(wǎng)絡的集中管理和應用創(chuàng)新提供了良好的平臺[2-4]。
2.2 ? gRPC、ERSPAN
gRPC(Google Remote Procedure Call, Google遠程過程調用)[5]是由Google發(fā)布的基于HTTP 2.0傳輸層協(xié)議承載的高性能開源軟件框架,目標是讓遠程服務調用更加簡單、透明。RPC框架負責屏蔽底層的傳輸方式(TCP或者UDP)、序列化方式(XML/JSON/二進制)和通信細節(jié),遵從server/client模型,客戶端可以像調用本地函數(shù)一樣調用server端提供的接口;提供了支持多種編程語言的、對網(wǎng)絡設備進行配置和管理的方法,通信雙方可以基于該軟件框架進行二次開發(fā)。
ERSPAN(Encapsulated Remote Switch Port Analyzer, 封裝遠程端口鏡像)[6]是一種三層遠程端口鏡像技術,通過復制指定端口、VLAN或CPU的報文,并通過GRE隧道將復制的報文發(fā)送到遠程數(shù)據(jù)監(jiān)測設備,使用戶可以利用數(shù)據(jù)監(jiān)測設備分析這些報文(稱為鏡像報文),以進行網(wǎng)絡監(jiān)控和故障排除。
3 ?校園網(wǎng)絡運維平臺研究與設計(Research and design of campus network operation and maintenance platform)
3.1 ? 運維平臺系統(tǒng)架構
如圖1所示,整個系統(tǒng)分為:(1)向北開放的API,為運維應用以及其他上層應用提供分析能力;(2)數(shù)據(jù)分析平臺,采用Spark、Flink等分布式計算引擎以及AI人工智能模型庫完成數(shù)據(jù)在線/離線分析任務;(3)基于大數(shù)據(jù)的數(shù)據(jù)采集器、分布式部署架構實現(xiàn)數(shù)據(jù)采集能力的橫向擴展,以滿足不同網(wǎng)絡規(guī)模的數(shù)據(jù)采集需求;(4)通過SDN控制器內的NETCONF等方式向設備下發(fā)配置,實現(xiàn)對網(wǎng)絡設備的管理,同時控制器可以根據(jù)分析器提供的分析數(shù)據(jù),為網(wǎng)絡設備下發(fā)配置,對網(wǎng)絡設備的轉發(fā)行為進行調整,也可以控制網(wǎng)絡設備有選擇地對數(shù)據(jù)進行采樣和上報。
3.2 ? 基于EVPN(以太網(wǎng)虛擬專用網(wǎng)絡)的SDN校園網(wǎng)絡運行機制
利用EVPN技術實現(xiàn)SDN在校園網(wǎng)絡中的數(shù)據(jù)控制平面和數(shù)據(jù)轉發(fā)平面分離[7]。數(shù)據(jù)控制與轉發(fā)分離機制新增五種BGP EVPN消息類型EVPN NLRI(Network Layer Reachability Information, 網(wǎng)絡層可達性信息):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(路由反射器),核心設備與分支設備協(xié)商ibgp evpn鄰居,所有的分支設備都只和RR建立BGP對等體關系,RR發(fā)現(xiàn)并接收分支設備發(fā)起的RT-2或者RT-3的路由通告,連接后形成Client列表,分支設備將收到的路由信息反射給其他所有的分支設備,實現(xiàn)控制面的路由轉發(fā)。在數(shù)據(jù)轉發(fā)面,依靠RT-3建立BUM廣播表,每個分支設備都通告自己的VNI(虛擬網(wǎng)絡實例)信息,這樣,每個分支設備都有全網(wǎng)的VXLAN信息以及VXLAN和下一跳的關系。分支設備會和那些跟自己有相同VXLAN的下一跳自動建立VXLAN隧道,并將此VXLAN隧道跟這些相同的VXLAN關聯(lián),對每個VXLAN而言,所有這些建立并關聯(lián)的VXLAN隧道就構成了BUM廣播,形成了二層廣播域隧道,實現(xiàn)數(shù)據(jù)轉發(fā)[8]。
3.3 ? 校園運維系統(tǒng)數(shù)據(jù)采集機制
基礎網(wǎng)絡數(shù)據(jù)采集機制如圖2所示。
gRPC是一次訂閱,多次推送,采集設備管理、接口管理、IP轉發(fā)、LLDP、系統(tǒng)日志等業(yè)務數(shù)據(jù),采集器與設備之間的數(shù)據(jù)鏈路采用TCP協(xié)議,使用TLS協(xié)議對通道加密和進行雙向證書認證,進行安全通信。采集器與設備進行安全通信后,應用HTTP 2.0協(xié)議使設備指定服務端口等待采集器發(fā)起的連接請求,采集器執(zhí)行相關程序登錄設備并調用proto文件提供的gRPC方法向設備下發(fā)配置和發(fā)送訂閱需要采集的接口流量統(tǒng)計、CPU、告警等數(shù)據(jù)信息的請求消息,設備以Protocol Buffer編碼等形式回復應答消息。
ERSPAN是對原始基于字節(jié)流的傳輸層流量報文進行鏡像,可以對TCP報文轉發(fā)路徑上的下發(fā)流匹配規(guī)則,將TCP報文鏡像到采集器,實現(xiàn)對應用流的流量統(tǒng)計、路徑還原、延時計算、應用識別等分析處理。
4 ?基于SDN校園網(wǎng)絡運維的實現(xiàn)(Implementation of campus network operation and maintenance based on SDN)
4.1 ? gRPC遠程監(jiān)控
gRPC采用客戶端/服務器模型,使用HTTP 2.0協(xié)議傳輸報文,實現(xiàn)設備自動讀取各種統(tǒng)計信息(CPU、內存、接口等),根據(jù)采集器的訂閱要求將采集的信息通過gRPC協(xié)議上報給采集器,實現(xiàn)更加實時、高效的數(shù)據(jù)采集功能。gRPC數(shù)據(jù)采集如圖3所示。
gRPC的工作機制:(1)服務器通過監(jiān)聽指定服務端口來等待客戶端的連接請求。(2)用戶通過執(zhí)行客戶端程序登錄服務器。(3)客戶端調用proto文件提供的gRPC方法發(fā)送請求消息。(4)服務器回復應答消息。
設備數(shù)據(jù)采集模式:設備作為gRPC服務器,采集器作為gRPC客戶端模式。
(1)公共proto文件。公共RPC方法,其內容和含義如下:
syntax ="proto2";
package grpc_service;
message GetJsonReply { //Get方法應答結果
required string result = 1;
}
message SubscribeReply { //訂閱結果
required string result = 1;
}
message ConfigReply { //配置結果
required string result = 1;
}
message ReportEvent { //訂閱事件結果定義
required string token_id = 1; // token_id
required string stream_name = 2; //訂閱的事件流名稱
required string event_name = 3; //訂閱的事件名
required string json_text = 4; //訂閱結果json字符串
}
message GetReportRequest{ //獲取事件訂閱結果請求
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) {} //獲取事件結果
}
(2)業(yè)務模塊proto文件。支持Device、Ifmgr、IPFW、LLDP、Syslog等多個業(yè)務模塊的proto文件,描述具體的業(yè)務數(shù)據(jù)格式。Device模塊數(shù)據(jù)的RPC方法,其內容和含義如下:
syntax = "proto2";
import "grpc_service.proto";
package device;
message DeviceBase { //獲取設備基本信息結構定義
optional string HostName = 1; //設備的名稱
optional string HostOid = 2; //sysoid
optional uint32 MaxChassisNum = 3; //最大框數(shù)
optional uint32 MaxSlotNum = 4; //最大slot數(shù)
optional string HostDescription = 5; //設備描述信息
}
message DevicePhysicalEntities { //設備物理實體信息
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) {} //獲取設備基本信息
rpc GetJsonDevicePhysicalEntities(DevicePhysicalEntities) returns
(grpc_service.GetJsonReply) {}
} //獲取設備實體信息
4.2 ? ERSPAN流分析
(1)將鏡像報文封裝為ERSPAN Type II的GRE報文。GRE報文如圖4所示。
(2)TCP會話傳輸?shù)臄?shù)據(jù)流大小:
①請求方向流量:請求方向的FIN-ACK序列號和SYN序列號。
②應答方向流量:應答方向的FIN-ACK序列號和SYN-ACK序列號。
(3)TCP報文在網(wǎng)絡設備中進行三層轉發(fā)時,按照IP首部的TTL字段會逐跳遞減原理,先內層匹配內容,然后排序內外層報文的TTL,再匹配識別完成路徑還原;由采集器對每份數(shù)據(jù)流打時間戳,并根據(jù)時間戳信息計算TCP在設備間的逐跳傳輸延時;對TCP內層報文的五元組信息,以及應用層的主機號和端口信息進行應用識別。
5 ?實驗結果與分析(Experimental results and analysis)
5.1 ? gRPC配置
(1)配置Device(gRPC服務器)
開啟gRPC功能。
[Device]grpc enable
創(chuàng)建本地用戶test,配置該用戶的密碼,授權用戶角色為network-admin,可以使用的服務類型為HTTPS服務。
[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í)行代碼。
③編寫客戶端程序,調用上一步生成的代碼。
④執(zhí)行客戶端程序,登錄gRPC服務器。
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)絡設備的實時資源信息、RDMA統(tǒng)計信息、RDMA告警信息等,如表1所示。
ERSPAN技術采集網(wǎng)絡TCP特征報文,上傳數(shù)據(jù)采集分析器。分析器通過TCP流分析技術,實現(xiàn)如下功能分析:
(1)分析沿途交換機上報的TCP鏡像報文可獲得應用流量轉發(fā)路徑;分析采集TCP報文時間戳可獲得應用建立TCP連接時延及沿途交換機轉發(fā)時延,定位應用體驗差是因為網(wǎng)絡慢還是應用本身的問題;分析TCP報文頭可獲取應用TCP連接持續(xù)時間及流量大小。(2)根據(jù)TCP流生命周期的交互協(xié)議報文,結合大數(shù)據(jù)分析算法,實現(xiàn)TCP連接異常檢測,如TCP連接異常、TTL會話異常。ERSPAN采集到的部分數(shù)據(jù)分析如圖5所示。
6 ? 結論(Conclusion)
SDN可以通過控制器下發(fā)配置使得網(wǎng)絡運維更為方便。本文致力于通過gRPC、ERSPAN技術持續(xù)采集設備數(shù)據(jù)、日志數(shù)據(jù)、流量數(shù)據(jù)、拓撲數(shù)據(jù)等,通過對數(shù)據(jù)的統(tǒng)計分析,實時洞察整網(wǎng)狀態(tài),結合SDN控制器的網(wǎng)絡運行策略,得出網(wǎng)絡運行過程中產(chǎn)生的問題,快速定位網(wǎng)絡故障位置,方便網(wǎng)絡運維。本文的設計研究也存在一些不足之處:并未結合人工智能、大數(shù)據(jù)技術進行研究,通過模型,利用歷史數(shù)據(jù)訓練,預防網(wǎng)絡故障的發(fā)生;也未對通過網(wǎng)絡發(fā)現(xiàn)的問題自動修改SDN控制器的網(wǎng)絡配置策略,自動解決網(wǎng)絡問題進行研究。
參考文獻(References)
[1] 王關祥.高校網(wǎng)絡運行管理與安全維護研究[J].網(wǎ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)絡控制平面可擴展性研究進展[J].軟件學報,2018,29(01):160-175.
[4] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術研究[J].軟件學報,2013,24(5):1078-1097.
[5] 張鳳軍,羅廣軍,邱帆,等.基于SDN的分組傳送網(wǎng)架構設計及實現(xiàn)[J].中國電子科學研究院學報,2020,15(07):665-671.
[6] 潘竹虹,許卓斌.信息采集網(wǎng)絡支撐系統(tǒng)的設計與實現(xiàn)[J].廈門大學學報(自然科學版),2016,55(03):426-433.
[7] 趙俊,包叢笑,李星.基于OpenFlow協(xié)議的覆蓋網(wǎng)絡路由器設計[J].清華大學學報(自然科學版),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-),男,碩士,講師.研究領域:網(wǎng)絡技術,大數(shù)據(jù)技術.