トップ «前の日記(2005-03-11(Fri)) 最新 次の日記(2005-03-13(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2005-03-12(Sat) ぼけえっと

vipowerd

のロゴを頂戴して、トップページに貼り付けた。方法は 説明のページの通り。ついでに Another HTML-lintに揚足をとられないように適当に追記しておいた(^^;

今度はFreeBSDで

at(1)を試す。前回はLinuxで、atd(8)が起動 していればどのユーザでも実行できる模様だったが、 今度は、そんなデーモンはない(らしい)。 また /var/at/at.allowに名前が無ければ$ at foobarしても、即座に "at: you do not have permission to use this program"。 空っぽの /var/atd/atd.denyがあれば↑と同様だけど、そうするべきかは 疑問。

あと気づいたこと若干。
FreeBSD(4.11,5.3)では at(1)もbatch(1)もls -iは同じだった。
linux では batch(1)はat(1)を実行する シェルスクリプトだった(PlamoLinux4.0とDebian/GNU Linux3.0で 確認)。
NetBSD1.6.2ではデフォルトで空っぽの/var/at/at.denyがあった。 manpageにもそれが、そしてその意味するところが明記してあった。
ついでにMacOSXもつついてみたが、atとbatchのiノードが違う(ファイルサイズ は同一なのに)事を除いて FreeBSDと同様。

discard

って何だ?ぐぐると、受信データをただ破棄するだけ、と解説して いるサイトがあった。言及されているRFC863を見たが、

A useful debugging and measurement tool is a discard service. A discard
service simply throws away any data it receives.

これでは何のための仕様なのか全然掴めない。で、さらにぐぐると comp.protocols.tcp-ipの過去ログ(といっても1983年じゃない。今年のだ)が ヒットした。スレッド化されてないので辿りにくかったが、 19333の質問(自分と瓜ふたつの疑問)からいくつか対話が続いている。 とはいっても、最初の答えである19335 以外は、あまりよくわからなかったが。リンク切れに備えてコピペしとこ。

That's the protocol I usually use when using ttcp to perform throughput
tests. Since you're just testing the network, you don't need the
receiver to do anything with the data, so sending it to the discard
service is the most obvious thing to do. It's the network equivalent of
/dev/null. 

ちなみに回答者の名前でぐぐるとschemeのFAQとか、色々なNewsの過去ログとか がヒットした。MITのアカウントは伊達ではない。

さらに脱線(どこから?)。

$ ls -l | telnet DEBIAN 9
Trying XXX.XXX.XXX.XXX...
Connected to DEBIAN.
Escape character is '^]'.
Connection closed by foreign host.
 
$ dd if=/dev/zero of=zero.dat bs=1024k count=10
読み込んだブロック数は 10+0
書き込んだブロック数は 10+0
$ ls -l zero.dat 
-rw-r--r--    1 USER   GROUP    10485760  3月 12日  02:44 zero.dat
 
$ cat zero.dat | telnet DEBIAN 9
Trying XXX.XXX.XXX.XXX...
Connected to DEBIAN.
Escape character is '^]'.
 
 
telnet: buffer overflow, losing data, sorry
telnet: ring.cc:143: int ringbuf::flush(): Assertion `top-bot > 0 \
&& top-bot <= count' failed.
アボートしました

ふむ。なにかまずかったかな。 etherealで追っかけていると、telnetが落ちるまで1万近くのパケットが飛び交っていた。 etherealの他いくつかの重そうなアプリを閉じると、落ちなくなった。

あと、DebianやFreeBSDなどで同様の実験をlocalhost 宛に投げてみた。 DebianではinetdのCPU負荷が30%以上、telnetが 50%以上で続いた。 FreeBSDではinetdのCPU負荷はほとんどなく、telnetの負荷が90%以上だった。 条件はバラバラなので、あくまで一例だけど、ベンチマークとしても 面白そうだ。

Debianに

apache-sslやpostfixなどを放りこんで、動作確認。 改めてnmapで砲撃すると、何時の間にか色々開いていた。

$ nmap Debian
 
Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at \
   2005-03-12 01:20 JST
Interesting ports on Debian (XXX.XXX.XXX.XXX):
(The 1653 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
9/tcp   open  discard
13/tcp  open  daytime
22/tcp  open  ssh
25/tcp  open  smtp
37/tcp  open  time
80/tcp  open  http
443/tcp open  https

$ telnet debian $NUM でいくつか試す。
daytimeは日時がピョン。timeは読めねぇ。

本日のツッコミ(全1件) [ツッコミを入れる]
takanyon (2005-03-14(Mon) 14:14)

FreeBSDではcronで5分おきにatrunを呼んでるだけです。<atdがない


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。