- PR -

ポート開放の手段について

投稿者投稿内容
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2006-03-05 21:23
「1万個のsokectをlistenする」って、簡単に実現できるものですか?

「1個のプロセスが10000個のsocketをopenする」
「10000個のプロセスが、1個づつsocketをopenする」
のどちらのアプローチをとっても、システムのリソース制限に引っかかりそうです。

自宅にlinux環境がないのですぐに試せないのですが、
実際にやってみた方はおられませんか?
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-03-05 22:33
引用:

coasmさんの書き込み (2006-03-05 21:23) より:
「1個のプロセスが10000個のsocketをopenする」
「10000個のプロセスが、1個づつsocketをopenする」
のどちらのアプローチをとっても、システムのリソース制限に引っかかりそうです。


おっと、確かに。
手元の CentOS 4.1 でメモリ256MBの環境だと、デフォルトではulimit で
open files が1024に制限されているのでひっかかりますね。
ulimit -n で拡張すればO.K.

前者の方法でやりましたが、ulimit -n 以外には何も設定等の必要は
ありませんでした。

追記。
TCP接続のバックログが溜まり過ぎても制限にひっかかるので、
やっぱりaccept(2)してclose(2)しといたほうがいいですね。

[ メッセージ編集済み 編集者: ぽんす 編集日時 2006-03-05 22:51 ]
たお
会議室デビュー日: 2005/11/22
投稿数: 13
投稿日時: 2006-03-06 23:05
逆に検証機1の1-9999までのポートを、iptableで閉じて
ログからアクセスの検証するってのは、だめでしょうか?
ルータのフィルタ検証なので、いいかなって思うのですが。

iptableの設定は、↓に載ってます
http://www.atmarkit.co.jp/flinux/index/indexfiles/iptablesindex.html
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2006-03-06 23:38
引用:

前者の方法でやりましたが、ulimit -n 以外には何も設定等の必要は
ありませんでした。



なるほど、その程度のことで済むのですか。
それなら、「簡単に」と言っても大丈夫ですね。

コンフィグパラメータを書き換えてカーネルの再コンパイル、
といった作業が必要になるのではと不安だったもので、横から茶々をいれてしまいました。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-03-07 07:54
引用:

たおさんの書き込み (2006-03-06 23:05) より:
逆に検証機1の1-9999までのポートを、iptableで閉じて
ログからアクセスの検証するってのは、だめでしょうか?


listenせずにパケットキャプチャだけするのと同じで、微妙なところです。
検証機1向きのSYNを通すことは確認できますが、TCP接続が確立するか
どうかは見ていないので。

スキルアップ/キャリアアップ(JOB@IT)