1 概述
應用特徵識別特性是將不同軟件的特徵進行歸納分析形成特徵庫文件,利用抽象化的特徵庫文件對相關應用軟件進行特徵的檢測識別,然後根據定義的相關規則對識別後的應用軟件採取相應的允許通過,丟棄,記錄日誌及QOS聯動等動作以實現對應用軟件的管理。另外應用識別特性還爲後續擴展提供了接口,便於後續多模塊之間整合及聯動。
2 基本原理應用特徵識別特性也是典型的多核雙平面實現,控制平面實現應用特徵識別的配置下發及刪除等操作,在數據平面實現應用特徵的識別及對識別應用的的相關處理。
下面圖1詳細描述了應用特徵識別在VSP框架中的處理流程:
? 系統初始化時,會將名稱爲APPIDENTIFY的Target數據結構註冊到系統鏈表上;
? 當用戶需要配置時,下發一條諸如pcp c1 apply appidentify 這樣一條策略;
? 策略下發後,會在系統鏈表中查找名稱爲APPIDENTIFY的Target,找到後,會依次執行結構中初始化函數,配置解析函數,再將Target結構與規則樹關聯;
? 當第一個報文到達,符合pcp策略後,會根據優先級依次調用與規則關聯的業務,會進入應用特徵識別慢轉處理函數中去;
? 在慢轉函數中,進行報文檢測,並創建快轉Target,掛接到相應Session上;
? 後續報文到達時,找到相應的Session,調用掛接在Session上的應用特徵識別快轉Target進行處理。
圖 1 應用特徵識別在vsp中的實現
具體的應用特徵識別模塊內部處理流程如下圖2:
圖2 應用特徵識別模塊內部處理流程如下
? 系統啓動時,配置文件配置檢測引擎。
? 符合配置的報文到達應用特徵識別模塊後,通過移植的檢測引擎,檢測該報文是否符合應用軟件特徵。
? 應用特徵識別策略配置針對報文檢測結果的報文處理方式,包括記錄日誌、通過、丟棄、打QOS標記、打應用識別標記等。
? 通過檢測後,針對檢測的結果,根據配置好的處理方式對報文做處理。
從上面的處理流程來看應用特徵識別利用PCP做包分類,利用session模塊完成狀態檢測及快速轉發處理,利用檢測引擎完成報文的檢測識別,然後根據配置的處理規則進行相應的處理。
3 典型應用對於企業用戶來說,針對一些帶寬資源消耗較大的軟件(如P2P視頻,P2P下載,即時通信,網遊及金融股票等軟件)需要進行使用控制,便提出了這樣的需求,GUARD設備可以正確識別這些常見的應用軟件,然後可以根據用戶的需要對這些軟件進行限速,禁用等相關操作。以便節省網絡資源,便於用戶按需動態進行應用軟件的控制。
典型應用如下圖所示,處於私網的用戶通過KingGuard網關設備跟Internet連接,網管便可以在KingGuard設備上通過配置應用特徵識別特性對特定的內網用戶進行應用軟件的識別和限制,限制規則包括允許,禁止,或通過跟QOS模塊聯動而實現限速等。並且提供豐富的特徵識別日誌及統計功能,這樣也便於網管對用戶的相關操作,網絡的運行情況進行控制,使網絡能更好的服務於大衆。
3.1 典型組網和配置組網示意圖如下所示:
組網說明:設備可以工作在多種模式下,常見的使透明模式及路由模式。透明模式下私網用戶直接使用公網地址與外界通信,路由模式下私網用戶通過在設備出口做NAT實現與外部的通信。
命令行下以透明模式爲例KingGuard防火牆設備應用特徵識別典型配置:
1.配置接口IP地址:
其中,Ge0/0/0接口是互聯網出口, Ge0/0/1是私網的網關接口。
KingGuard(config)# int Bridge 0
KingGuard(config-if-Bridge0)# bind interface Ge 0/0/0
KingGuard(config-if-Bridge0)# bind interface Ge 0/0/1
2.配置PCP規則
配置源地址爲114.255.20.141/192的PCP過濾規則。
KingGuard(config)#pcp private_net_1 source-ip net 114.255.20.0 255.255.255.192
KingGuard(config)#filter pcp private_net_1 accept on
3.配置應用識別策略
在KingGuard上配置應用特徵識別:
首先創建一個應用識別策略(每一個新建策略必須繼承一個現有的策略),每一中應用識別都有一個appid唯一標識:
KingGuard(config)#appidentify policy app_policy inherit template
使能FTP(appid=1)協議的應用識別功能:
KingGuard(config-appidentify-app_policy)#appid 1 enable
開啓FTP協議的應用識別日誌:
KingGuard(config-appidentify-app_policy)#appid 1 log
配置識別FTP協議後的動作爲通過:
KingGuard(config-appidentify-app_policy)#appid 1 pass
配置識別FTP協議後的動作爲禁止:
KingGuard(config-appidentify-app_policy)#appid 1 block
配置應用識別爲FTP協議打標記:
KingGuard(config-appidentify-app_policy)#appid 1 qos-control
配置爲FTP協議打應用識別標記:
KingGuard(config-appidentify-app_policy)#appid 1 app-control
4. 配置應用識別規則
配置應用識別規則前,必須提前配置應用特徵識別策略及PCP包分類:
KingGuard(config)#appidentify pcp private_net_1 apply policy app_policy qos-tag 100
5.將應用特徵識別跟QOS進行聯動
KingGuard(config)#qos traffic-monitor aaa qos-tag 100 cir 10 cbs 20 ebs 10
KingGuard(config-if-Ge0/0/2)#select qos traffic-monitor aaa inbound