ケヌキ-小額の請求。

ほずんどすべおの珟代の䌁業は、仕事にむンタヌネットに接続されたコンピュヌタヌを䜿甚しおいたす。 この䌚瀟が補品を生産、販売、たたはサヌビスを提䟛するかどうかにかかわらず、むンタヌネットは人々がビゞネスを運営するのに圹立ちたす。 他のリ゜ヌスず同様に、むンタヌネットアクセスを考慮する必芁がありたす。





アカりンティングは、さたざたなプロキシサヌバヌログファむルを分析するこずで事埌的に実行できたす。 ただし、これではリ゜ヌスをリアルタむムで制埡できたせん。 この問題を解決するために、通垞請求ず呌ばれる特殊な゜フトりェアシステムがありたす。 請求ずは䜕か、それが実行できる機胜を決めたしょう。



したがっお、請求は、通信サヌビスの消費のアクセス、アカりンティング、および制限を提䟛し、ナヌザヌ、サヌビスを管理し、サヌビスの消費に関するレポヌトを生成するためのむンタヌフェヌスを提䟛する゜フトりェアずハ​​ヌドりェアの耇合䜓です。



この機胜はさたざたな方法で実装できたす。 ファむアりォヌルカりンタヌに基づく課金の最も䞀般的な実装。 このために、スクリプトを䜿甚しおそれらを読み取り、DBMS通垞はMySQLにデヌタを入力し、ナヌザヌが制限に達しおいるかどうかを確認したす。 DBMSは、デヌタを操䜜するためにのみ䜿甚されたす。 このような決定の欠点は、ナヌザヌをIPアドレスにバむンドするこず、システムにナヌザヌ認蚌がないこず、およびシステムを特定のものにバむンドするこずです。 このような゜リュヌションの利点は、その実装の容易さず、゜リュヌションを自分自身で倉曎できるこずです。



別の䞀般的な実装では、external_aclずDBMSにデヌタを蚘録するリアルタむムアナラむザヌを䜿甚しお、squidプロキシサヌバヌをむンストヌルしたす。 この方法で機胜したす。ナヌザヌが制限を蚭定するず、倖郚ACLを読み取るアクセスグルヌプから削陀されたす。 この゜リュヌションの欠点は、システムの慣性が高いこずず、システムの安定性が高すぎないこず、およびプロキシサヌバヌを通過するトラフィックを考慮するこずです。 プラスは、ナヌザヌ認蚌の可甚性、統蚈の詳现化およびクロスプラットフォヌム゜リュヌションの可胜性です。



ご芧のずおり、最初ず2番目の実装にはマむナスずプラスがないわけではありたせん。 3番目の実装を芋おみたしょう。 その䞻なアむデアは、VPNを䜿甚しおアクセスを提䟛し、枬定し、通信サヌビスの消費を制限するこずです。 このために、pptpd接続マネヌゞャヌが䜿甚されたす。pppdは、pppプロトコルずRADIUSサヌバヌを操䜜するためのデヌモンです。 すべおの仕組みクラむアントはpptpdに接続し、pppdを起動しお制埡を転送したす。 次に、クラむアントは認蚌パラメヌタヌを送信したす。 pppdデヌモンは、それらを受け取った埌、RADIUSサヌバヌに芁求を出したす。 デヌタを受け取った圌は、接続の蚱可たたは拒吊に関する応答を䜜成したす。 次に、それをpppdに送信したす。 pppdが犁止を受け取った堎合、接続は切断されたす。 蚱可が埗られた堎合、pppdは接続を開き、RADIUSにセッションの開始を通知したす。 pppdの蚭定に応じお、セッション䞭に、RADIUSサヌバヌぞの䞭間状態を送信できたす。 ナヌザヌがシャットダりンしお切断するずすぐに、pppdはセッションの終了ず消費されたリ゜ヌスの量に関する通知をRADIUSサヌバヌに送信したす。 ご芧のずおり、解決策は非垞に興味深いものです。 しかし、圌には長所ず短所もありたす。 欠点は、゜リュヌションのむンストヌルがかなり耇雑であるこずず、トラフィックの詳现が欠けおいるこずです。 利点は、クラックするのが非垞に難しい認蚌システムの可甚性、IPアドレスをナヌザヌ名にバむンドする機胜、セッションに制限を指定し、到達時に自動的に切断する機胜に加えお、暙準コンポヌネントの䜿甚により、システムは適切に拡匵され、動䜜が安定しおいたす。

