沈 昀,張巖凱
(中國電信股份有限公司無錫分公司,江蘇 無錫 214000)
當數據網中的設備或者業務配置不能滿足業務發展需要,影響到網絡的健康運行,就需要對網絡進行物理結構或者業務邏輯上的修改,也稱為風險操作。風險操作時會影響到承載業務,所以需要提取受影響設備以及接入號,并提前通知用戶。以 2019年為例,某百萬規模城域網一年風險操作總數為849次,其中數據專業 145次,光纜專業 597次,動力專業 87次,其他專業 20次,每天平均 2-3次。
城域網風險操作流程大致分為 4步,具體如下:
(1)風險操作內容整理:包括名稱、原因、設備和網絡現狀、影響范圍、執行時間、割接時長、人員安排、實施步驟、測試方案、回退方案等。
(2)風險操作審批:根據風險等級,提前 7-20天發起風險操作審批。
(3)風險操作發布:通過網站、電話、營業廳、短信、報紙等方式提前 3天發布風險操作公告,通知政企客戶。
(4)風險操作實施。其中,風險操作分析占據了風險操作內容整理的大部分時間,以 XL局7750設備主控板升級為例,數據專業操作步驟如下:
步驟1:整理 XL-7750設備的上下聯拓撲結構,其中下聯方向需要包含匯聚層和接入層 2個層級。
步驟2:將拓撲中的設備名稱,轉換為網管告警屏蔽系統可以識別的 IP地址清單。
步驟3:導出拓撲的中的專線交換機下的專線接入號碼。
步驟 4:導出拓撲中的 OLT下的專線接入號碼(目前只有單臺導出Web界面)。(目前只有單臺導出 Web界面)。
以上涉及業務端口 805個,交換機 15臺,OLT72臺,專線用戶 1,357個。從設備清單整理,到通過 Web界面導出專線用戶整理成表格,共需花費時間約2小時。
除分析時間長,消耗大量人力外以外,人工方式還存在錯漏隱患。一旦發生,目前檢查手段不直接,人工重查過程繁復。
在風險操作分析 4的步驟中,拓撲結構整理需要半小時; Web接口導出 72臺OLT對應的專線用戶,每臺需要 1分鐘,總共需要 1小時12分鐘左右。這兩個環節占據了總時長的 85%左右。而在目前的城域網設備中,接口下有規范化的描述字段,字段包括了連接方向、對端設備名稱、對端設備端口以及光路編碼。通過規劃端口描述,理論上可以推導出網絡拓撲結構。因此,風險操作分析工具關鍵功能需求設定如下:
步驟1:根據目標設備以及端口描述,實現上下聯拓撲結構的自動發現,下聯方向需要發現到接入層。
步驟2:設備名稱和 IP地址自動匹配,如果涉及到物理交換機和虛擬交換機,需要對它們的名稱進行轉換。
步驟3:OLT專線用戶通過 Web接口批量,免人工干預導出。
步驟4:根據拓撲表生成風險操作影響范圍屏蔽表。
以某南方電信分公司為例,風險操作原始輸入一般有兩種形式:
(1)形式 1:電子表格形式。在一般的光纜割接中,纜線維護部門通常提供一張光纜割接表。表中包括風險操作涉及的光路編碼、光路名稱、對端設備名稱、對端端子、線纜名稱、纜段編碼等。其中,光路編碼和實際光路一一對應,其他字段由于人工更新不準確、不及時等關系,不能作為參考字段。
(2)形式 2:設備 IP形式。當設備版本升級、替換,此時風險操作分析的起點就是某臺特定設備的 IP地址。
(1)城域網設備總表。端口描述表用來存放城域網所有設備的名稱、 IP地址、端口以及端口描述。表結構設計如下:
device_name:設 備 名 稱; device_ip:IP地 址;interface:端口編號; description:端口描述。
(2)拓撲表。拓撲表用來存放設備的上下聯拓撲信息,表結構設計如下:
f_node:父節點設備名稱; f_port:父節點接口名稱; description:端口描述; peer_name:對端設備名稱;peer_port:對端設備 IP地址; peer_ interface:對端設備端口; f_no:光路編碼; level:設備層級。
(3)影響范圍表。影響范圍表是拓撲表的一個子集,表結構設計如下:
device_ip:被影響設備 IP地址; interface:被影響設備端口。
2.3.1 生成城域網設備總表
首先通過專業網管導出各型號設備清單,其次利用python的pexpect模塊依次采集設備名稱,端口,端口描述并保存。
2.3.2 生成拓撲表
步驟1:采集風險操作目標設備的端口和端口描述,存入風險操作拓撲表,層級設置為 0,代表此設備本身。
步驟2:分析端口描述,獲得連接方向(上聯、下聯、同級),對端設備名稱等信息。同時根據設備名稱判斷該設備的層級(核心層、匯聚層、接入層),上聯設備層級設置依次加1,下聯設備層級設置依次減 1。
城域網端口描述:“ uT:X X-X X-XX-CR-1. MAN.NE5000E:(F1303281XXX)10GE1/9/0/17”,正則表示式:“r e.c om pi le(r '.*[u p d]T:(.* . MAN..*):((.*))(.*)')”。其中組 1-3分別匹配了設備名稱,光路編碼以及端口。
步驟3:以城域網業務控制層設備為例,首先保存三個連接方向的端口描述,通過描述獲得設備名稱;其次查找城域網設備總表,獲得設備 IP地址。
步驟4:比對每一條描述的設備層級,跳過接入層,繼續采集匯聚層設備的端口描述,存入割接拓撲表,返回步驟 2,直至產生一張以某臺風險操作目標設備為根,與其下匯聚層,接入層設備組成的樹型拓撲表。
2.3.3 生成影響范圍表
首先,根據風險操作需要,根據設備名稱、層級,挑選出影響范圍內的設備;其次,根據相關規范清洗端口編碼,并和設備 IP組合成可導入網管的割接屏蔽表。
2.4.1 接口程序的編寫
根據需求,需要編寫兩個接口程序:第一個用于導出光路編碼對應的線路信息(包括光路編碼,光路兩端設備 IP,光路兩端設備端口);第二個用于導出IP地址對應的專線用戶信息(包括專線用戶接入號,專線所屬設備 IP和專線所屬設備端口),涉及 urllib,requests,http,json等模塊,大致步驟如下 :
步驟1:根據抓包結果或者網頁源代碼,獲得目標url。
步驟2:獲取網站 cookies。
步驟3:將目標 url、cookies,以及請求頭封裝并提交,獲取結果并保存成字符串。由于 Web接口響應存在超時幾率,每輪需要新建一個臨時列表,保存非 200返回代碼的請求,并循環發送,直到臨時列表為空。
步驟4:分析結果字符串并提取可用信息,一般為json格式。
2.4.2 專線用戶信息的獲取
若原始輸入為電子表格形式,第一步根據光路編碼,通過接口獲取編碼對應的設備 IP,端口;第二步獲取 IP對應的專線用戶信息。若原始輸入為 IP形式,第一步遍歷端口描述生成下聯網絡拓撲表,第二步根據拓撲表中的 IP獲取專線用戶信息。
(1)在涉及部分端口的分險操作場景中,專線的提取需要精確到設備端口。此時需要對從 Web接口提取到的端口字段(光路兩端設備端口,專線所屬設備端口)清洗,去除多余前置零和前置端口類型,并將四段式端口編碼轉換為標準的三段式。清洗后,關聯查找得到被風險操作影響到的專線用戶信息。
(2)在涉及設備上聯鏈路的風險操作場景下,如果風險操作涉及某臺設備的所有上聯,此時設備存在業務全阻可能,此時需導出整臺設備下的專線用戶信息,解決方法如下:
步驟1:根據城域網設備總表中的設備名稱,端口描述,提取出所有設備上聯方向的端口編號和光路編碼;
步驟2:根據風險操作原始表中提供的光路編碼或者設備名稱 +端口編號,與步驟 1得到的設備上聯表進行關聯查找。如果某臺設備的所有上聯的光路編碼,均出現在風險操作原始表中,則認為該設備存在業務全阻可能,并導出其下所有專線用戶。
(1)風險操作拓撲表。程序會根據端口描述,提取其中的設備名稱,并嘗試找到設備的 IP地址,如果沒有找到,則提示“ not found in total_df”;若描述本身不合法,則提示“ des not match”;若找到 IP,則把 IP寫入。“level 1”代表為割接設備的直連設備,“ level 2”則代表為割接設備的二級設備。
(2)風險屏蔽結果列表,撥號設備列表,專線用戶信息列表效果展示。程序輸出每臺 OLT的IP地址以及關聯專線用戶的數量。并把所有專線號碼全部存入一個列表。最后將設備屏蔽,撥號用戶屏蔽,專線用戶存入電子表格,該表格可直接導入告警系統,起到告警屏蔽作用。部分結果如圖 1所示。

圖1 風險操作分析工具效果展示
本文從風險操作流程出發,分析了各環節耗時,針對其中風險操作拓撲整理以及專線用戶提取環節,開發了基于Python的風險操作自動分析工具。相比人工方式,將分析時長從1小時縮短到了5分鐘,同時提高了分析準確性。