專利名稱:支持RADIUS協(xié)議的Diameter-AAA服務(wù)器及其工作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種支持RADIUS協(xié)議的Diameter-AAA月良務(wù)器及其對 Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,屬于通信技術(shù)領(lǐng)域。
背景技術(shù):
AAA是才旨Authentication (鑒別)、Authorization ( 4受4又)和Accounting ( i十 費)。自網(wǎng)絡(luò)誕生以來,認(rèn)證、授權(quán)和計費體制(AAA)就成為其運營的基礎(chǔ)。 網(wǎng)絡(luò)中各類資源的使用,都要進(jìn)行認(rèn)證、授權(quán)和計費的管理。而AAA的發(fā)展 與變遷自始至終都受到運營商的關(guān)注。對于每個商業(yè)系統(tǒng)來說,鑒別是至關(guān)重 要的,只有確認(rèn)了用戶身份,才能知道所提供的服務(wù)應(yīng)該向誰收費,同時才能 防止非法用戶(黑客)對網(wǎng)絡(luò)進(jìn)行破壞。在確認(rèn)用戶身份后,系統(tǒng)根據(jù)用戶開 戶時所申請的服務(wù)類別,授予客戶相應(yīng)的權(quán)限。最后,在用戶使用系統(tǒng)資源時, 再由相應(yīng)設(shè)備來統(tǒng)計用戶對資源的占用情況,據(jù)此向客戶收取相應(yīng)的費用。遠(yuǎn)程用戶撥號認(rèn)證系統(tǒng)RADIUS (Remote Authentication Dial In User Service )由RFC2865和RFC2866定義,是目前應(yīng)用最廣泛的AAA協(xié)議。RADIUS 協(xié)議最初目的是為撥號用戶進(jìn)行認(rèn)證和計費。經(jīng)過后來的多次改進(jìn),形成為一 項通用的認(rèn)證計費協(xié)議。1992年秋天,IETF的NASREQ工作組成立后, RADIUS成為事實上的網(wǎng)絡(luò)接入標(biāo)準(zhǔn),幾乎所有的網(wǎng)絡(luò)接入服務(wù)器廠商均實現(xiàn) 了該協(xié)議。最新的RADIUS RFC2865發(fā)表于2000年6月。RADIUS是一種C/S結(jié)構(gòu)的協(xié)議,它的客戶端最初就是NAS (Net Access Server)服務(wù)器,現(xiàn)在任何運行RADIUS客戶端軟件的計算機(jī)都可以成為 RADIUS的客戶端。RADIUS協(xié)議的認(rèn)證機(jī)制靈活,可以采用PAP、 CHAP或 Unix登錄認(rèn)證等多種方式。RADIUS也是一種可擴(kuò)展的協(xié)議,支持廠商擴(kuò)充廠 家專有屬性。RADIUS的基本工作原理是用戶接入NAS, NAS向RADIUS服務(wù)器使用Access-Require數(shù)據(jù)包提交包括用戶名、密碼等的用戶信息,其中 用戶密碼經(jīng)過MD5加密,雙方使用共享密鑰,這個密鑰不經(jīng)過網(wǎng)絡(luò)傳播; RADIUS服務(wù)器先驗證用戶名和密碼的合法性,也可以對NAS進(jìn)行類似的認(rèn)證; 如果合法,就給NAS返回Access-Accept數(shù)據(jù)包,允許用戶進(jìn)行后續(xù)操作,否 則返回Access-Reject數(shù)據(jù)包,拒絕用戶訪問。如果允許訪問,NAS向RADIUS 服務(wù)器提出計費請求Account-Require, RADIUS服務(wù)器響應(yīng)Account-Accept, 對用戶開始計費,同時用戶可以進(jìn)行自己的相關(guān)操作。由于RADIUS協(xié)議簡單明確,可擴(kuò)充,因此得到了廣泛應(yīng)用,包括普通電 話上網(wǎng)、ADSL上網(wǎng)、小區(qū)寬帶上網(wǎng)、IP電話、基于撥號用戶的虛擬專用撥號 網(wǎng)業(yè)務(wù)VPDN (Virtual Private Dialup Networks )、移動電話預(yù)付費等業(yè)務(wù)。最近IEEE提出了 一種基于端口的標(biāo)準(zhǔn),即802.1x標(biāo)準(zhǔn),用于對無線網(wǎng)絡(luò) 的接入認(rèn)證,其在認(rèn)證時也是采用RADIUS協(xié)議。但是,RADIUS協(xié)議本身存在較多缺陷,比如基于UDP的傳輸?shù)暮唵蝸G 包機(jī)制、沒有重傳的規(guī)定和集中式計費服務(wù),都使得它不甚適應(yīng)當(dāng)前網(wǎng)絡(luò)的發(fā) 展,需要進(jìn)一步改進(jìn)。隨著新的接入技術(shù)的引入(如無線接入、DSL、移動IP 和以太網(wǎng))和接入網(wǎng)絡(luò)的快速擴(kuò)容,越來越復(fù)雜的路由器和接入服務(wù)器大量投 入使用,對AAA協(xié)議提出了新的要求,使得傳統(tǒng)的RADIUS結(jié)構(gòu)的缺點日益 明顯。目前,3G網(wǎng)絡(luò)正逐步向全I(xiàn)P網(wǎng)絡(luò)演進(jìn),不僅在核心網(wǎng)使用支持IP的網(wǎng) 絡(luò)實體,在接入網(wǎng)也使用基于IP的技術(shù),而且移動終端也成為可激活的IP客 戶端。如在WCDMA當(dāng)前規(guī)劃的R6版本就新增以下特性UTRAN和CN傳 輸增強(qiáng),無線接口增強(qiáng),多媒體廣播和多播(MBMS),數(shù)字權(quán)限管理(DRM), WLAN-UMTS互通,優(yōu)先業(yè)務(wù),通用用戶信息(GUP),網(wǎng)絡(luò)共享,不同網(wǎng)絡(luò) 間的互通等。在這樣的網(wǎng)絡(luò)中,移動IP將得到廣泛使用。支持移動IP的終端 可以在注冊的家鄉(xiāng)網(wǎng)絡(luò)中移動,或漫游到其他運營商的網(wǎng)絡(luò)。當(dāng)終端準(zhǔn)備^J妻入 到網(wǎng)絡(luò),并使用運營商提供的各項業(yè)務(wù)時,就需要嚴(yán)格的AAA過程。AAA服 務(wù)器要對移動終端進(jìn)行認(rèn)證,授權(quán)允許用戶使用相關(guān)業(yè)務(wù),并收集用戶使用資 源的情況,以產(chǎn)生計費信息。這就需要采用新一代AAA協(xié)議——Diameter?,F(xiàn)在,IETF的AAA工作組已經(jīng)同意將Diameter協(xié)議作為下一、戈的AAA 協(xié)議標(biāo)準(zhǔn)。作為RADIUS協(xié)議升級版本的Diameter協(xié)議包括基本協(xié)議和各種特 定的AAA應(yīng)用服務(wù)協(xié)議,例如NAS (網(wǎng)絡(luò)接入服務(wù))協(xié)議,EAP (可擴(kuò)展鑒 別)協(xié)議,MIP (移動IP)協(xié)議,CMS (密碼消息語法)協(xié)議等。Diameter協(xié) 議支持移動IP、 NAS請求和移動代理的認(rèn)證、授權(quán)和計費工作,協(xié)議的實現(xiàn)和 RADIUS類似,也是采用屬性值對AVP (采用Attribute-Length-Value三元組形 式)來實現(xiàn),但是其中詳細(xì)規(guī)定了錯誤處理、故障切換(failover)和故障復(fù)原 (failback)機(jī)制,采用可靠的TCP和SCTP傳輸協(xié)議,支持分布式計費,克服 了 RADIUS的許多缺點,是最適合未來移動通信系統(tǒng)的AAA協(xié)議。由于Diameter較RADIUS更為復(fù)雜,而且RADIUS已經(jīng)被廣為應(yīng)用,所 以短時間內(nèi)Diameter協(xié)議不會占據(jù)AAA的主導(dǎo)。但是,可以預(yù)見,隨著網(wǎng)絡(luò) 的發(fā)展,Diameter協(xié)議必將會更加成熟和完善,得到廣泛應(yīng)用。參見圖1 ,介紹現(xiàn)在已經(jīng)研制成功并投入實際應(yīng)用的Diameter-AAA服務(wù)器 的模塊組成結(jié)構(gòu)及其相應(yīng)功能。Diameter-AAA服務(wù)器遵循RFC3588 Diameter 基礎(chǔ)協(xié)議,并根據(jù)使用環(huán)境需要,能夠提供一個或多個AAA應(yīng)用服務(wù),例如 NASREQ、 EAP、 MIP等。其內(nèi)部包括以下才莫塊TCP/SCTP交互模塊,負(fù)責(zé)建立TCP或SCTP連接,收發(fā)Diameter消息。 并將收到的Diameter消息交給上層的對端管理模塊和將對端管理模塊要發(fā)送的 Diameter消息從通信鏈路上發(fā)出。對端管理模塊,負(fù)責(zé)Diameter Peer (對端)的管理以及路由功能,內(nèi)部記 錄了該Diameter-AAA服務(wù)器已連接上的對端信息包括對端的IP地址、所屬 的域,數(shù)據(jù)加密方式,對端支持的AAA應(yīng)用服務(wù),并為每個已連接的對端維 護(hù)一個標(biāo)志連接狀態(tài)的狀態(tài)機(jī),在該連接狀態(tài)狀態(tài)機(jī)對下述Diameter消息進(jìn)行 處理能力交換(Capability Exchange )、心跳檢測(Device Watchdog )、斷開對 端(Disconnect Peer);如果Diameter消息的目的地是該AAA服務(wù)器,則將該 Diameter消息傳送給上層的會話管理模塊;如果接收到會話管理模塊發(fā)送的 Diameter消息,則將其轉(zhuǎn)發(fā)至下層的TCP/SCTP交互才莫塊;會話管理模塊,負(fù)責(zé)管理每個Diameter會話,該模塊中設(shè)置并維護(hù)有一個 由會話標(biāo)識Session-Id索引的AAA應(yīng)用服務(wù)狀態(tài)機(jī)表,如果收到的Diameter 消息中的Session-Id是一個已經(jīng)存在的會話ID,則尋找其對應(yīng)的AAA應(yīng)用服 務(wù)狀態(tài)機(jī)來處理該消息;如果不存在該Session-Id,就根據(jù)應(yīng)用服務(wù)標(biāo)識 Application-Id新生成一個AAA應(yīng)用服務(wù)狀態(tài)機(jī),用于處理這個新的會話;AAA應(yīng)用服務(wù)模塊,負(fù)責(zé)實現(xiàn)AAA應(yīng)用服務(wù)狀態(tài)機(jī)的各種不同具體功能, 該模塊從會話管理模塊收到Diameter消息,根據(jù)其中的值,做出具體處理,再 生成回復(fù)的Diameter消息,并交由會話管理才莫塊發(fā)送。Diameter-AAA服務(wù)器處理Diameter消息的流程如下TCP/SCTP交互模塊 收到Diameter終端發(fā)來的一個數(shù)據(jù)報后,TCP/SCTP模塊保證完整接收該數(shù)據(jù) 報,再將它交給對端管理模塊處理。對端管理模塊根據(jù)Diameter消息中的 Destination-Host和Destination-Realm AVP判斷該Diameter消息是要本地處理還 是重定向到其他Diameter服務(wù)器。如果本地處理,則交給上層的會話管理模塊, 否則,根據(jù)重定向規(guī)則,將消息重新通過TCP/SCTP模塊發(fā)送到目的服務(wù)器。 會話管理模塊收到Diameter消息后,根據(jù)Session-Id AVP判斷該數(shù)據(jù)報是否為 已存在的會話的一部分,如果是,則找到相應(yīng)的AAA應(yīng)用服務(wù)狀態(tài)機(jī),交由 后者處理。如果Session-Id是一個沒有記錄的Session-Id,那么才艮據(jù)Diameter 消息中的應(yīng)用服務(wù)標(biāo)識Application-Id生成一個對應(yīng)的AAA應(yīng)用服務(wù)狀態(tài)機(jī), 并記錄下該Session-Id,以后收到包含這個Session-Id的Diameter消息,都交給 這個狀態(tài)機(jī)處理。AAA應(yīng)用服務(wù)狀態(tài)機(jī)則根據(jù)自己的服務(wù)需要,檢查接收到的 屬性鍵值對,生成回復(fù)的屬性鍵值對,交給會話管理層發(fā)送。會話管理層再將 發(fā)送包轉(zhuǎn)給對端管理模塊,經(jīng)由TCP/SCTP模塊發(fā)回Diameter對端。因此,部署功能強(qiáng)壯、靈活、可靠的Diameter AAA系統(tǒng),對于絕大部分準(zhǔn) 備購買新設(shè)備或者需要支持代理及用戶漫游的業(yè)務(wù)提供商來說,是個很好的選 擇。但是,對于網(wǎng)絡(luò)運營商而言,因為其前階段已經(jīng)在RADIUS上已經(jīng)投入了 大量人力、物力,且在相當(dāng)范圍內(nèi)RADIUS提供的功能能夠滿足目前和今后一 段時間內(nèi)通信需要的系統(tǒng)里,同時存在兩種協(xié)議終端RADIUS終端和Diameter12終端。為了解決兩者之間的兼容,目前普遍采用的辦法是在系統(tǒng)中增加一個進(jìn)行兩種協(xié)議信息轉(zhuǎn)換處理的RADKJS/Diameter轉(zhuǎn)換服務(wù)器(參見圖2)。但是, 這樣勢必增加設(shè)備投資費用和信號的傳輸時延。 一種比較經(jīng)濟(jì)、合理、高效的 方式是選擇支持雙協(xié)議棧的AAA服務(wù)器,讓RADIUS在原來的范圍內(nèi)繼續(xù)提 供服務(wù),而對于系統(tǒng)內(nèi)新添加的設(shè)備則使用Diameter協(xié)議,為以后逐步過渡到 全Diameter AAA系統(tǒng)創(chuàng)造條件。所以,盡快研制成功一種支持雙協(xié)-漢棧的AAA 服務(wù)器就成為業(yè)內(nèi)技術(shù)人員關(guān)注的焦點。發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的是提供一種支持RADIUS協(xié)議的Diameter-AAA 服務(wù)器以及該服務(wù)器處理Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包相互轉(zhuǎn)換的方 法,以解決目前網(wǎng)絡(luò)的急需,在為新建立的Diameter網(wǎng)絡(luò)提供AAA應(yīng)用服務(wù) 的同時,也為該系統(tǒng)中的RADIUS協(xié)議終端繼續(xù)提供AAA服務(wù),并為以后逐 步過渡到全Diameter AAA系統(tǒng)創(chuàng)造條件。為了達(dá)到上述目的,本發(fā)明提供了 一種支持RADIUS協(xié)議的Diameter-AAA 服務(wù)器,是使用統(tǒng)一的用戶信息,同時為Diameter和RADIUS兩種不同協(xié)議終 端提供AAA應(yīng)用服務(wù)的服務(wù)器;包括順序連接的TCP/SCTP交互模塊、對 端管理模塊、會話管理模塊和AAA應(yīng)用服務(wù)模塊;其特征在于,該服務(wù)器還 增設(shè)有下述軟件功能模塊UDP交互模塊,用于接收RADIUS客戶端發(fā)來的UDP數(shù)據(jù)報,并將該UDP 數(shù)據(jù)報中的RADIUS消息送交給上層的轉(zhuǎn)換模塊進(jìn)行處理;同時負(fù)責(zé)將轉(zhuǎn)換模 塊送來的UDP數(shù)據(jù)報文經(jīng)由傳輸線路發(fā)送給RADIUS客戶端;轉(zhuǎn)換模塊,負(fù)責(zé)將接收的RADIUS協(xié)議的屬性鍵值對Attribute轉(zhuǎn)換成 Diameter屬性4走值對AVP,以及將要發(fā)送的Diameter協(xié)議的屬性4建值對AVP 轉(zhuǎn)換為RADIUS屬性4建值對Attribute;RADIUS對端管理模塊,負(fù)責(zé)管理和維護(hù)RADIUS客戶端與該AAA服務(wù) 器的連接,內(nèi)部設(shè)有為每個已建立連接的RADIUS客戶端存儲相關(guān)信息的對端狀態(tài)機(jī),用于記錄已與該AAA服務(wù)器實現(xiàn)連接的RADIUS客戶端信息包括 IP地址、驗證端口、授權(quán)端口、數(shù)據(jù)加密方式和該客戶端請求的AAA應(yīng)用服 務(wù);該RADIUS對端狀態(tài)機(jī)將UDP交互模塊接收到的RADIUS消息先送至轉(zhuǎn) 換模塊進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至上層的會話管理模塊;并將接收到的會話管 理模塊發(fā)送來的Diameter消息,先送至轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至下 層的UDP交互4莫塊。為了達(dá)到上述目的,本發(fā)明還提供了一種采用支持RADIUS協(xié)議的 Diameter-AAA服務(wù)器對Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的 方法,其特征在于雖然Diameter協(xié)議能夠兼容RADIUS協(xié)議,但是,由于 Diameter協(xié)議增加了新的功能以及Diameter AVP和RADIUS Attribute數(shù)據(jù)包的 格式不完全相同,部分RADIUS屬性鍵值對Attribute在Diameter中將被轉(zhuǎn)換 為其他的屬性鍵值對AVP,即二者之間的轉(zhuǎn)換并不是完全一一對應(yīng)的,要處理 一些特殊情況;包括下列操作步驟(1) 采用消息頭轉(zhuǎn)換和消息體轉(zhuǎn)換兩個步驟,完成將RADIUS消息轉(zhuǎn)換 為Diameter消息的數(shù)據(jù)包轉(zhuǎn)換,且兩個轉(zhuǎn)換操作的先、后順序是不限定的;(2) 先進(jìn)行消息體轉(zhuǎn)換,再進(jìn)行消息頭轉(zhuǎn)換,以實現(xiàn)Diameter應(yīng)答消息 轉(zhuǎn)換為RADIUS應(yīng)答消息。本發(fā)明是一種支持RADIUS協(xié)議的Diameter-AAA服務(wù)器及該服務(wù)器對 Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其中釆用在 Diameter服務(wù)器的原有架構(gòu)上再添加RADIUS軟件轉(zhuǎn)換功能沖莫塊,實現(xiàn)了 一個 同時支持Diameter與RADIUS的雙協(xié)議棧AAA服務(wù)器。該裝置通過添加UDP 交互模塊、RADIUS對端管理模塊和轉(zhuǎn)換模塊,就能夠?qū)⒁粋€RADIUS對端模 擬成Diameter對端,并將RADIUS協(xié)議數(shù)據(jù)包翻譯成Diameter協(xié)議數(shù)據(jù)包, 從而實現(xiàn)由該Diameter-AAA服務(wù)器處理RADIUS相關(guān)消息。因此,該月良務(wù)器 構(gòu)思巧妙、結(jié)構(gòu)簡單、工作可靠,容易實現(xiàn)、便于運維。此外,本發(fā)明還提出 的一種該服務(wù)器對Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法、 具體操作內(nèi)容和轉(zhuǎn)換規(guī)則,使得該服務(wù)器能夠在混有RADIUS和Diameter兩種終端的網(wǎng)絡(luò)中可以正確、高效地運行。使得本發(fā)明服務(wù)器特別適合在RADIUS 終端和Diameter終端混合使用的過渡系統(tǒng)中使用。為存有RADIUS終端的遺留 系統(tǒng)向全Diameter終端系統(tǒng)的演進(jìn)供了筒潔高效的解決方案。
圖1是Diameter-AAA服務(wù)器內(nèi)部模塊結(jié)構(gòu)組成示意圖。圖2是兩種協(xié)議終端同時共存網(wǎng)絡(luò)釆用協(xié)議轉(zhuǎn)換服務(wù)器的應(yīng)用場景示意圖。圖3 (A)、 (B)分別是Diameter消息的組成架構(gòu)圖和其中單個屬性4建值 對AVP的組成架構(gòu)圖。圖4 ( A)、 (B)分別是RADIUS消息的組成架構(gòu)圖和其中單個屬性鍵值對 Attribute的組成架構(gòu)圖。圖5是本發(fā)明支持RADIUS的Diameter服務(wù)器的內(nèi)部模塊結(jié)構(gòu)組成示意圖. 圖6是本發(fā)明支持RADIUS的Diameter服務(wù)器的應(yīng)用場景示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作 進(jìn)一步的詳細(xì)描述。參見圖3,介紹由消息頭和消息體組成的Diameter消息結(jié)構(gòu)格式和每個屬 性建值對的格式,其中消息頭包括版本、消息長度、命令標(biāo)識、命令代碼、 應(yīng)用服務(wù)標(biāo)識、點到點標(biāo)識和端到端標(biāo)識,消息體則由一個或多個屬性4定值對 AVP組成。每個屬性鍵值對通常是以該屬性鍵值對的屬性代碼或名稱來稱呼之, 例如屬性代碼為Destination-Host (目標(biāo)主機(jī))的屬性4建值對就稱為 Destination-Host AVP或目標(biāo)主機(jī)屬性鍵值對。每個屬性鍵值對提供AAA應(yīng)用 服務(wù)所需要的一個設(shè)定參數(shù)。例如目標(biāo)主機(jī)Destination-Host屬性鍵值對提供 目標(biāo)主機(jī)的IP地址,目標(biāo)域Destination-Realm屬性鍵值對提供目標(biāo)主機(jī)所在的 域信息,會話標(biāo)識Session-Id屬性鍵值對提供會話ID信息,應(yīng)用服務(wù)標(biāo)識Application-Id屬性鍵值對用于指定處理該Diameter消息的AAA應(yīng)用服務(wù)。參見圖4,介紹由消息頭和消息體組成的RADIUS消息結(jié)構(gòu)格式及其每個 屬性建值對的格式,其中消息頭包括命令代碼、命令序號、命令長度和消息 驗證碼,消息體則由一個或多個屬性鍵值對Attributes組成。參見圖5,介紹本發(fā)明支持RADIUS協(xié)議的Diameter-AAA服務(wù)器,它是 使用統(tǒng)一的用戶信息,同時為Diameter和RADIUS兩種不同協(xié)議終端提供AAA 應(yīng)用服務(wù)的服務(wù)器,即同時支持RADIUS終端與Diameter終端的AAA服務(wù)器。 該服務(wù)器除了包括順序連接的TCP/SCTP交互模塊、對端管理模塊、會話管理 模塊和AAA應(yīng)用服務(wù)模塊外,還增設(shè)了用于支持RADIUS協(xié)議終端的UDP交 互模塊、轉(zhuǎn)換模塊和RADIUS對端管理模塊,其中各個軟件模塊的功能分別是UDP交互模塊,用于接收RADIUS客戶端發(fā)來的UDP數(shù)據(jù)報,并將該UDP 數(shù)據(jù)報中的RADIUS消息送交給上層的轉(zhuǎn)換模塊進(jìn)行處理;同時負(fù)責(zé)將轉(zhuǎn)換模 塊送來的UDP數(shù)據(jù)報文經(jīng)由傳輸線路發(fā)送給RADIUS客戶端。轉(zhuǎn)換模塊,負(fù)責(zé)將接收的RADIUS協(xié)議的屬性鍵值對Attribute轉(zhuǎn)換成 Diameter屬性鍵值對AVP,以及將要發(fā)送的Diameter協(xié)議的屬性鍵值對AVP 轉(zhuǎn)換為RADIUS屬性鍵值對Attribute。RADIUS對端管理沖莫塊,負(fù)責(zé)管理和維護(hù)RADIUS客戶端與該AAA服務(wù) 器的連接,內(nèi)部設(shè)有為每個已建立連接的RADIUS客戶端存儲相關(guān)信息的對端 狀態(tài)機(jī),該RADIUS對端連接狀態(tài)機(jī)不需要發(fā)送或處理能力交換(Capability Exchange )、心跳才企測(Device Watchdog )、斷開對端(Disconnect Peer)消息。 但是要記錄已與該AAA服務(wù)器實現(xiàn)連接的RADIUS客戶端信息包括IP地址、 驗證端口、授權(quán)端口、數(shù)據(jù)加密方式和該客戶端請求的AAA應(yīng)用服務(wù)等。該 RADIUS對端狀態(tài)機(jī)將UDP交互模塊接收到的RADIUS消息先送至轉(zhuǎn)換;漠塊 進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至上層的會話管理模塊;并將接收到的會話管理模塊 發(fā)送來的Diameter消息,先送至轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至下層的 UDP交互模塊。TCP/SCTP交互模塊,負(fù)責(zé)建立TCP或SCTP連接,收發(fā)Diameter消息,并將收到的Diameter消息交給上層的對端管理模塊和將對端管理模塊要發(fā)送的 Diameter消息/人通信《連;洛上發(fā)出。對端管理模塊,負(fù)責(zé)Diameter對端Peer的管理和路由功能,內(nèi)部記錄有已 與該Diameter-AAA服務(wù)器建立連接的、包括IP地址、所屬的域,數(shù)據(jù)加密方 式,其支持的AAA應(yīng)用服務(wù)的對端信息,并為每個已連接的對端維護(hù)一個標(biāo) 志連接狀態(tài)的狀態(tài)機(jī),在該連接狀態(tài)狀態(tài)機(jī)中對包括能力交換Capability Exchange、 心3兆沖企測Device Watchdog、 斷開對端Disconnect Peer的Diameter 消息進(jìn)行處理并將接收到的目的地是該AAA服務(wù)器的Diameter消息送交給 上層的會話管理模塊,以及將其接收到的會話管理模塊發(fā)送的Diameter消息, 轉(zhuǎn)發(fā)至下層的TCP/SCTP交互模塊。會話管理模塊,負(fù)責(zé)管理每個Diameter會話,該模塊中設(shè)置并維護(hù)有一個 由會話標(biāo)識Session-Id索引的AAA應(yīng)用服務(wù)狀態(tài)才幾表,當(dāng)接收到的Diameter 消息中的Session-Id是一個已經(jīng)存在的會話ID ,則尋找與其對應(yīng)的AAA應(yīng)用 月PL務(wù)狀態(tài)機(jī)來處理該消息;如果不存在該Session-Id,就才艮據(jù)應(yīng)用服務(wù)標(biāo)識 Application-Id新生成一個AAA應(yīng)用服務(wù)狀態(tài)機(jī),用于處理這個新的會話。AAA應(yīng)用服務(wù);^莫塊,用于實現(xiàn)AAA應(yīng)用服務(wù)狀態(tài)機(jī)的具體功能,所述狀 態(tài)機(jī)根據(jù)不同的AAA應(yīng)用服務(wù)會有所不同,該模塊從會話管理模塊收到 Diameter消息,根據(jù)其中的值,進(jìn)行不同的具體處理,并生成Diameter回復(fù)消 息,交由會話管理模塊發(fā)送。下面詳細(xì)說明本發(fā)明力l務(wù)器對Diameter和RADIUS兩種協(xié)議凄t據(jù)包進(jìn)行相 互轉(zhuǎn)換的方法,眾所周知,RADIUS和Diameter協(xié)議的AAA功能的實現(xiàn)都是 基于在終端與服務(wù)器之間交換屬性鍵值對AVP (Attribute-Length-Value)的向量 數(shù)據(jù)包進(jìn)行的(為了區(qū)分兩種協(xié)議的屬性鍵值對,將Diameter中屬性鍵值對稱 為AVP, RADIUS屬性鍵值對稱為Attribute或簡稱為RADIUS屬性,同樣以 Attribute的屬性代碼值來稱呼特定的Attribute為某某屬性或XXX Attribute )。雖然Diameter協(xié)議能夠兼容RADIUS協(xié)議,但是,由于Diameter協(xié)議增加 了新的功能以及Diameter AVP和RADIUS Attribute數(shù)據(jù)包的格式不完全相同(參見圖3和圖4 ),部分RADIUS屬性鍵值對Attribute在Diameter中將被轉(zhuǎn) 換為其他的屬性鍵值對AVP,即二者之間的轉(zhuǎn)換并不是完全透明的,即不是完 全——對應(yīng)的,仍需要處理一些特殊情況。該轉(zhuǎn)換方法包括下列兩個操作步驟步驟(1 )、采用消息頭轉(zhuǎn)換和消息體轉(zhuǎn)換兩個步驟,完成將RADIUS消息 轉(zhuǎn)換為Diameter消息的數(shù)據(jù)包轉(zhuǎn)換,且兩個轉(zhuǎn)換操作的先、后順序是不限定的;步驟(2)、先進(jìn)行消息體轉(zhuǎn)換,再進(jìn)行消息頭轉(zhuǎn)換,以實現(xiàn)Diameter應(yīng)答 消息轉(zhuǎn)換為RADIUS應(yīng)答消息。其中步驟(1 )進(jìn)一步包括下列操作內(nèi)容(11)進(jìn)行消息頭轉(zhuǎn)換根據(jù)RADIUS消息中的信息,生成Diameter消息 頭,即根據(jù)RADIUS消息頭中的命令代碼和該RADIUS消息中是否含有某個或 多個應(yīng)用服務(wù)特定的屬性鍵值對來生成Diameter消息頭中的應(yīng)用服務(wù)標(biāo)識ID 和命令代碼;例如RADIUS命令代碼為接入請求(Access-Request ),且RADIUS 消息中含有EAP消息(EAP-Message)屬性,那么對應(yīng)的Diameter消息頭中命 令代碼為EAP請求(EAP-REQEST ),應(yīng)用服務(wù)ID為Diameter-EAP。并在轉(zhuǎn) 換模塊中保存該RADIUS消息的消息驗證碼和命令序號,再將Diameter消息頭 中的命令標(biāo)識設(shè)置為對應(yīng)的標(biāo)識;由于會話管理模塊及后續(xù)模塊不使用 Diameter消息頭中的其他信息,因此其他字段不用填入特定值;(12 )進(jìn)行消息體轉(zhuǎn)換因為RADIUS消息中的每個屬性一建值對Attribute 基本獨立,與其他Attribute是否存在及其取值無關(guān),故逐個進(jìn)行RADIUS請求 消息中屬性鍵值對Attribute到Diameter請求消息屬性鍵值對AVP的轉(zhuǎn)換,且 沒有次序的限制。RADIUS請求消息中Attribute到Diameter請求消息AVP的 轉(zhuǎn)換能夠大部分實現(xiàn)一對一的轉(zhuǎn)換,此時只需要將RADIUS Attribute屬性代碼 值作為Diameter AVP屬性代碼值,4字節(jié)對齊地將Attribute的鍵值填入AVP 鍵值后,再將4字節(jié)對齊后的AVP鍵值長度填入AVP屬性鍵值對長度字段, AVP標(biāo)識字段填入默認(rèn)值。在執(zhí)行該步驟(12)進(jìn)行消息體轉(zhuǎn)換時,個別RADIUS Attribute不能簡單 地直接轉(zhuǎn)換為Diameter AVP,其處理規(guī)則由使用該Attribute的AAA應(yīng)用服務(wù)決定;其中適用于所有AAA應(yīng)用服務(wù)的需要特殊處理的RADIUS Attribute的 處理原則如下如果RADIUS消息存在消息驗證屬性Message-Authenticator Attribute,那 么它的值必須被驗證,但是不生成對應(yīng)的Diameter AVP。而且,如果驗證不成 功,則丟棄該整個RADIUS消息。RADIUS消息發(fā)送者的傳輸層地址必須和消息體中包含的網(wǎng)絡(luò)接入系統(tǒng) NAS標(biāo)識相符合,該NAS標(biāo)識包括兩個屬性字段NAS標(biāo)識NAS-Identifier 和NAS IP地址NAS-IP-Address (詳見下文)。轉(zhuǎn)換中要維護(hù)包括RADIUS消息頭中的命令序號字段、任何攜帶的代理狀 態(tài)屬性鍵值對Proxy-State Attribute, RADIUS協(xié)議UDP包的源地址和源端口號 在內(nèi)的信息,并將這些信息保存在本地的一個消息轉(zhuǎn)換表中。如果RADIUS請求消息包含一個狀態(tài)屬性State Attribute,且該屬性值以 "Diameter/"開頭,則其后數(shù)據(jù)包含Diameter協(xié)議的"源主機(jī)/源域/會話ID"信 息Origin-Host/Origin-Realm/Session-Id;如杲該屬性不存在,則產(chǎn)生一個新的 Diam改er會話標(biāo)識ID ( Diameter會話ID格式以及生成辦法見rfc3588 ),并將 該會話標(biāo)識ID放入轉(zhuǎn)換后的會話ID屬性鍵:值對Session-Id AVP中。Diameter消息中的源主才凡Origin-Host和源域Origin-Realm兩個屬性鍵值 對必須由NAS-IP-Address和NAS-Identifier屬性對應(yīng)的域名全稱信息生成,并 加入轉(zhuǎn)換后的Diameter消息中。由RADIUS用戶名屬性User-Name Attribute中的信息生成目標(biāo)域?qū)傩枣I:值 對Destination-Realm AVP 。在執(zhí)行步驟(12)中,當(dāng)AAA應(yīng)用服務(wù)是可擴(kuò)展驗證協(xié)議EAP,在執(zhí)行 RADIUS-EAP到Diameter-EAP的消息體轉(zhuǎn)換時,進(jìn)一步包括下述特定的轉(zhuǎn)換 操作步驟將RADIUS-EAP消息包含的屬性鍵值對EAP-Message Attribute轉(zhuǎn)換為 Diameter EAP負(fù)載屬性鍵值對EAP-Payload AVP,如果存在多個RADIUS EAP-Message屬性4定值對,則將其中的值合并方文入一個Diameter EAP-PayloadAVP中;長度為2字節(jié)的RADIUS EAP-Message Attribute,即EAP-Message的值為 空,代表EAP-Start,轉(zhuǎn)換為空的EAP-Payload AVP 。其中步驟(2)進(jìn)一步包括下列操作內(nèi)容 (21 )進(jìn)行消息體轉(zhuǎn)換先逐個地將Diameter應(yīng)答消息中的屬性鍵:值對AVP 轉(zhuǎn)換為RADIUS應(yīng)答消息的屬性鍵值對Attribute;其中要做的特殊處理操作為如果被觸發(fā)應(yīng)答的RADIUS請求消息攜帶代理狀態(tài)屬性鍵值對Proxy-State Attribute,則將本地緩存的請求消代理狀態(tài)屬性鍵值對Proxy-State加入該應(yīng)答 消息中。如果Diameter消息中含有會話超時屬性鍵值對Session-Timeout AVP,但是 沒有授權(quán)生命期屬性4建值對Authorization-Lifetime AVP,則將其轉(zhuǎn)換為RADIUS 會話超時屬性鍵值對Session-Timeout Attribute,但不生成終止操作屬性鍵值對 Termination-Action Attribute 。如果Diameter消息含有授權(quán)生命期屬性鍵值對Authorization-Lifetime AVP, 但是沒有會話超時屬性鍵值對Session-Timeout AVP,則將其轉(zhuǎn)換為RADIUS會 話超時屬性鍵值對Session-Timeout Attribute,并插入一個值為AA-REQEST的 終止操作屬性4定值對Termination-Action Attribute;并在轉(zhuǎn)換后,丟棄授權(quán)生命 期屬性鍵值對Authorization-Lifetime AVP和重驗證請求類型屬性鍵值對 Re-Auth-Request-Type AVP。如果Diameter消息同時含有會話超時屬性鍵值對Session-Timeout AVP和授 斥又生命期屬性鍵:值對Authorization-Lifetime AVP,則前者Session-Timeout必然 大于等于后者Authorization-Lifetime;此時將Authorization-Lifetime AVP的〈直轉(zhuǎn) 換為RADIUS會話超時屬性4建值對Session-Timeout Attribute,并且將RADIUS 終止操作屬性4建值對Termination-Action Attribute設(shè)為AA-REQUEST,再在轉(zhuǎn) 換后,丟棄授權(quán)生命期屬性鍵值對Authorization-Lifetime AVP和重驗證請求類 型屬性4建值對Re-Auth-Request-Type AVP;根據(jù)緩存的RADIUS終端UDP IP以及端口號發(fā)回RADIUS應(yīng)答消息。在步驟(21 )中,如果AAA應(yīng)用服務(wù)是EAP,則進(jìn)行Diameter-EAP到 RADIUS-EAP的消息體轉(zhuǎn)換時,要遵守下述原則執(zhí)行轉(zhuǎn)換操作步驟如果Diameter消息頭命令代碼為EAP-Answer,并且操作結(jié)果屬性鍵值對 Result-Code AVP的鍵值為DIAMETER_MULTI_ROUND_AUTH,則將該消息 轉(zhuǎn)換為RADIUS Access-Challenge消息,同時將Diameter源主機(jī)、源域、會話 ID三個屬性鍵值對Origin-Host、 Origin-Realm、 Session-Id AVP的鍵值內(nèi)容采用 '7"符號分割,并加上前綴"Diameter/"而封裝為一個RADIUS狀態(tài)屬性鍵值 對State Attribute;如果存在多回合超時屬性鍵值對Multi-Round-Time-Out AVP, 則將它的值裝入RADIUS會話超時屬性鍵值對Session-Timeout Attribute中。將Diameter EAP-Payload AVP轉(zhuǎn)換為RADIUS EAP-Message屬性4建值對 時,如果EAP-Payload AVP的長度超過RADIUS屬性鍵值對所允許的最大長度, 則將其分拆為多個EAP-Message屬性-睫值對。Diameter EAP重發(fā)起負(fù)載屬性4建值對EAP-Reissued-Payload AVP應(yīng)被轉(zhuǎn)換 為一個或多個RADIUS EAP-Message屬性鍵值對,同時將RADIUS錯誤原因 屬性鍵值對Error-Cause Attribute的值設(shè)置為202 (十進(jìn)制),也就是"無效的 EAP包(忽略),,Invalid EAP Packet—Ignored。Diameter EAP會話主4定屬性一建值對EAP-Master-Session-Key AVP應(yīng)^皮轉(zhuǎn)換 為廠家專有的RADIUS MS-MPPE-Recv-Key和MS-MPPE-Send-Key屬性鍵值 對;EAP-Master-Session-Key的前32字節(jié)放入MS-MPPE-Recv-Key中,后32 字節(jié)放入MS-MPPE-Send-Key中。如果存在 Diameter EAP 驗證方式計費屬性鍵值對 Accounting-EAP-Auth-Method AVP ,則將其丟棄。(22 )進(jìn)行消息頭轉(zhuǎn)換生成RADIUS消息體后,再沖艮據(jù)Diameter消息中 的相關(guān)信息,生成RADIUS消息頭。該步驟(22)進(jìn)一步包括下列操作內(nèi)容(221)根據(jù)Diameter消息中的操作結(jié)果Result-Code AVP的值,生成 RADIUS命令代碼,如果Result-Code為"多回合交互驗證,, Diameter-Multi-Round-Auth: 1001,貝'J RADIUS命令代碼為Access-Challenge(11);如果Result-Code AVP值為驗證成功,即Result-Code的取值區(qū)間范圍是 (2000, 3000),則RADIUS命令代碼為Access-Accept ( 2 );如果Result-Code 為馬全證失敗,貝'j RADIUS命令代碼為Access-Reject。(222 )將保存的RADIUS請求消息命令序號填入RADIUS應(yīng)答消息命令序號;(223 )計算新生成的RADIUS消息長度,再將該數(shù)值填入命令長度中; (224)根據(jù)在轉(zhuǎn)換模塊中保存的RADIUS請求消息的消息驗證碼和新生 成的RADIUS消息,生成應(yīng)答消息的消息驗證碼。本發(fā)明已經(jīng)研制了同時支持Diameter與RADIUS的雙協(xié)議棧AAA服務(wù)器 樣機(jī),并進(jìn)行了實施試驗和測試。試驗結(jié)果表明,該服務(wù)器在混有RADIUS和 Diameter終端的網(wǎng)絡(luò)中可以正確、高效地工作,實現(xiàn)了發(fā)明目的。這種服務(wù)器 非常適宜在RADIUS終端和Diameter終端混合使用的過渡網(wǎng)絡(luò)系統(tǒng)中應(yīng)用,具 有很好的推廣應(yīng)用前景。
權(quán)利要求
1、一種支持RADIUS協(xié)議的Diameter-AAA服務(wù)器,是使用統(tǒng)一的用戶信息,同時為Diameter和RADIUS兩種不同協(xié)議終端提供AAA應(yīng)用服務(wù)的服務(wù)器;包括順序連接的TCP/SCTP交互模塊、對端管理模塊、會話管理模塊和AAA應(yīng)用服務(wù)模塊;其特征在于,該服務(wù)器還增設(shè)有下述軟件功能模塊UDP交互模塊,用于接收RADIUS客戶端發(fā)來的UDP數(shù)據(jù)報,并將該UDP數(shù)據(jù)報中的RADIUS消息送交給上層的轉(zhuǎn)換模塊進(jìn)行處理;同時負(fù)責(zé)將轉(zhuǎn)換模塊送來的UDP數(shù)據(jù)報文經(jīng)由傳輸線路發(fā)送給RADIUS客戶端;轉(zhuǎn)換模塊,負(fù)責(zé)將接收的RADIUS協(xié)議的屬性鍵值對Attribute轉(zhuǎn)換成Diameter屬性鍵值對AVP,以及將要發(fā)送的Diameter協(xié)議的屬性鍵值對AVP轉(zhuǎn)換為RADIUS屬性鍵值對Attribute;RADIUS對端管理模塊,負(fù)責(zé)管理和維護(hù)RADIUS客戶端與該AAA服務(wù)器的連接,內(nèi)部設(shè)有為每個已建立連接的RADIUS客戶端存儲相關(guān)信息的對端狀態(tài)機(jī),用于記錄已與該AAA服務(wù)器實現(xiàn)連接的RADIUS客戶端信息包括IP地址、驗證端口、授權(quán)端口、數(shù)據(jù)加密方式和該客戶端請求的AAA應(yīng)用服務(wù);該RADIUS對端狀態(tài)機(jī)將UDP交互模塊接收到的RADIUS消息先送至轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至上層的會話管理模塊;并將接收到的會話管理模塊發(fā)送來的Diameter消息,先送至轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換處理后,再轉(zhuǎn)發(fā)至下層的UDP交互模塊。
2、 根據(jù)權(quán)利要求l所述的服務(wù)器,其特征在于所述服務(wù)器的其它軟件模 塊的功能分別是TCP/SCTP交互模塊,負(fù)責(zé)建立TCP或SCTP連接,收發(fā)Diameter消息, 并將收到的Diameter消息交給上層的對端管理^t塊和將對端管理;溪塊要發(fā)送的 Diameter消息從通信鏈路上發(fā)出;對端管理;^莫塊,負(fù)責(zé)Diameter對端Peer的管理和^^由功能,內(nèi)部記錄有已 與該Diameter-AAA服務(wù)器建立連接的對端信息包括IP地址、所屬的域,數(shù)據(jù)加密方式,其支持的AAA應(yīng)用服務(wù),并為每個已連接的對端維護(hù)一個標(biāo)志 連接狀態(tài)的狀態(tài)機(jī),在該連接狀態(tài)狀態(tài)才幾中對包括能力交換Capability Exchange、 心貝匕才全觀寸Device ^Vatchdog、 斷開乂f端Disconnect Peer的Diameter 消息進(jìn)行處理并將接收到的目的地是該AAA服務(wù)器的Diameter消息送交給 上層的會話管理模塊,以及將其接收到的會話管理模塊發(fā)送的Diameter消息, 轉(zhuǎn)發(fā)至下層的TCP/SCTP交互模塊;會話管理模塊,負(fù)責(zé)管理每個Diameter會話,該模塊中設(shè)置并維護(hù)有一個 由會話標(biāo)識Session-Id索引的AAA應(yīng)用服務(wù)狀態(tài)機(jī)表,當(dāng)接收到的Diameter 消息中的Session-Id是一個已經(jīng)存在的會話ID,則尋找與其對應(yīng)的AAA應(yīng)用 服務(wù)狀態(tài)機(jī)來處理該消息;如果不存在該Session-Id,就根據(jù)應(yīng)用服務(wù)標(biāo)識 Application-Id新生成一個AAA應(yīng)用服務(wù)狀態(tài)機(jī),用于處理這個新的會話;AAA應(yīng)用服務(wù)模塊,用于實現(xiàn)AAA應(yīng)用服務(wù)狀態(tài)機(jī)的具體功能,所述狀 態(tài)機(jī)根據(jù)不同的AAA應(yīng)用服務(wù)會有所不同,該模塊從會話管理模塊收到 Diameter消息,根據(jù)其中的值,進(jìn)行不同的具體處理,并生成Diameter回復(fù)消 息,交由會話管理模塊發(fā)送。
3、 一種采用權(quán)利要求1所述的服務(wù)器對Diameter和RADIUS兩種協(xié)議數(shù) 據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征在于雖然Diameter協(xié)議能夠兼容RADIUS 協(xié)議,但是,由于Diameter協(xié)議增加了新的功能以及Diameter AVP和RADIUS Attribute數(shù)據(jù)包的才各式不完全相同,部分RADIUS屬性鍵值對Attribute在 Diameter中將被轉(zhuǎn)換為其他的屬性鍵值對AVP,即二者之間的轉(zhuǎn)換并不是完全 一~"對應(yīng)的,要處理一些特殊情況;包括下列操作步驟(1) 采用消息頭轉(zhuǎn)換和消息體轉(zhuǎn)換兩個步驟,完成將RADIUS消息轉(zhuǎn)換 為Diameter消息的數(shù)據(jù)包轉(zhuǎn)換,且兩個轉(zhuǎn)換才喿作的先、后順序是不限定的;(2) 先進(jìn)行消息體轉(zhuǎn)換,再進(jìn)行消息頭轉(zhuǎn)換,以實現(xiàn)Diameter應(yīng)答消息 轉(zhuǎn)換為RADIUS應(yīng)答消息。
4、 根據(jù)權(quán)利要求3所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征在 于所述步驟(1)進(jìn)一步包括下列操作內(nèi)容(11)進(jìn)行消息頭轉(zhuǎn)換根據(jù)RADIUS消息中的信息,生成Diameter消息 頭,即根據(jù)RADIUS消息頭中的命令代碼和該RADIUS消息中是否含有某個或 多個應(yīng)用服務(wù)特定的屬性4建值對來生成Diameter消息頭中的應(yīng)用l良務(wù)標(biāo)識ID 和命令代碼;并在轉(zhuǎn)換模塊中保存該RADIUS消息的消息驗證碼和命令序號, 再將Diameter消息頭中的命令標(biāo)識設(shè)置為對應(yīng)的標(biāo)識;由于會話管理模塊及后 續(xù)模塊不使用Diameter消息頭中的其他信息,因此其他字段不用填入特定值;(12 )進(jìn)行消息體轉(zhuǎn)換因RADIUS消息中的每個屬性鍵值對Attribute基 本獨立,與其他Attribute是否存在及其取值無關(guān),故逐個進(jìn)行RADIUS請求消 息中屬性鍵值對Attribute到Diameter請求消息屬性鍵值對AVP的轉(zhuǎn)換此時 只需要將RADIUS Attribute屬性代碼值作為Diameter AVP屬性代碼值,4字節(jié) 對齊地將Attribute的鍵值填入AVP鍵值后,再將4字節(jié)對齊后的AVP 4定值長 度填入AVP屬性鍵值對長度字段,AVP標(biāo)識字段填入默認(rèn)值。
5、根據(jù)權(quán)利要求4所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征 在于所述步驟(12)進(jìn)行消息體轉(zhuǎn)換時,個別RADIUS Attribute不能簡單地 直接轉(zhuǎn)換為Diameter AVP,其處理規(guī)則由使用該Attribute的AAA應(yīng)用服務(wù)決 定;其中適用于所有AAA應(yīng)用服務(wù)的需要特殊處理的RADIUS Attribute的處 理原則如下如果RADIUS消息存在消息-瞼i正屬性Message-Authenticator Attribute,則 必須先驗證其值,但不生成對應(yīng)的Diameter AVP;且如果驗證不成功,則丟棄 該RADIUS消息;RADIUS消息發(fā)送者的傳輸層地址必須和消息體中包含的網(wǎng)絡(luò)接入系統(tǒng) NAS標(biāo)識相符合,所述NAS標(biāo)識包括兩個屬性字段NAS標(biāo)識NAS-Identifier 和NAS IP地址NAS-IP-Address;轉(zhuǎn)換中要維護(hù)包括RADIUS消息頭中的命令序號字段、代理狀態(tài)屬性鍵值 對Proxy-State Attribute 、 RADIUS協(xié)議UDP包的源地址和源端口號在內(nèi)的信息, 并將這些信息保存在本地的一個消息轉(zhuǎn)換表中;如果RADIUS請求消息包含一個狀態(tài)屬性State Attribute,且該屬性值以"Diameter/"開頭,則其后數(shù)據(jù)包含Diameter協(xié)議的"源主機(jī)/源域/會話ID"信 息Origin-Host/Origin-Realm/Session-Id;如果該屬性不存在,則產(chǎn)生一個新的 Diameter會話標(biāo)識ID,并將該會話標(biāo)識ID力文入轉(zhuǎn)換后的會話ID屬性鍵值對 Session-Id AVP中;Diameter消息中的源主才幾Origin-Host和源域Origin-Realm兩個屬性鍵 f直 對必須由NAS-IP-Address和NAS-Identifier屬性對應(yīng)的域名全稱信息生成,并 加入轉(zhuǎn)換后的Diameter消息中;由RADIUS用戶名屬性User-Name Attribute中的信息生成目標(biāo)域?qū)傩?建值 對Destination-Realm AVP 。6、 根據(jù)權(quán)利要求4所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征在 于所述步驟(12)中,當(dāng)AAA應(yīng)用服務(wù)是可擴(kuò)展驗證協(xié)議EAP,在執(zhí)行 RADIUS-EAP到Diameter-EAP的消息體轉(zhuǎn)換時,進(jìn)一步包括下述轉(zhuǎn)換操作步驟將RADIUS-EAP消息包含的屬性鍵值對EAP-Message Attribute轉(zhuǎn)換為 Diameter EAP負(fù)載屬性4建4直對EAP-Payload AVP,如果存在多個RADIUS EAP-Message屬性鍵值對,則將其中的值合并放入一個Diameter EAP-Payload AVP中;長度為2字節(jié)的RADIUS EAP-Message Attribute,即EAP-Message的值為 空,代表EAP-Start ,轉(zhuǎn)換為空的EAP-Payload AVP 。7、 根據(jù)權(quán)利要求3所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征在 于所述步驟(2)進(jìn)一步包括下列操作內(nèi)容(21 )進(jìn)行消息體轉(zhuǎn)換先逐個地將Diameter應(yīng)答消息中的屬性鍵值對AVP 轉(zhuǎn)換為RADIUS應(yīng)答消息的屬性鍵值對Attribute;(22 )進(jìn)行消息頭轉(zhuǎn)換生成RADIUS消息體后,再根據(jù)Diameter消息中 的相關(guān)信息,生成RADIUS消息頭。8、 根據(jù)權(quán)利要求7所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征 在于所述步驟(21)進(jìn)行消息體轉(zhuǎn)換時,要執(zhí)行下述特殊處理操作如果被觸發(fā)應(yīng)答的RADIUS請求消息攜帶代理狀態(tài)屬性鍵值對Proxy-StateAttribute,則將本地緩存的請求消代理狀態(tài)屬性鍵值對Proxy-State加入該應(yīng)答 消息中;如果Diameter消息中含有會話超時屬性鍵值對Session-Timeout AVP,但是 沒有授權(quán)生命期屬性4建值對Authorization-Lifetime AVP,則將其轉(zhuǎn)換為RADIUS 會話超時屬性鍵值對Session-Timeout Attribute,但不生成終止才喿作屬性4建值對 Termination-Action Attribute;如果Diameter消息含有授權(quán)生命期屬性4建值對Authorization-Lifetime AVP, 但是沒有會話超時屬性鍵值對Session-Timeout AVP,則將其轉(zhuǎn)換為RADIUS會 話超時屬性鍵:值對Session-Timeout Attribute,并插入一個值為AA-REQEST的 終止才乘作屬性4建值對Termination-Action Attribute;并在轉(zhuǎn)換后,丟棄授4又生命 期屬性鍵值對Authorization-Lifetime AVP和重驗證請求類型屬性鍵值對 Re-Auth-Request-Type AVP;如果Diameter消息同時含有會話超時屬性鍵值對Session-Timeout AVP和授 權(quán)生命期屬性鍵值對Authorization-Lifetime AVP,則前者Session-Timeout必然 大于等于后者Authorization-Lifetime;此時將Authorization-Lifetime AVP的4直專爭 換為RADIUS會話超時屬性鍵:值對Session-Timeout Attribute,并且將RADIUS 終止才喿作屬性4建值對Termination-Action Attribute設(shè)為AA-REQUEST,再在轉(zhuǎn) 換后,丟棄授權(quán)生命期屬性鍵值對Authorization-Lifetime AVP和重驗證請求類 型屬性鍵:值對Re-Auth-Request-Type AVP;沖艮據(jù)緩存的RADIUS終端UDP IP和端口號發(fā)回RADIUS應(yīng)答消息。9、根據(jù)權(quán)利要求7所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征在 于所述步驟(21)中,當(dāng)AAA應(yīng)用服務(wù)是可擴(kuò)展鑒別協(xié)議EAP而進(jìn)行 Diameter-EAP到RADIUS-EAP的消息體轉(zhuǎn)換時,要遵守下述原則執(zhí)行轉(zhuǎn)換沖喿 作步驟如果Diameter消息頭命令代碼為EAP-Answer,并且操作結(jié)果屬性鍵值對 Result-Code AVP的鍵值為DIAMETER_MULTI—ROUND_AUTH,則將該消息 轉(zhuǎn)換為RADIUS Access-Challenge消息,同時將Diameter源主機(jī)、源域、會話ID三個屬性4定值對Origin-Host、 Origin-Realm、 Session-Id AVP的4建值內(nèi)容采用 7"符號分割,并加上前綴"Diameter/"而封裝為一個RADIUS狀態(tài)屬性鍵值 對State Attribute;如果存在多回合超時屬性4建值對Multi-Round-Time-Out AVP, 則將它的值裝入RADIUS會話超時屬性鍵值對Session-Timeout Attribute中;將Diameter EAP-Payload AVP轉(zhuǎn)換為RADIUS EAP-Message屬性鍵:值對 時,如果EAP-Payload AVP的長度超過RADIUS屬性鍵值對所允許的最大長度, 則將其分拆為多個EAP-Message屬性鍵值對;Diameter EAP重發(fā)起負(fù)載屬性鍵值對EAP-Reissued-Payload AVP應(yīng)被轉(zhuǎn)換 為一個或多個RADIUS EAP-Message屬性鍵值對,同時將RADIUS錯誤原因 屬性鍵值對Error-Cause Attribute的值設(shè)置為十進(jìn)制的202,即無效的EAP包 Invalid EAP Packet, Ignored;Diameter EAP會話主4定屬性4建值對EAP-Master-Session-Key AVP應(yīng)孚皮轉(zhuǎn)換 為廠家專有的RADIUS MS-MPPE-Recv-Key和MS-MPPE-Send-Key屬性鍵值 對;EAP-Master-Session-Key的前32字節(jié)放入MS-MPPE-Recv-Key中,后32 字節(jié)放入MS-MPPE-Send-Key中;如果存在 Diameter EAP 驗證方式計費屬性鍵值對 Accounting-EAP-Auth-Method AVP ,則4奪其丟棄。10、根據(jù)權(quán)利要求7所述的兩種協(xié)議數(shù)據(jù)包進(jìn)行相互轉(zhuǎn)換的方法,其特征 在于所述步驟(22)進(jìn)一步包括下列#:作內(nèi)容(221) 根據(jù)Diameter消息中的操作結(jié)果Result-Code AVP的值,生成 RADIUS 命令代碼,如果 Result-Code 為多回合交互-瞼i正 Diameter-Multi-Round誦Auth: 1001,貝'J RADIUS命令代碼為Access-Challenge(11);如果Result-Code AVP值為驗證成功,即Result-Code的取值范圍是(2000, 3000 ),則RADIUS命令代碼為Access-Accept (2 );如果Result-Code為驗證失 敗,貝'J RADIUS命令代碼為Access-Reject;(222) 將保存的RADIUS請求消息命令序號填入RADIUS應(yīng)答消息命令序號;7(223 )計算新生成的RADIUS消息長度,再將該數(shù)值填入命令長度中; (224)根據(jù)在轉(zhuǎn)換模塊中保存的RADIUS請求消息的消息驗證碼和新生 成的RADIUS消息,生成應(yīng)答消息的消息驗證碼。
全文摘要
一種支持RADIUS協(xié)議的Diameter-AAA服務(wù)器及其工作方法,該服務(wù)器使用統(tǒng)一的用戶信息,同時為Diameter和RADIUS兩種不同協(xié)議終端提供AAA應(yīng)用服務(wù)。該服務(wù)器包括順序連接的TCP/SCTP交互模塊、對端管理模塊、會話管理模塊和AAA應(yīng)用服務(wù)模塊;其特征在于,該服務(wù)器還增設(shè)有用于支持RADIUS協(xié)議終端的三個軟件功能模塊UDP交互模塊、轉(zhuǎn)換模塊和RADIUS對端管理模塊。本發(fā)明還提出處理Diameter和RADIUS兩種協(xié)議數(shù)據(jù)包相互轉(zhuǎn)換的方法,以便在新建的Diameter網(wǎng)絡(luò)系統(tǒng)中為Diameter和RADIUS兩種協(xié)議終端同時提供AAA服務(wù),并為以后逐步過渡到全Diameter AAA系統(tǒng)創(chuàng)造條件和基礎(chǔ)。
文檔編號H04L29/06GK101252788SQ200810103890
公開日2008年8月27日 申請日期2008年4月11日 優(yōu)先權(quán)日2008年4月11日
發(fā)明者上 馮, 李學(xué)春, 鋒 林, 譚立彥 申請人:北京首信科技有限公司