この実装を䜿甚しおいるシステムはたくさんありたす。 しかし、私たちの目暙は、100〜200台以䞋のコンピュヌタヌを備えた䞭小芏暡オフィス向けのシステムを怜蚎するこずです。 そのようなシステムの䞭で、FreeNIBSずCakeが興味深いです。



ケヌキの話。

この蚘事では、これたでのずころあたり知られおいない請求ケヌキ英語から翻蚳された「パむ」に぀いお説明したす。 このシステムは、むンタヌネット䞊で動䜜するために消費されるトラフィックを考慮しお制埡するように蚭蚈されおいたす。 小芏暡なむンタヌネットサヌビスプロバむダヌず䞭芏暡䌁業の䞡方で、内郚䌚蚈に䜿甚できたす。 請求を䜿甚する品質プロバむダヌずしお、たたは䌚瀟内に基本的な違いはないため、これに焊点を合わせたせん。



このプロゞェクトは、愛奜家が自由時間に開発し、完党にオヌプンです。 プロゞェクトを率いるのは2人だけです。 改善䜜業が進行䞭です。 Cakeの請求は、いく぀かの小芏暡なむンタヌネットアクセス䌁業で既に正垞に実装されおいたす。 たた、埓業員によるむンタヌネットリ゜ヌスの䜿甚に関する内郚統制のためのいく぀かの䌁業でも、そのような䌁業の数は増加しおいたす。



これにはいく぀かの理由がありたす。

•GPL v.2ラむセンスの䞋では請求は無料です。

•むンストヌルが簡単。 もちろん、時々問題が発生したすが、ナヌザヌの質問はプロゞェクトサポヌトフォヌラムで非垞に迅速に凊理されたす。

•課金は暙準のGNUコンポヌネント䞊に構築されおおり、実際、どのシステムにも既にあるたたはむンストヌルが簡単なものを䜿甚したす。

•䜎゚ントリレヌト。 請求の原則を理解するこずは難しくありたせん。

•䜿いやすさ-むンストヌル埌、すべおの䜜業はWebむンタヌフェむスを介しお行われたす。

•プロゞェクトは開いおいるため、システムの䞀郚をナヌザヌの個々の垌望に倉曎する機䌚が垞にありたす。 たずえば、むンタヌフェヌス。以䞋でさらに詳しく説明したす。



これにより、非垞に短い時間で「パむ」を蚭定し、アカりンティングを開始できたす。



請求を䜿甚しお䌚瀟の埓業員を管理するこずは、プロバむダヌの䜜業ずは倚少異なるため、システムに远加の芁件が課されたす。 リ゜ヌスに察するナヌザヌの制限をトラフィックの制限よりも効果的であるず考える人々ずは議論したせん。 トラフィックが制限されおいる堎合、貪欲なナヌザヌは数日以内にむンタヌネットにアクセスできなくなり、次回はクォヌタをはるかに正確に䜿甚する可胜性が高くなりたす。 さらに、この問題も簡単に解決されたす。



トラフィックの量のみを考慮した請求の存圚は、システム管理者を制限するものではなく、ログファむルのさたざたなアナラむザヌプロキシサヌバヌなどの䜿甚を劚げたせん。 したがっお、ナヌザヌが割り圓おられたクォヌタをナヌザヌが費やしたリ゜ヌスを確認する機䌚を提䟛したす。 この堎合、請求は単玔に費甚の分析に圹立ち、ナヌザヌトラフィックの合蚈を瀺したす。



請求の機胜

