訪問控制方法和用于訪問控制的網絡節(jié)點的制作方法
【技術領域】
[0001]本申請涉及電視通信技術領域,具體涉及一種訪問控制方法和用于訪問控制的網絡節(jié)點。
【背景技術】
[0002]現(xiàn)有技術中,源站會根據(jù)配置文件或者語法結構生成數(shù)據(jù)表形式的ACL(aCCeSScontrol list,訪問控制列表),然后將生成的ACL導入運維系統(tǒng),經過運維系統(tǒng)的配置解析或者人工解析,生成可供緩存系統(tǒng)讀取解析的配置文件,將配置文件分別下發(fā)到各網絡節(jié)點中,每個網絡節(jié)點中都要配置有專門的ACL控制模塊,由網絡節(jié)點中的專門的ACL控制模塊按照既定語法去解析配置文件,網絡節(jié)點解析配置文件獲得ACL后,重新加載(reload)ACL或者熱重啟網絡節(jié)點,再重新加載或者熱重啟成功后,ACL才完成在網絡節(jié)點的部署,從而達到訪問控制的目的。如果再重新加載或者熱重啟失敗,則需要反復不斷地重新加載或者熱重啟。如果源站的ACL發(fā)生變化,則需要重新進行上述過程。
[0003]上述方法中,雖然最終能夠實現(xiàn)訪問控制,但是并沒有基于HTTP協(xié)議,因此各網絡節(jié)點都按照自身需求自由定義配置格式,造成各級網絡節(jié)點間互不兼容,而這些網絡節(jié)點共存于網絡,顯然無法采用相同的配置文件來下發(fā)ACL,造成了源站維護成本的增加。
[0004]另外,因為在源站根據(jù)ACL生成配置文件時,必須由運維系統(tǒng)進行解析和轉換,源站需要按照當前運維系統(tǒng)要求的格式去填寫待配置的ACL,這樣才能夠使得運維系統(tǒng)能夠識別和翻譯。而運維系統(tǒng)也需要按照網絡節(jié)點可以識別的配置格式將ACL轉換配置文件,并下發(fā)到網絡節(jié)點中。顯然這個過程具有極大的排他性,僅適用于網絡節(jié)點分布和個體狀況已知的局域網,無法直接應用于整個互聯(lián)網中。
[0005]另外,在網絡擴展性方面,上述方法的局域網中的網絡節(jié)點在管理軟件上必須是統(tǒng)一的結構,因為如果出現(xiàn)不同管理軟件的網絡節(jié)點,源站側的運維系統(tǒng)為了滿足不同的管理軟件,就需要針對不同的管理軟件增加轉換模塊,生成不同的配置文件,以適應不同的管理軟件的格式要求,并且源站需要分辨出應用不同管理軟件的網絡節(jié)點,向這些網絡節(jié)點下發(fā)不同的配置文件,當局域網中網絡節(jié)點的管理軟件混用程度超過一定的數(shù)量級,運維系統(tǒng)的運行、配置過程將會非常復雜,維護成本急劇增加。
[0006]在運維系統(tǒng)下發(fā)了配置文件,網絡節(jié)點解析配置文件獲得ACL后,需要對網絡節(jié)點進行重新加載或者熱重啟操作。在業(yè)務繁忙的局域網中,重新加載或者熱重啟操作很可能會造成網絡QPS(每秒查詢率,Query Per Second)瞬間下降,網絡節(jié)點側的服務器CPU占用率瞬間升高到最大值。而且,重新加載或者熱重啟操作存在失敗的風險,一旦失敗會引發(fā)雪崩效應,導致局域網癱瘓,影響用戶正常訪問。
【發(fā)明內容】
[0007]本申請的目的在于提供一種訪問控制方法和用于訪問控制的網絡節(jié)點。
[0008]為了達到上述目的,本申請公開了一種訪問控制方法,所述方法包括:網絡節(jié)點接收客戶端發(fā)來的HTTP接入請求,識別所述HTTP接入請求中的referer字段,所述referer字段中包括請求訪問的資源標識;所述網絡節(jié)點根據(jù)所述請求訪問的資源標識在一組或多組訪問控制列表中進行匹配,其中,所述一組或多組訪問控制列表被添加在源站向所述網絡節(jié)點下發(fā)的所述訪問控制列表響應的擴展頭域中,對于任一組訪問控制列表包括被控資源標識及所述被控資源標識的允許/拒絕標識位;當所述請求訪問的資源標識匹配到被控資源標識時,所述網絡節(jié)點獲取所述被控資源標識的允許/拒絕標識位,根據(jù)所述被控資源標識的允許/拒絕標識位對發(fā)出所述HTTP接入請求的客戶端發(fā)出允許/拒絕訪問的HTTP接入響應。
[0009]進一步地,對于任一組訪問控制列表還包括所述被控資源標識的匹配標識位;其中,任一組訪問控制列表內,所述被控資源標識被設置為標準匹配標識位時,所述被控資源標識包括:域名為被控資源標識的所有資源標識;所述被控資源標識被設置為擴展匹配標識位時,所述被控資源標識包括:主機名包含有被控資源標識的所有資源標識;所述被控資源標識被設置為全部匹配標識位時,被控資源標識為默認缺省狀態(tài),被控資源標識包括:所有資源標識。
[0010]進一步地,所述網絡節(jié)點根據(jù)所述請求訪問的資源標識在一組或多組訪問控制列表中進行匹配,包括:當所述訪問控制列表為多組時,所述網絡節(jié)點根據(jù)所述多組訪問控制列表的排列順序逐一進行匹配,并以首次匹配到的被控資源標識的允許/拒絕標識位作為匹配結果從而對發(fā)出所述HTTP接入請求的客戶端發(fā)出允許/拒絕訪問的HTTP接入響應。
[0011]進一步地,多組所述訪問控制列表被添加在源站向所述網絡節(jié)點下發(fā)的所述訪問控制列表響應的擴展頭域中時,將多組所述訪問控制列表中被控資源標識及所述被控資源標識的允許/拒絕標識位都相同的部分進行合并。
[0012]進一步地,當所述請求訪問的資源標識匹配不到被控資源標識或者識別所述訪問控制列表為空時,判定對于客戶端針對所述源站向所述網絡節(jié)點發(fā)來的HTTP接入請求,發(fā)出允許訪問的HTTP接入響應。
[0013]進一步地,所述網絡節(jié)點識別所述HTTP接入請求中的referer字段,包括:所述網絡節(jié)點識別不到所述HTTP接入請求中的referer字段或識別所述referer字段為空,貝Ij直接判定向所述客戶端發(fā)出允許訪問的HTTP接入響應。
[0014]進一步地,所述網絡節(jié)點識別所述HTTP接入請求中的referer字段,包括:所述網絡節(jié)點識別到所述HTTP接入請求中的referer字段內攜帶的請求訪問的資源標識不是有效文法格式的資源標識,向所述客戶端發(fā)出拒絕訪問的HTTP接入響應;有效文法格式的資源標識,包括以HTTP或者HTTPS開頭的通用資源標識符。
[0015]進一步地,所述允許訪問的HTTP接入響應,包括狀態(tài)信息200 OK ;所述拒絕訪問的HTTP接入響應,包括狀態(tài)信息403 forbidden ο
[0016]進一步地,所述網絡節(jié)點接收客戶端發(fā)來的HTTP接入請求,識別所述HTTP接入請求中的referer字段,包括:所述網絡節(jié)點接收客戶端發(fā)來的HTTP接入請求,識別所述HTTP接入請求所請求的資源文件是否存在;如果所述資源文件存在,識別所述資源文件是否過期,并識別所述HTTP接入請求中的referer字段;如果所述資源文件不存在,所述網絡節(jié)點觸發(fā)所述源站檢測是否自身存在所述資源文件;當所述源站檢測到自身存在所述資源文件時,所述網絡節(jié)點接收所述源站發(fā)來的所述資源文件、過期時間以及擴展頭域中攜帶有所述訪問控制列表的獲取確認響應,識別所述資源文件是否過期,并識別所述HTTP接入請求中的referer字段;當所述源站檢測到自身不存在所述資源文件時,所述網絡節(jié)點接收所述源站發(fā)來的獲取失敗響應,并向發(fā)出所述HTTP接入請求的客戶端發(fā)出所述獲取失敗響應。
[0017]進一步地,識別所述資源文件是否過期,并識別所述HTTP接入請求中的referer字段,包括:識別所述資源文件是否過期;如果所述資源文件未過期,所述網絡節(jié)點識別所述HTTP接入請求中的referer字段;如果所述資源文件已過期,所述網絡節(jié)點向下發(fā)所述資源文件的源站發(fā)出獲取請求,所述獲取請求觸發(fā)所述源站檢測是否所述資源文件已發(fā)生更新;當所述源站檢測到所述資源文件已發(fā)生更新時,所述網絡節(jié)點接收所述源站發(fā)來的擴展頭域中攜帶有所述訪問控制列表的獲取確認響應以及更新后的所述資源文件、過期時間,識別所述HTTP接入請求中的referer字段;當所述源站檢測到所述資源文件未發(fā)生更新時,所述網絡節(jié)點接收所述源站發(fā)來的擴展頭域中攜帶有所述訪問控制列表的獲取失敗響應以及新的過期時間,識別所述HTTP接入請求中的referer字段。
[0018]進一步地,所述獲取請求,包括If-Modify-Since請求;所述獲取確認響應,包括狀態(tài)信息200 OK ;所述獲取失敗響應,包括狀態(tài)信息304 Not Modified或404 not found。
[0019]進一步地,所述網絡節(jié)點對發(fā)出所述HTTP接入請求的客戶端發(fā)出的允許/拒絕訪問的HTTP接入響應中,還具有攜帶所述訪問控制列表的擴展頭域。
[0020]為了達到上述目的,本申請還公開了一種用于訪問控制的網絡節(jié)點,包括:網絡接收模塊、資源匹配模塊、一組或多組訪問控制列表和訪問控制模塊;所述一組或多組訪問控制列表,被添加在源站向所述網絡節(jié)點下發(fā)的所述訪問控制列表響應的擴展頭域中,對于任一組訪問控制列表包括被控資源標識及所述被控資源標識的允許/拒絕標識位;所述網絡接收模塊,用于接收客戶端發(fā)來的HTTP接入請求,識別所述HTTP接入請求中的referer字段,所述referer字段中包括請求訪問的資源標識;所述資源匹配模塊,用于根據(jù)所述請求訪問的資源標識在所述一組或多組訪問控制列表中進行匹配;所述訪問控制模塊,當所述資源匹配模塊根據(jù)所述請求訪問的資源標識匹配到被控資源標識時,用于獲取所述被控資源標識的允許/拒絕標識位,根據(jù)所述被控資源標識的允許/拒絕標識位對發(fā)出所述HTTP接入請求的客戶端發(fā)出允許/拒絕訪問的HTTP接入響應。
[0021]進一步地,所述任一組訪問控制列表,還包括所述被控資源標識的匹配標識位,所述被控資源標識被設置為標準匹配標識位時,所述被控資源標識包括:域名為被控資源標識的所有資源標識;所述被控資源標識被設置為擴展匹配標識位時,所述被控資源標識包括:主機名包含有被控資源標識的所有資源標識;所述被控資源標識被設置為全部匹配標識位時,被控資源標識為默認缺省狀態(tài),被控資源標識包括:所有資源標識。
[0022]進一步地,所述資源匹配模塊,當所述訪問控制列表為多組時,用于根據(jù)所述多組訪問控制列表的排列順序逐一進行匹配,并以首次匹配到的被控資源標識的允許/拒絕標識位作為匹配結果從而對發(fā)出所述HTTP接入請求的客戶端發(fā)出允許/拒絕訪問的HTTP接入響應。
[0023]進一步地,所述多組所述訪問控制列表,被添加在源站向所述網絡節(jié)點下發(fā)的所述訪問控制列表響應的擴展頭域中時,將多組所述訪問