[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:28196] Re: masq したローカルネットワークから不定期に外に出られなくなる



こんにちは。松田陽一@PAL-NET三鷹です。

From: plain <car31930@xxxxxxxxxxxxxxx>
Subject: [debian-users:28174] Re: masq したローカルネットワークから不定期に外に出られなくなる
Date: Thu, 26 Apr 2001 19:28:45 +0900

> plain@おはら です。

どうもです。^^

> >  マシンが非力な場合、カーネルの設定でパフォーマンスを調整できるようです
> > ね。Kernel 2.2.x なら、
> > 
> >     Networking Options:
> >       Packet socket:
> >         パケット・プロトコル通信をサポートする。有効にすると通信が高速に
> >         なる。
> >       IP: optimize as router not host (CONFIG_IP_ROUTER):
> >         Y にすると、ホストとしてよりルータとしての性能が上がる。
> >       IP: Allow large windows (not recommended if < 16Mb of memory):
> >         ネットワーク通信用にメモリにバッファを確保してパフォーマンスを上
> >         げる。搭載メモリが 16MB 以下の場合はこの機能は推奨しない。
> > 
> > あたりが関係ありそうな気がするのですが、識者の方、いかがでしょうか。

識者ではないですが、この辺のことは IP-Masquerade-HOWTO に書かれて
います。

# 現在、 JF にて作業中です。
# リリースにはまだ暫く掛かります、ご辛抱を。(__)

  * パケット・ソケット (CONFIG_PACKET) [Y/m/n/?]
    - YES: これは任意ですが、IP MASQ に纏わるあらゆる問題をデバッグ
    するために TCP DUMP を使えるようにする際に必要な機能です。

  * IP: ホストではなくルータとして最適化する (CONFIG_IP_ROUTER) [Y/n/?]
    - YES: これはカーネルをネットワークサブシステムの為に最適化
    しますが、これによってパフォーマンスに重大な影響を及ぼすとは
    認められません。

  * IP: ウィンドウを大きくします (メモリが 16 MB 未満の場合は勧めません) (CONFIG_SKB_LARGE) [Y/n/?]
    - YES:  Linux の TCP ウィンドウを最適化する為にお薦めします。

マスカレードの機能を増やすようなオプションはありますが、 config メ
ニューに性能自身をチューニングするようなオプションはないと思います。
唯一それらしきものが CONFIG_IP_ROUTER ですが、私自身はこれで何が変
わったかというような定量的な計測を行ってませんし、体感では変わらな
いと思っています。

>  前の発言で、マシンが非力だと…、と書きましたが、
>  ゲームをしない限りは大丈夫でしたので、ネットワークゲームというのは、
>  相当リソースを消費すると思われます。
> 
>  いつの時代も、ゲームが一番リソースを消費するのかな(笑)?

この場合での「リソース」という呼び方はちょっと適切ではないのでは、
と思います。
消費されるのは「マスカレードテーブル」と呼ばれるもので、これが一杯
になると、 SYSLOG ファイルに 

"kernel: ip_masq_new(proto=UDP): no free ports."

というようなメッセージが記録される、とのことです。
そして、カーネルがスラッシングを始めるとも記されています。
この場合、原因となるプログラムの使用を止めれば、マスカレードテーブ
ルのコネクションタイムアウトを経過すれば、自然に収まる、とのことで
す。

更に、 HOWTO の作者 David Ranch さんに JF 翻訳スタッフの山口さんが
メールで回答を頂いた内容によれば、

| There is a hard limit of 4096 concurrent TCP and/or UDP MASQ connections in the 
| stock Linus Linux kernels.  This limit can be easily changed by fiddling the 
| values in the kernel sources.  Edit either the 
| <em>/usr/src/linux/include/net/ip_masq.h</em> for the 2.2.x kernels or 
| <em>/usr/src/linux/net/ipv4/ip_masq.h</em> for the 2.0.x kernels.  Once in the 
| correct file, setting an upwards limit of 32000 ports should by OK for even the 
| busiest servers.  If you want to change the limit - you need to change the 
| PORT_MASQ_BEGIN &amp; PORT_MASQ_END values to get an appropriately sized range 
| say above 32K and below 64K.  Here is
| one example:
| <p>
| PORT_MASQ_BEGIN=32000
| PORT_MASQ_END=64000

| Linus が管理している Linux カーネルでは、 TCP と UDP 各々に対して
| 4096 の同時接続数の制限があります。この制限は、
| 2.2.x カーネルの場合は /usr/src/linux/include/net/ip_masq.h の、
| PORT_MASQ_BEGIN & PORT_MASQ_END の値を 32K から 64K 迄の適切な範囲
| 内に書き換えることで変更できます。例えば:
| PORT_MASQ_BEGIN=32000
| PORT_MASQ_END=64000

とのことです。
--
♪『さよなら…』その言葉は言えずに『またね。』と言った
松田 陽一(yoh)
mailto:matsuda@xxxxxxxxxxxx
http://www2.palnet.or.jp/~matsuda/index.htm