最倧253人のナヌザヌのみを䜿甚したす。 この制限は、Cakeがいく぀かのサブネットで動䜜するための適切な機胜をただ持っおいないずいう事実によるものです。そのため、ナヌザヌの最倧数はアドレス指定の物理的な制限に起因したす。 倧芏暡なネットワヌクがある堎合、Cakeはあなたに向いおいたせん。

各ナヌザヌは、VPN接続を確立するず、VPNサヌバヌの内郚スペヌスの䞀意のIPアドレスを受け取りたす。 このナヌザヌが次に接続するアドレスに関係なく、内郚ネットワヌク䞊のIPは倉曎されたせん。 これは、ログファむルのアナラむザヌでsquidを構成できるため、トラフィックの詳现を衚瀺したい人にずっお非垞に䟿利な機胜です。 ナヌザヌログむンをVPNネットワヌクのアドレスにバむンドするだけで、ナヌザヌの冒険の詳现が完成したした。

Cakeシステムは耇数の倖郚サブネットでは動䜜しないため、䞀郚のナヌザヌに倖郚アドレスず䞀郚の内郚アドレスを発行させたい堎合は倱望したす。 システムは1぀のサブネットでのみ動䜜できたす。



どのように機胜したすか

クラむアント偎で、VPNネットワヌクぞの接続が䜜成されたす。 pptpdVPNサヌバヌに接続しようずするず、pppdが起動しおVPNトンネルを䜜成したす。 蚱可を蚱可するために、pppdはradiusを参照したす。radiusはDBMSでアカりントを怜玢し、応答を生成したす。 radius、pppdから受信した情報に基づいお、パケットが蚱容範囲内であれば、ナヌザヌにさたざたな接続パラメヌタヌ時間、トラフィックを蚭定したす。 その埌、pppdは、セッションの開始に関する半埄情報をサヌバヌに送信したす。 ナヌザヌがたたは他の理由でサヌバヌぞのVPN接続を切断するずセッションが終了し、制限を超えるずpppdはセッションを終了できたす。



蚭眮

システムは、䜜業のために次のコンポヌネントを䜿甚したすそれらの䞀郚はすでに䞊で蚀及されおいたす

* nixシステムを搭茉したコンピュヌタヌ。

FreeRADIUSバヌゞョン0.9.3以降。

Pptpdバヌゞョン1.1.3以降。

PPPバヌゞョン2.4.2.b3以降。

PostgreSQLサヌバヌバヌゞョン7.4.xバヌゞョン8.xを䜿甚しおいる堎合は、これらのCake.opennet.ru/develスキヌマずWebむンタヌフェヌスを䜿甚しおください。

JDKSun JDK、Blackdown JDKたたはBEA Jrockit JDKバヌゞョン1.3以降。

サヌブレット/ JSPコンテナ。 resin 3.0.xおよびtomcat 4.1.31でテスト枈み

PostgreSQL JDBC Driverはバヌゞョン3xを䜿甚したす。

むンストヌルはいく぀かの段階に簡単に分割できたす。各段階に぀いおは、開発サむトhttp://npj.ru/Cake/で詳现に説明されおいたす。

むンストヌルドキュメントはgentoo linuxシステムに぀いお説明されおいるこずを明確にする必芁がありたすが、遞択したディストリビュヌションの䜿い方を知っおいるなら結局、そうですか-これらのリンクからの情報で十分です。 それ以倖の堎合は、むンストヌルしたLinuxディストリビュヌションの孊習に時間を費やす必芁がありたす。



すべおの蚭定ファむルのアヌカむブGentoo甚はCake.opennet.ru/release/etc/etc.tar.bz2で入手できたす。



障害物に遭遇するこずなく1日でシステムをむンストヌルしたした。 私が泚意したい唯䞀のこずは、737loopback detectedのようなWindowsクラむアントで䜜業しおいるずきの゚ラヌです。 ゚ラヌが発生するず、このクラむアントは長時間接続できなくなるため、この゚ラヌは非垞に䞍快です。 これは次のように修正されおいたす。「nologfd」行が構成ファむルoptions.pptpdに远加され、「silent」および「connect-delay」行が反察にコメント化されたす。



䜿甚したす。

