Article delegate-ja/145 of [1-251] on the server localhost:7119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A144@delegate-ja.ML_>]
Newsgroups: mail-lists.delegate-ja

[DeleGate-Ja] 巨大アクセス拒否リストでの高負荷回避策 (Re: REJECT の行数)
14 Jul 2008 05:57:02 GMT ysato@delegate.org (Yutaka Sato)
The DeleGate Project

In message <_A144@delegate-ja.ML_> on 07/14/08(13:05:17) I wrote:
 |まず、上記の設定で起動できているという事に、何点か疑問があります。
 |REJECTパラメタは、REJECT=protocol:server:client という形式ですので、
 |実際の記述は上とは別のものなのでしょうね。また、REJECTのというより
 |DeleGateのコマンド引数の最大数は1024なのですが、これもconfig.hの
 |変更などで回避されているのかも知れません。また、多数のIPアドレスを
 |指定するとDeleGateの起動時にDNSの検索で非常に遅くなることがあります
 |が、これも"-"を前置するなどによって回避されているのかも知れません。
 |
 |さて、アクセス制御のためのアドレスのマッチングは単純サーチなので、
 |かなり遅いとは言えますが、それでも通常のCPUの速度であれば無視できる
 |程度の場合がほとんどです。

別の可能性として、OSがWindowsの場合、DeleGateプロセスをspawnするたびに
パラメタの解釈が行なわれるので、パラメタのリストが大きいと、その解釈に
時間がかかることになります。

これを回避する方法として、ホストのリストをDeleGateのパラメタに列挙する
のではなく、レゾルバレベルで特殊なホスト名かドメイン名にマップして、
そのホスト名かドメイン名のパターン全体を拒否する、という方法があります。

たとえば、DGROOT/etc/rejects というようなファイルに、拒否するホストの
アドレスを列挙して、それを参照するように RESOLV=file:rejects と書き、
"*.reject" というホスト名のパターンを REJECT する、というようにします。

  RESOLV=file:rejects,sys
  REJECT="*:*:*.reject"

  [DGROOT/etc/rejects]
  10.0.0.1 10-0-0-1.reject
  10.0.0.2 10-0-0-2.reject
  ...

                   9 9  
┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_<   >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V