僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
反省会と忘年会に参加。目的や方向性の曖昧さは変わらないが、そのあたりも面白い。
PCルータを引っ込めて、一旦糞モデムのルーティング機能を戻す。
tail -f $MAILLOGして見てたら、早速すぱまあが来やがった。 早いところブロックせねば。
Dec 17 15:38:44 MSERVER postfix/smtpd[21790]: connect from unknown[211.229.72.180] Dec 17 15:38:46 MSERVER postfix/smtpd[21790]: NOQUEUE: \ reject: RCPT from unknown[211.229.72.180]: 554 \ <fnlee11@hanmail.net>: Relay access denied; \ from=<z372095@hosanna.net> to=<fnlee11@hanmail.net> \ proto=SMTP helo=<pc06> Dec 17 15:38:47 MSERVER postfix/smtpd[21790]: lost connection after \ RCPT from unknown[211.229.72.180] Dec 17 15:38:47 MSERVER postfix/smtpd[21790]: disconnect from \ unknown[211.229.72.180]
ぐぐっているうちにわかったが、標準出力を受けて実行できるようだった。 んで、手動で動作を確認してから、これをシェルスクリプトに落して実行してみる。
#!/bin/sh ( sleep 2; $ echo "helo hoge" echo "mail from: USER@DOMAIN.TLD" echo "rcpt to: USER@DOMAIN.TLD" echo "data" echo "Subject: test" echo "From: USER <USER@DOMAIN.TLD>" echo "To: USER<USER@DOMAIN.TLD>" echo "" echo "Testmail" echo "." echo "quit") | telnet MAILSERVER 25"
たが、macとrouterで(手でコマンドを打ち込むと動くのに)うまく動作しない。 sh hoge.sh すると、接続した途端に切れてしまう。
Dec 17 16:14:28 MESRVER postfix/smtpd[21818]: connect from ROUTER[192.168.1.1] Dec 17 16:14:31 MESRVER postfix/smtpd[21818]: warning: ROUTER[192.168.1.1]\ sent non-SMTP command: Subject: test Dec 17 16:14:31 MESRVER postfix/smtpd[21818]: disconnect from ROTER[192.168.1.1]
TCPのSYNビットを立てたパケットを2回出す(3秒後に再送)現象を確認。ちなみに 昨日のサイトでは同じ現象は確認できず。あっさり接続できている。それから [TCP Dup ACK 5#1]はどちらも認められなかった。
原因はどこに。
ついには他所にも繋がらなくなった。ルータを見に行くとppp0が死んでいる。 (デバイスは表示されたが、アドレスがない) adsl-stopとadsl-startを繰り返しても埓があかない (adsl-statusすればよかった)。面倒になって再起動。再びpppoeを起動すると、 なんなく繋がってしまった。naptとipforwardingとpacket filteringの設定 をやり直す。連続運用が祟ったのか、それとも。
今しばらくはwebもmailも「遅い」という気にはならない程度にはなっている、が。
遅い。プロバイダのPOPサーバの問い合わせをAAAAでやった後、
/etc/resolv.confのsearch MYDOMAINのせいか、
POPSERVER.DOMAIN.MYDOMAIN.TLD を聞きに行っている。
.mew.elで (setq mew-pop-server "HOST.DOMAIN.TLD.")
とすると、間抜けな問い合わせはしなくなった。
これは sylpheed も同様。
AAAAも無意味なので(まだv6は嬉しくない) named に -4 つけてみた。
依然としてAAAAの問い合わせは発生しているが、待ち時間は無視できる程度に
短くなった。
実際のところ、これだけでは大した効き目は感じられない。 etherealを眺めていると、一行進むのに数秒かかる箇所が頻繁に発生する のが見えた。
dd と/dev/urandomにより100MBのファイルを作り、Plamoから iMacのDebianにftpで転送してみた。当初14MB/sだったが、 転送終了に近付くにつれて徐々に転送速度が下がり、95735968byte で止まってしまった。
``ieee1394: got invalid ack 252 from node 65473 (tcode 1)
この時点ではまだシステムは動いていた。 modprobe -r ohci1394 すると
Machine check in kernel mode. Caused by (from SRR1=141030): Transfere error ack signal Oops: machine check, sig: 7 [#1] (ry [c0003f10] rest_init+0x24/0x34 [c026a5c8] start_kernel+0x180/0x1b8 [00003a5c] 0x3a5c Kernel panic: Aiee, killing interrupt handler! <0>Rebooting in 180 seconds..
2.6.13.17-PlamoUPは泰然自若としている。
こりゃどうにもならんな。カーネル変える以外は。
で、新しめのカーネルソースパッケージを突っ込む。
make menuconfigで見えるものは、x86とは少し違うようだ。
# time make-kpkg kernel-image (ry real 104m8.479s user 95m15.077s sys 8m18.486s
しかし再起動してもKernelPanic。まだまだ。
適当に色々やってみる。ybinしただけではダメ。
initrdが要るかもしれない(要らないかもしれない)。
multipath-tools-initramfsをapt-get install して、
make-kpkg kernel_image --initrdした上で
dpkg -i とybinする。
偶然かどうかは分からないが、うまくいったらしい。
$ uname -a Linux HOST 2.6.18 #1 Sun Dec 17 01:25:36 JST 2006 ppc GNU/Linux
noteとimacをieee1394ケーブルで繋ぐ。で、10.0.0.0/29でIPをふった。 まずはnote側から100MBのファイルを送信してみる。
Plamo$ time ncftpput -u USER -p PASSWD Debian . 100MB.img 100MB.img: 95.37 MB 9.67 MB/s real 0m10.600s user 0m0.015s sys 0m0.608s
送付している方のコンソールには、"eth1394: No more tlabels left while
sendign to node 0-01:1023" というメッセージが山ほど出た。
今度はiMac側から。
Debian$ time ncftpput -u USER -p PASSWD Plamo . 100.img M100.img: 95.37 MB 2.13 MB/s real 0m45.346s user 0m0.068s sys 0m4.476s
うぅむ。遅い。(ほぼ)同様のメッセージがコンソールに流れることは
同じ。
同時に相手側に同じサイズの(違う名前の)ファイルを流してみる。
Plamo$ time ncftpput -u USER -p PASSWD Debian . 100MB.img 100MB.img: 95.37 MB 6.61 MB/s real 0m14.878s user 0m0.016s sys 0m0.814s Debian$ time ncftpput -u USER -p PASSWD Plamo . 100.img M100.img: 95.37 MB 2.16 MB/s real 0m44.763s user 0m0.080s sys 0m3.580s
同じ実験をOSX Tiger とPlamoNoteでやってみる。
送受信と、どっちのサーバを使うかの問題が↑では切り分け出来てなかった。
ちなみにPlamo側はncftpput/ncftpgetを、OSX側はftp(1)である。
ftpで非対話的にgetするのは
前の資料を引き出して確認。
ftpで非対話的にputするのはmanと睨めっこして試行錯誤。
$ ftp ftp://user:pass@remote_host/100.img
$ ftp -u ftp://user:pass@remote_host/ 100.img
FTP Server | Client | put to server | get from server |
proftpd(Plamo) | 9.474s | 6.693s |
ftpd(OSX) | 21.214s | 14.737s |
VirtualBoxの仮想マシンも程々にしたほうがいいみたい。
WinXPに2003を起動し、Debian(Lenny)とKNOPPIX-5.1.1それぞれに
sambaを立て、ついでにPlamoでsambaをbuildしていたら
(メモリが1GBしかないためか)猛烈に遅くなり、
HDDのアクセスランプ点灯しっぱなしで、ほとんど何もできなくなった。
Linux From Scratch のDevelopment版は、SVNで取れるが、 取れたファイル(XML)をHTMLに書き出すシステムが いまいちわからん。設定ファイルの指定がうまくいかな いらしく、make しても 長ったらしいI/O Error。
BOOK/INSTALL ドキュメントには、libxml2、libxslt、
DocBook DTD、DocBook XLS StyleSheets、HTMLTidy
が指定されていた。HTMLTidyはLFS固有かどうか、
とにかくpkgsrcにもdebianにもないみたい。
$HOMEの下に入れてPATHを通す程度じゃ駄目。
その場しのぎにドキュメント漁っただけじゃどうにも。
Firfox3をLFS6.4に bmake しようとして引っかかる。
# bmake => Bootstrap dependency digest>=20010302: \ found digest-20080510 => Bootstrap dependency tnftp-[0-9]*: found \ tnftp-20070806 ===> Building for sqlite3-3.6.6.2 ./libtool --mode=link gcc -I/usr/include -O2 \ -I/usr/include -DSQLITE_OS_UNIX=1 -I. -I./s rc -D_HAVE_SQLITE_CONFIG_H -DNDEBUG -DSQLITE_THREADSAFE=1\ -DSQLITE_THREAD_OVERRIDE_LOCK=-1 -L/usr/lib \ -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib -DHAVE_READLINE=1 \ -o sqlite3 ./src/shell.c libsqlite3.la \ -lreadline -lncurses -lpthread \ -rpath "/usr/pkg/lib" gcc -O2 -DSQLITE_OS_UNIX=1 -I. -I./src -D_HAVE_SQLITE_CONFIG_H \ -DNDEBUG -DSQLITE_THREADSAFE=1 -DSQLITE_THREAD_OVERRIDE_LOCK=-1 \ -Wl,-R/usr/pkg/lib -DHAVE_READLINE=1 -o .libs/sqlite3 ./src/shell.c ./.libs/libsqlite3.so -L/usr/pkgsrc/databases\ /sqlite3/work/.buildlink/lib -lreadline -lncurses -lpthread -Wl,--rpath -Wl,/usr/pkg/lib ./.libs/libsqlite3.so: undefined reference to `dlsym' ./.libs/libsqlite3.so: undefined reference to `dlerror' ./.libs/libsqlite3.so: undefined reference to `dlopen' ./.libs/libsqlite3.so: undefined reference to `dlclose' collect2: ld returned 1 exit status make: *** [sqlite3] Error 1
また ぐぐって試して通った。work/sqlite3-3.6.6.2/Makefile.in に追記。
sqlite3$(TEXE): $(TOP)/src/shell.c libsqlite3.la sqlite3.h
$(LTLINK) $(READLINE_FLAGS) \
-o $@ $(TOP)/src/shell.c libsqlite3.la \
$(LIBREADLINE) $(TLIBS) -rpath "$(libdir)" -ldl
Thanks.
LFS-20081207 に pkgsrc で入れた
Firefox3。
USER_AGENTが、"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4)
Gecko/2008121713 Minefield/3.0.4"。
ほとんど 参考にした古いページの引き写しだけど。
LAN_Aのマシンa(VPNサーバ)と、LAN_Bのマシンb(VPNクライアント)。どちらも違うネットワークアドレスを持つ(192.168.a.0/24 と 192.168.b.0/24)。
まずどちらもlenny。apt-get install openvpn。
どちらかで静的キー作成(openvpn --genkey --secret static.key)
そして他方にコピー。
元ページとほとんど同じ $CONFIGFILE。
# Server dev tun ifconfig $VPN_ADDR_1 $VPN_ADDR2 secret static.key comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key user nobody group nogroup daemon
クライアントには先頭行に remote $REMOTEHOST が入る。
それから$VPN_ADDR_1 と $VPN_ADDR_2 が入れ替る(後は同じ)。
スーパーユーザでサーバ側を起動させ(openvpn --config $CONFIGFILE)、
続いてクライアント側も同様に処理。
サーバ側の tun0 に $IP_ADDR_1 が、クライアント側に $IP_ADDR_2
があたり、通信できるようになった。ログは /var/log/daemon.log。
WinXPにも入れてクライアントを試す。user/group daemon が効かない
点以外は同じみたい(行末の改行はどちらでもいいようだ)。
設定ファイルとキーは %ProgramFiles%OpenVPN\confg
の中に入れる。しかるのちにタスクトレイのOpenVPNアイコンを
右クリックして、「接続」。
サーバのportforwardingを有効にし、ルータで$IP_ADDR_Aのルーティングを追加し、
クライアント側のルーティングテーブルに LAN_Aのルートを加える(などする)と、
LAN_Aの他のマシンとも通信できるようになった。
もう少し手間のかかる方法で構築してみた。
一応動いている。としか。
$ sudo mount -t cifs //$IP_ADDR_1/user remote \ -o user=user,group=group Password: $ time cp remote/10MB.img . real 2m10.537s user 0m0.000s sys 0m0.096s $ time cp 10MB.img remote real 7m44.971s user 0m0.000s sys 0m0.056s
サーバ側の方が遅い回線なんだけど。
Debian Lenny に PHP5。
$ uname -a Linux $HOST 2.6.26-2-amd64 #1 SMP Thu Nov 25 04:30:55 UTC 2010 x86_64 GNU/Linux $ php -r 'var_dump(9223372036854775807);' int(9223372036854775807) $ php -r 'var_dump(9223372036854775808);' float(9.22337203685E+18)
$ uname -a Linux $HOST 2.6.26-2-686 #1 SMP Thu Nov 25 01:53:57 UTC 2010 i686 GNU/Linux $ php -r 'var_dump(2147483647);' int(2147483647) $ php -r 'var_dump(2147483648);' float(2147483648)
Linux $HOST 2.6.26-2-powerpc #1 Thu Nov 25 07:13:59 UTC 2010 ppc GNU/Linux も 21億4748万3647 より上の整数(922京3372兆368億5477万5857でなく)は floatになった。
http://t.co/HOGEHOGE を
伸長するスクリプトにかけたら、
http://bit.ly/FUGAFUGA になった。
それを展開して、ようやく本物に辿り着いた。
$ ruby http_header.rb "`ruby http_header.rb \ http://t.co/mZ7rfoUG`" http://www.meti.go.jp/committee/kenkyukai/shoujo\ /it_yugo_forum_data_wg2/pdf/001_06_01.pdf
例によって GNU Smalltalk-3.2.4。
今から26年前に出た
教科書
を参考に。
|w| w := WriteStream with: '1234567'. w nl. w nextPutAll: 'bar'; nl. w tab. w nextPutAll: 'baz'. Transcript show: w contents ; cr. => 1234567 bar baz
"nl" だったところを "cr" にすると、
次のストリームが上書きしてしまった。
キャリッジリターンが、改行せずに行の
端に戻してしまった、ということか。
最終行は"cr"も"nl"も同じになった。
Squeak3.9 ではうまく動かなかった。
"nl" と "nextPutAll:"がダメだった。
またDebian jessie。
netinstイメージでは駄目だった。
適当に借りたdebian-8.2.0-i386-lxde-CD-1.iso
をUSBメモリにddして起動。
起動時にTabを押下するとオプション指定が可能らしい。
ドキュメントを見て、
modules=ppp-udeb を追加。
接続時、特定の箇所でPPPoEが切れた。
パケットとにらめっこしても、あまり良く分からなかった。
結局
前にやったと同じ
optionだけではうまくできなかった。
$ sudo sed -n '/^#\|^$/!p' /etc/ppp/options
ms-dns $DNS_SERVER_1
ms-dns $DNS_SERVER_2
asyncmap 0
auth
crtscts
lock
hide-password
modem
+chap
lcp-echo-interval 30
lcp-echo-failure 4
noipx
うまくいった場合と比較すると、どうも認証がうまくいってなかったらしい。
とにかく、あとはいつもとおなじ。
再起動しても、起動中にすぐPPPoEに繋いでしまった。
$ awk '!/^$/&&!/^#/' /etc/network/interfaces auto lo iface lo inet loopback auto provider iface provider inet ppp pre-up /sbin/ifconfig eth0 up provider provider
user 18087 0.3 0.0 13352 616 pts/0 D+ \ 14:02 0:00 \ dd if=empty/FreeBSD-armv6-11.0-RPI-B_MINE-292387.img \ of=/dev/mmcblk0 bs=32K $ reptyr 18087 Unable to attach to pid 18087: Operation not permitted The kernel denied permission while attaching. If your uid matches the target's, check the value of /proc/sys/kernel/yama/ptrace_scope. For more information, see /etc/sysctl.d/10-ptrace.conf
違うPC(どちらもUbuntu precise)で同じ警告が出たので確認。
/proc/sys/kernel/yama/ptrace_scope の値が1の場合に失敗する模様。
0にするとうまくいった。
設定はもちろん、 /etc/sysctl.d/10-ptrace.conf で。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。