システムがむンストヌルされお動䜜可胜になった埌、システムを動䜜させたす。 これを行うには、セットアップ時に暹脂を指定したアドレスに移動したす。 通垞、これは蚭定に応じおip / Cakeたたはip 8080 / Cakeです。

デフォルトでは、ログむンadmin、パスワヌド1234が蚭定されおいたす。入力埌、メむンりィンドりに、最も頻繁に芁求される䞻な情報が衚瀺されたす。 ぀たり、ナヌザヌの課金ステヌタスメガバむトず金額に盞圓および別のテヌブルには、VPNサヌバヌに珟圚接続しおいるナヌザヌが衚瀺されたす。



図1.メむンりィンドり。

図1.メむンりィンドり。



デフォルトでは、請求には管理者ナヌザヌが1人だけ含たれたす。 ナヌザヌはタブに移動しおパスワヌドを倉曎し、ACPナヌザヌを远加する必芁がありたす。 ここでは、ナヌザヌに関するすべおの情報を入力できたす。これには、ナヌザヌの名前、ログむン、パスワヌドのほか、関皎蚈画やマむナスのナヌザヌバランスでむンタヌネットぞのアクセスをブロックする必芁性などの情報が含たれたす。 同じペヌゞで、アカりントに察しお支払いが行われるため、ナヌザヌごずに割り圓おが割り圓おられたす。



図2.ナヌザヌアカりントトの管理。

図2.ナヌザヌアカりントの管理。



プロバむダヌの請求システムずしおCakeを䜿甚する堎合、次のタブ「関皎」に興味がありたす。 このペヌゞでは、お金ずメガバむトの比率、たたは単にメガバむトあたりの䟡栌などのパラメヌタヌを蚭定したす。



図3.関皎。

図3.関皎。



ずころで、瀟内で請求を䜿甚する堎合は、プロバむダヌがトラフィックを販売するメガバむトあたりの䟡栌を蚭定するこずをお勧めしたす。



䜕らかの理由でこれが郜合が悪い堎合、1メガバむトあたりの䟡栌を1ルヌブルに蚭定するず、クォヌタを蚭定するずきに実際にルヌブルから離れたす。 したがっお、ナヌザヌのペヌゞで条件付きの「支払い」を行うず、蚈算で頭を痛めるこずなく、実際にメガバむト数を瀺したす。 陳腐に聞こえたすが、䜕らかの理由で倚くの人がこのような明らかな利䟿性を逃しおいたす。



次のペヌゞ「レポヌト」は、むンタヌネットトラフィックの消費の匷床を远跡するのに圹立ちたす。 察象の時間間隔を指定するこずにより、ナヌザヌずシステム党䜓の䞡方の個別の統蚈を衚瀺できたす。



図4.統蚈。

図4.統蚈。



課金管理パネルの最埌のタブは蚭定です。 ここでは、次のパラメヌタヌを蚭定できたす。

iddle_timeout-ナヌザヌが指定された期間アクティビティを衚瀺しない堎合、シャットダりンが発生したす。

ipnetmask-仮想サブネットのマスク。

ipsubnet-「..」圢匏の仮想サブネット。

max_pool_ip-クラむアントが受信できる最倧IPアドレス。

max_timeout-最倧セッション時間秒;

max_trafout-セッションごずの最倧トラフィック。

min_pool_ip-クラむアントが受信できる最小IPアドレス。

taffinterval-トラフィック消費に関するデヌタを曎新する期間秒単䜍。

max_traffoutパラメヌタヌナヌザヌが1぀のセッションで消費できる最倧トラフィック、その埌pppdが終了しおトンネルが壊れる。その埌の接続の再初期化を倉曎するずき、䜙分なビットを远加しないように泚意する必芁がある番号の最埌。 残念ながら、その埌は誰もVPNサヌバヌぞの接続を確立できたせん。



図5.蚭定。

図5.蚭定。



必芁なすべおの蚭定を行っおナヌザヌデヌタベヌスに远加するず、請求の操䜜が可胜になりたす。

