• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Linux的HGU設(shè)備接入公網(wǎng)用戶數(shù)量限制的內(nèi)核實現(xiàn)新方法

      2019-04-01 15:06彭求明
      科技創(chuàng)新導(dǎo)報 2019年28期

      彭求明

      摘? ?要:HGU用戶側(cè)接口(LAN、WLAN)可以連接很多用戶終端,并在同一時間接入公網(wǎng),出于安全管理和上網(wǎng)質(zhì)量的考慮,在國內(nèi)三大運營商電信、移動、聯(lián)通技術(shù)規(guī)范中,均有對接入公網(wǎng)用戶數(shù)量限制功能的需求,本文分析了現(xiàn)有的實現(xiàn)方法,研究了Linux內(nèi)核Netfilter網(wǎng)絡(luò)層的實現(xiàn)機制,通過在Netfilter的NF_IP_FORWARD Hook點注冊鉤子處理函數(shù),在內(nèi)核態(tài)實現(xiàn)了一種接入公網(wǎng)用戶數(shù)量限制的新方法。

      關(guān)鍵詞:HGU/家庭網(wǎng)關(guān)? Netfilter? Hook點? 接入公網(wǎng)用戶數(shù)量限制? Linux內(nèi)核

      中圖分類號:TP31? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)10(a)-0147-02

      1? HGU應(yīng)用場景

      HGU(Home Gateway Unit家庭網(wǎng)關(guān)單元)是連接家庭網(wǎng)絡(luò)和Internet的網(wǎng)關(guān)單元,可通過各種網(wǎng)絡(luò)側(cè)接口(PON接入、xDSL接入、以太網(wǎng)接入等)與接入網(wǎng)/接入點相連最終連到Internet,并通過用戶側(cè)接口(LAN、WLAN)與各種用戶終端相連,用戶終端通常有個人計算機PC、筆記本、手機、平板電腦、機頂盒等,基本都是通過路由模式接入Internet,機頂盒會用到橋接模式,固定配置一個LAN口為橋接模式,其他LAN口和WLAN連接的各種用戶終端都是通過路由模式訪問Internet上網(wǎng)。出于安全管理和上網(wǎng)質(zhì)量的考慮,在國內(nèi)三大運營商電信、移動、聯(lián)通規(guī)范中,均有對用戶上網(wǎng)數(shù)量限制的功能:路由模式下,HGU/家庭網(wǎng)關(guān)應(yīng)支持對同一時間接入公網(wǎng)用戶數(shù)量進(jìn)行限制,配置接入公網(wǎng)最大用戶數(shù)為N時,第N+1個用戶開始無法正常上網(wǎng)。

      2? 接入公網(wǎng)用戶數(shù)量限制的現(xiàn)有實現(xiàn)方法

      接入公網(wǎng)用戶數(shù)量限制,目前的實現(xiàn)方法是:在HGU上開啟DHCP Server功能,用戶側(cè)終端通過DHCP自動獲取IP地址,配置DHCP Server對分配IP地址數(shù)量限制,來實現(xiàn)用戶上網(wǎng)數(shù)量限制功能,但如果對用戶終端配置了靜態(tài)IP地址,就無法限制。

      本文研究了Linux內(nèi)核Netfilter網(wǎng)絡(luò)層的實現(xiàn)機制,通過在Netfilter的NF_IP_FORWARD Hook點注冊鉤子處理函數(shù),在內(nèi)核態(tài)實現(xiàn)了一種接入公網(wǎng)用戶數(shù)量限制的新方法,用戶側(cè)終端不管是通過DHCP自動獲取IP地址,還是配置靜態(tài)IP地址,都能進(jìn)行接入公網(wǎng)用戶數(shù)量的限制。

      3? 在內(nèi)核態(tài)實現(xiàn)接入公網(wǎng)用戶數(shù)量限制

      3.1 用戶數(shù)量限制在Netfilter中Hook點選擇

      Netfilter是Linux 2.4.x引入的一個子系統(tǒng),它作為一個通用的、抽象的框架,提供一整套的hook函數(shù)的管理機制,使得諸如數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和基于協(xié)議類型的連接跟蹤成為了可能。Netfilter架構(gòu)就是在整個網(wǎng)絡(luò)流程的若干位置放置了一些檢測點(Hook),而在每個檢測點上登記了一些處理函數(shù)進(jìn)行處理。網(wǎng)絡(luò)層(IP)五個Hook點的位置如圖1所示。

      NP_IP_PRE_ROUTING:剛剛進(jìn)入網(wǎng)絡(luò)層的數(shù)據(jù)包通過此點(剛剛進(jìn)行完版本號,校驗和等檢測),目的地址轉(zhuǎn)換在此點進(jìn)行;

      NF_IP_LOCAL_IN:經(jīng)路由查找后,送往本機的通過此檢查點,INPUT包過濾在此點進(jìn)行;NF_IP_FORWARD:要轉(zhuǎn)發(fā)的包通過此檢測點,F(xiàn)ORWARD包過濾在此點進(jìn)行;

      NF_IP_LOCAL_OUT:本機進(jìn)程發(fā)出的包通過此檢測點,OUTPUT包過濾在此點進(jìn)行;

      NF_IP_POST_ROUTING:所有馬上便要通過網(wǎng)絡(luò)設(shè)備出去的包通過此檢測點,內(nèi)置的源地址轉(zhuǎn)換功能(包括地址偽裝)在此點進(jìn)行。

      HGU下掛的各種用戶終端上網(wǎng)時,HGU收到的每個數(shù)據(jù)包,首先都是進(jìn)入第一個Hook點NP_IP_PRE_ROUTING進(jìn)行處理;然后經(jīng)過路由判決,決定該數(shù)據(jù)包是需要轉(zhuǎn)發(fā)還是發(fā)給本機,用戶終端上網(wǎng)的數(shù)據(jù)包的目的地不是本機,需要轉(zhuǎn)發(fā),進(jìn)入Hook點NF_IP_FORWARD處理,經(jīng)過轉(zhuǎn)發(fā)的數(shù)據(jù)包經(jīng)過最后一個Hook點NF_IP_POST_ROUTING處理以后,再傳輸?shù)骄W(wǎng)絡(luò)上,之后進(jìn)入Internet。因此用戶終端上網(wǎng)的數(shù)據(jù)包肯定會進(jìn)入Hook點NF_IP_FORWARD處理,所以選擇在此Hook點注冊用戶數(shù)量限制鉤子處理函數(shù)。

      3.2 接入公網(wǎng)用戶數(shù)量限制的內(nèi)核實現(xiàn)

      接入公網(wǎng)用戶數(shù)量限制內(nèi)核實現(xiàn)是以user_num_limit.ko形式提供,分為兩個子模塊:初始化模塊、用戶數(shù)量限制實現(xiàn)模塊。

      (1)初始化模塊:用戶數(shù)量限制內(nèi)核組件user_num_limit.ko初始化,是向Netfilter在網(wǎng)絡(luò)層的NF_IP_FORWARD點注冊用戶數(shù)量限制的鉤子處理函數(shù),分兩步,首先定義一個struct nf_hook_ops結(jié)構(gòu)體變量user_num_limit,并且對每個成員進(jìn)行賦值:

      首先判斷輸入?yún)?shù),如果skb或skb->mac_header或輸入設(shè)備指針或輸出設(shè)備指針任一為NULL,就接受此報文,不做用戶數(shù)限制,繼續(xù)向下處理;判斷輸入網(wǎng)絡(luò)設(shè)備和輸出網(wǎng)絡(luò)設(shè)備名的首字母,輸入設(shè)備名的首字母必須為'b',表示輸入設(shè)備名是brxxx,輸出設(shè)備名的首字母可以為'p'或'w',表示輸出設(shè)備名是pon.xxx或wan.xxxx,這些都要進(jìn)行用戶數(shù)限制處理,其他情況都接受允許繼續(xù)向下處理,不做用戶數(shù)限制。

      然后是用戶數(shù)限制處理,整個處理過程要加軟中斷自旋鎖保護(hù),因為操作了全局變量用戶鏈表、最大用戶數(shù)、當(dāng)前用戶數(shù)、用戶超時時間。遍歷用戶鏈表中每一個用戶節(jié)點,分三種情況:用戶鏈表中的用戶mac地址與此報文中mac地址一樣、用戶鏈表中的mac地址與此報文中的mac地址不一樣、用戶鏈表遍歷完后還找不到此報文的mac地址。如果用戶鏈表中的用戶mac地址與此報文中mac地址一樣,就更新此用戶的接入時間為當(dāng)前jiffies,break跳出遍歷,接受此報文,該用戶就能上網(wǎng);如果用戶鏈表中的mac地址與此報文中的mac地址不一樣,就判斷超時時間是否已到,如果已經(jīng)超時了,就從用戶鏈表中把此用戶刪掉,并把當(dāng)前用戶數(shù)減1,如果還沒超時,就不做處理,都是繼續(xù)遍歷;如果用戶鏈表遍歷完后還找不到此報文的mac地址,先判斷當(dāng)前用戶數(shù)是否小于最大用戶數(shù),如果是,就把此新用戶節(jié)點添加到用戶鏈表中,并把當(dāng)前用戶數(shù)加1,用戶節(jié)點信息包括mac地址和接入時間,并接受此報文,該用戶就能上網(wǎng),此情況也包括了最開始用戶鏈表為空;如果當(dāng)前用戶數(shù)大于或等于最大用戶數(shù)就丟棄此報文,該用戶就不能上網(wǎng)。

      4? 結(jié)語

      本文提出的接入公網(wǎng)用戶數(shù)量限制實現(xiàn)的新方法,與現(xiàn)有方法相比,用戶側(cè)終端不管是通過DHCP自動獲取IP地址,還是配置靜態(tài)IP地址,都能進(jìn)行用戶上網(wǎng)數(shù)量的限制,而且本方法都是在Linux內(nèi)核態(tài)運行,所以執(zhí)行效率高。

      參考文獻(xiàn)

      [1] 楊曉勇,于曉翠.IP家庭網(wǎng)關(guān)作為智能家居服務(wù)的通用多用途啟動器[J]. 機電工程技術(shù),2019(4):33-36.

      [2] 陳偉豪,代康.基于家庭網(wǎng)關(guān)構(gòu)建物聯(lián)網(wǎng)家庭應(yīng)用系統(tǒng)的研究[J].產(chǎn)業(yè)與科技論壇,2019(5):73-74.

      [3] 余飛,楊波.Linux下基于Netfilter/Iptables防火墻的研究與應(yīng)用[J]. 齊齊哈爾大學(xué)學(xué)報:自然科學(xué)版,2015(3):53-58.

      [4] 王繼魁. 基于Linux的netfilter/iptables防火墻的實現(xiàn)[J].通化師范學(xué)院學(xué)報,2010(2):55-56.

      铜鼓县| 霍山县| 丹阳市| 罗甸县| 裕民县| 贵溪市| 昌宁县| 潮州市| 余庆县| 开阳县| 福建省| 彰武县| 延边| 赤水市| 昭平县| 双鸭山市| 甘洛县| 博客| 焦作市| 宜宾市| 怀宁县| 中山市| 商洛市| 长垣县| 呈贡县| 旌德县| 顺义区| 岢岚县| 丰台区| 类乌齐县| 广河县| 晋宁县| 阜新市| 崇州市| 阳春市| 长宁区| 邢台市| 龙门县| 金寨县| 荣成市| 温宿县|