Portal逃生技術介紹


Portal逃生

產生背景

在目前的Portal實際組網應用中,如果接入設備與Portal服務器的通信中斷,會造成新用戶無法上線,已經在線的Portal用戶無法正常下線,設備和Portal服務器信息不一致帶來的計費問題。

這些現象會給網絡的使用者帶來很大的不便。因此需要在Portal服務器無法正常工作的情況下,能夠提供一種方式,讓用戶仍然可以正常使用網絡,並通過日誌和Trap的方式報告故障,也就是本文所述的Portal逃生方案。

方案簡介

Portal逃生方案實現以下兩大功能:

l              周期性探測Portal服務器

通過可配置的探測方法(在下麵提到有兩種探測方式)周期性探測Portal服務器,若Portal服務器N次(N可配)不可達則變成Down狀態(逃生狀態),取消網絡的認證限製,允許Portal用戶不需經過認證即可訪問網絡資源,並發送狀態改變的Trap信息和日誌。當探測到服務器可達時,恢複服務器狀態為Up狀態(認證狀態),並重新開啟網絡認證限製,不允許未認證的用戶訪問網絡,並發送狀態恢複的日誌和Trap

l              設備和Portal服務器同步用戶信息

Portal服務器定時將自己的在線用戶信息周期性地通過用戶信息同步報文發送給接入設備。如果同步報文中包含了設備上不存在的的用戶信息,則接入設備會將這些用戶信息返回給Portal服務器,由Portal服務器將其強製下線。如果某用戶連續N個周期(N可配)都未在從Portal服務器發送過來的同步報文中出現,則接入設備會將該用戶強製下線。

技術優點

l              Portal服務器不可達或者Portal服務不能正常工作時,設備可以臨時放開對用戶訪問網絡的認證限製,不中斷或停止用戶的正常網絡訪問,當Portal服務器恢複後,設備再恢複為正常認證狀態,減少了服務器故障給用戶業務帶來的影響。

l              用戶信息同步功能提供了一種同步機製,使得Portal服務器和設備上的用戶信息保持周期性同步,避免了因為服務器斷開而造成用戶長時間無法下線的問題。

方案實現

周期性探測Portal服務器

探測方式

接入設備探測Portal服務器狀態的具體實現方式有以下兩種:

l              探測HTTP連接:接入設備定期向Portal服務器的HTTP服務端口發起TCP連接。若連接成功建立則表示此服務器的HTTP服務已開啟,就認為一次探測成功且服務器可達(狀態為Up);若連接失敗則認為一次探測失敗。

l              探測Portal心跳報文:支持Portal逃生心跳功能的Portal服務器(目前僅iMC支持)會定期向接入設備發送Portal心跳報文,設備通過檢測此報文來判斷服務器的可達狀態:若設備在指定的周期內收到Portal心跳報文或者其它認證報文,且驗證其正確,則認為此次探測成功且服務器可達(狀態為Up),否則認為此次探測失敗。

在實際應用中,支持隻采用其中一種探測方式或同時采用兩種探測方式。如果同時采用了兩種探測方式,則隻要其中任何一種探測方式結果表明服務器不可達,即認為服務器不可達。而在服務器不可達狀態下,隻有采用兩種探測方式的探測都成功後才能認為服務器恢複為可達狀態。

探測周期及最大探測失敗次數

通過命令行可以配置每次探測之間的時間間隔,此間隔稱為探測周期。一次探測失敗並不一定認為服務器不可達,而需要查看連續探測失敗的次數是否達到配置的最大探測失敗次數,若達到此值則認為服務器不可達,否則隻是累加,當某此探測成功後,此值會自動清零。

可達狀態改變時觸發執行的操作

若探測結果標明某Portal服務器可達狀態發生了變化,則接入設備可觸發執行相應的操作來應對這種變化帶來的影響,具體包括以下三種:

l              發送TrapPortal服務器可達或者不可達的狀態改變時,向網管服務器發送Trap信息。Trap信息中記錄了Portal服務器名以及該服務器的當前狀態。

l              發送日誌:Portal服務器可達或者不可達的狀態改變時,發送日誌信息。日誌信息中記錄了Portal服務器名以及該服務器狀態改變前後的狀態。

l              打開網絡限製(Portal逃生):Portal服務器不可達時,暫時取消端口進行的Portal認證,允許所有Portal用戶訪問網絡資源。之後,若設備收到Portal服務器的心跳報文,或者收到其它認證報文(上線報文、下線報文等),則恢複該端口的Portal認證功能。