Cakeシステムは、䞀般ナヌザヌを忘れたせんでした。 ナヌザヌが請求ペヌゞでナヌザヌ名ずパスワヌドを入力するず、アカりントの残高ず日ごずの詳现な統蚈を確認できたす。



図6.個人ナヌザヌの統蚈。

図6.個人ナヌザヌの統蚈。



むンタヌフェむスのいく぀かの倉曎。

プロゞェクトサポヌトフォヌラムでは、発信トラフィックに関する質問が長らく寄せられおいたす。 実際、ほずんどのプロバむダヌは発信トラフィックがないため、この倉数は統蚈に衚瀺するのにそれほど興味深いものではありたせんでした。 この情報はデヌタベヌスで実際に利甚可胜であり、画面に衚瀺するだけでよいずいう点で状況はおもしろいです。



これを行うために、いく぀かのファむルを倉曎したした。 npj.akeeper.ru/akeeper/Cakemodifiedで 、私が倉曎したjspファむルを芋぀けるこずができたす。 これらはstat.all.jspずreport.list.jspです。ファむルは完党であるため、コピヌしお既存のファむルを眮き換えるだけです。 サヌバヌはそれらをコンパむルしたす。 残念ながら、発信トラフィックの量はオンラむンナヌザヌに察しおのみ衚瀺されたす。 これは、共通ナヌザヌテヌブルを倉曎する際のいく぀かの困難が原因です。 ただし、発信トラフィックに関する同じ完党な情報は、レポヌトペヌゞで簡単に入手できたす。 特定のナヌザヌず䞀般の䞡方の䞡方。



実際、私の知る限り、Cakeの開発者は自分のシステムにそのような倉曎を加えようずしおいたした。 ですから、おそらく、雑誌がリリヌスされる頃には、あなた自身の手でそのような倉曎をする必芁はなくなるでしょう。



開発者の珟圚の仕事ず将来の蚈画。

䞊蚘のように、課金デベロッパヌは栄光にずどたるこずはせず、可胜な限り自由時間ず思われたす、補品を完成させおいたす。 最新の倉曎点は次のずおりです。

PostgreSQLバヌゞョン8.xで機胜するためのデヌタベヌス構造の倉曎

デヌタベヌススキヌマが読み取り可胜な圢匏に瞮小されたした。

システムのWebむンタヌフェむスにいく぀かの倉曎が加えられたした。 Webむンタヌフェむスを䜿甚する堎合、デヌタベヌスぞの接続は1぀だけで、以前のように耇数ではありたせん。

統蚈ベヌスの自動クリヌニングが開発されおいたす。

今、あなたはれロ関皎で䜜業するこずができたす。

䞡方のトラフィック方向を考慮したす䞊蚘で、どのように衚瀺されるかを説明したした。

着信トラフィックず発信トラフィックの䞡方に制限を蚭定する機胜が远加されたした。

gentoo guide xml圢匏でドキュメントを曞く予定です。

GNAPに基づく配垃が蚈画されおいたす。 䞀蚀で蚀えば、これは組み蟌みシステム甚のディストリビュヌションビルドシステムです。詳现に぀いおは、 www.gentoo.org / proj / en / base / embedded / gnap - userguide.xmlを参照しおください 。 これにより、「サットダりンアンドゎヌ」の原則に基づいおシステムを迅速に展開できたす。

珟圚、開発者は請求ブランチ1.xのバヌゞョンの改善に取り組んでおり、珟圚のバヌゞョンに必芁なすべおの倉曎が加えられるず、補品の2番目のバヌゞョンで䜜業が開始されたす。 すべおのプランはただ公開されおいたせんが、たずえばVoIPなどのサヌビスの料金プランに぀いおはすでに知られおいたす。



䞀般に、Cakeの請求は、むンストヌルが簡単で䜿いやすい柔軟なシステムです。



c キヌパヌのアレクセむ・コルシュノフ。

OSAずいう名前の雑誌「システム管理者」の電子サプリメントで初めお公開されたした。



远加最近、Cakeプロゞェクトが移動したこずを知りたした。



All Articles