在實際應用中,支持同時配置的多種操作並發執行。

探測過程

假設接入設備上同時開啟了兩種方式的服務器探測功能,且Portal服務器上啟用了針對該接入設備的Portal逃生心跳功能,具體的探測過程如下圖所示。

圖 1 Portal服務器探測過程示意圖

支持Portal雙機熱備組網

互為備份的兩台接入設備均開啟Portal服務器探測功能,隻要有一端探測成功(探測到服務器狀態可達),就將此消息通知對端,對端收到消息後也認為此次探測成功。

設備和Portal服務器同步用戶信息

探測方式

Portal服務器定期將自己的在線用戶信息通過用戶信息同步報文發送給設備。該用戶信息同步報文中包含了Portal服務器上記錄的當前在線用戶的IPv4地址,一個報文最多可以包含630個用戶的IP地址。

接入設備周期性地對同步報文進行檢測,檢測到該用戶信息同步報文後,將自己本地保存的用戶信息與其內容進行對比,具體處理過程如下:

l              如果發現同步報文中有設備上不存在的用戶信息,則認為這些用戶在服務器上多餘,並通過響應報文將這些用戶信息發送給Portal服務器。

l              如果同步報文中的用戶信息在設備上都存在,則設備不對該同步報文進行響應,隻是將這些用戶標記為已同步,對於不在同步報文中的用戶不置同步標記,並認為一次同步失敗。

檢測間隔和連續檢測失敗的最大次數

通過命令行可以配置設備檢測用戶信息同步報文的時間間隔,此間隔稱為檢測間隔。用戶的一次同步失敗並不一定代表該用戶在設備上多餘,而需要查看連續同步失敗的次數是否達到配置的最大檢測失敗次數,若達到此值則認為該用戶多餘,否則隻是累加,當某次同步成功後,此值會自動清零。

設備上多餘的用戶信息在用戶的同步失敗次數達到最大值後刪除,Portal服務器上多餘的用戶信息在每次同步報文交互後被服務器刪除。通過這種機製,設備與服務器的用戶信息保持了一致。

探測過程

假設接入設備上配置了Portal用戶信息同步功能,且Portal服務器上啟用了針對該接入設備的Portal用戶心跳功能,具體的同步過程如下圖所示。

圖 2 Portal用戶信息同步過程示意圖

應用限製

l              隻有對於支持Portal逃生心跳功能(目前僅iMCPortal服務器支持)的Portal服務器,探測Portal心跳報文類型的探測方法才有效。為了配合此類型的探測,還需要在Portal服務器上選擇支持逃生心跳功能,且服務器上配置的逃生心跳間隔要小於等於設備上配置的服務器探測間隔。類似,Portal用戶信息同步功能也需要Portal服務器的配合:需要在Portal服務器上選擇支持用戶心跳功能,且服務器上配置的用戶心跳間隔要小於等於設備上配置的用戶同步報文檢測間隔。

l              對於本地Portal服務器或不支持Portal逃生心跳功能的Portal服務器,隻能采用探測HTTP連接的探測方式進行探測。

l              Portal雙機熱備運行過程中,對於普通用戶,若在連續指定的最大次數內未被同步,設備會將其強製下線,但對於處於雙機協同狀態的用戶,設備不會將其強製下線。

H3C實現的技術特色

H3C實現的Portal逃生方案與業界其它方案相比,不僅實現了接入設備可根據服務器的狀態變化來開啟或關閉Portal認證的功能,還可以允許Portal服務器功能恢複正常後,之前已經在線的用戶不必重新認證就能直接上線。

典型組網應用

圖 3 Portal逃生典型組網圖

用戶通過Device上的Portal認證接入網絡,並采用RADIUS服務器作為認證/計費服務器。

具體要求如下:

l              用戶在通過Portal認證前,隻能訪問Portal服務器;在通過Portal認證後,可以使用此IP地址訪問非受限的互聯網資源。

l              接入設備能夠探測到Portal服務器是否可達,並輸出可達狀態變化的Trap信息,在服務器不可達時(例如,網絡連接中斷、網絡設備故障或服務器無法正常提供服務等情況),取消Portal認證,使得用戶仍然可以正常訪問網絡。

l              接入設備能夠與服務器定期進行用戶信息的同步。

 

 

附件下載

聯係我們