書いてる人: 高橋カヲル | [mixi] | [PGP] | [TETRiS DS] | [portscout] | [RSS]
CVS では committer account に @ が入ることを想定していないようだ。 ,v が使い物にならなくなる。セミコロン (;) がアウトだろうことはわかっていたのだが、@ もダメだとは。 ,v をいじって @@ に書き換えても cvs log の表示が切なくなるだけで @ には戻らない。
いまさら Language の Changes を眺める。 @/ と @dofirstparagraphindent が追加されていたのか。もう ptexinfmt.el でがんばる気なんてまったくない。手元の patch は本家の texinfmt.el で対応してもらえるように Robert にすべて投げる方向で。ほとんど吐き出してますが。古い Emacsen 使ってるなら makeinfo を使えよと。 Char-Index が欲しいなら Info-tagify だけやれよと。
事故防止には sudo env EDITOR=less vipw が使えることにいまさら気づく。 lock するのが迷惑ではあるが。
ようやく DVD から吸い上げて .VOB の状態で手元に置いた。このままじゃデカすぎる。圧縮する方法を適当に調べなければいかんな。
168.192.in-addr.arpa. のレベルから乗っ取ることにした。組織内 root server を立てるのはアリエナイ。
ラーメン屋に行ってもラーメンを食わない修行。
make build の負荷で router が落ちたので KRP までダッシュするハメになる。
リハビリ@河原町KING。☆☆コースの98位に kaoru 京都府が残っているのを確認。 100位より下に落ちるのは時間の問題。もう一回やりなおす時間も気力もない。
_ [Emacsen] APEL 10.6
_ [Emacsen] Wanderlust 2.10.1 (Watching The Wheels)
完全にうまく行く保証などないが、
scrub out on $ext_if all max-mss 1414
でひとまずなんとかなった。というわけで mpd + pf の実験運用開始。
リハビリ@七条KING。郵便物受取りのついで。階段の弱さが不安定さの原因よな。 325476 タイプは得意なんだが、 234567 はもうダメ。
すこし間があいたので、潜水で 25m いけるかチェックしようとしたら邪魔が入って萎え。ちんたら泳いでるならまだ許せるが、コースの途中で横切るんじゃねえよよ。
一晩寝たのでまとめよう。実験環境は
まあ経路にアレゲルータ(ブラックホールルータ)がいなければ問題ない話なんだが、「世間の対策を待っているうちに時間切れになる」ので自衛しなけりゃならない。
alice も bob も常に DF ビットの立った IP パケットを送るとしよう。アレゲルータはひとまず「ICMP をすべて落としてしまう」ことにする。
alice が NetBSD なら traceroute -P が便利。
-P Set the "don't fragment" bit, and use the next hop
mtu each time we get the "need fragmentation"
error, thus probing the path MTU.
traceroute が投げるパケットは udp だから、 mss の書き換えは効かない。 mssfixup にだまされずに PMTUD の様子を調べることができる。 DF ビットを落とされるとさすがに調べられない。
scrub out on $ext_if all no-df random-id
なんて激しい rule を書いてから traceroute -P の挙動の差を調べるとよくわかる。こんな乱暴なことは実験中だけ。
trent が mss 書き換えを何もしなかった場合の往路について考える。 alice は自分の MTU の限界ギリギリである 1500オクテットの IP パケットを bob に向かって送る。 1500オクテットでは大きすぎて trent の ng0 を通過できない。 trent が alice に ICMP NF (need fragment) を返し、 alice は 1454 オクテットのパケットを bob に向かって送る。ここですんなり bob に届いてしまえば往路は問題ない。つまり trent (の ng0) が往路の最小 MTU だった場合だ。
alice --- 最小 MTU(trent) --- bob (アレゲルータ無し) alice --- 最小 MTU(trent) --- アレゲルータ --- bob
trent が往路の最小 MTU でなくても、アレゲルータより手前に最小 MTU があれば、再度 ICMP NF が戻ってきて往路は問題ない。 alice から見れば trent だろうがそれより向こうだろうが、 ICMP が帰ってくることに代わりはない。
alice --- trent --- 最小 MTU --- bob alice --- trent --- 最小 MTU --- アレゲルータ --- bob
しかし
alice --- trent --- アレゲルータ --- 最小 MTU --- bob alice --- trent --- アレゲルータ --- 最小 MTU --- bob
だとどうだろう。アレゲルータによって ICMP が落とされてしまう。 bob にパケットが届かず、かといって ICMP が戻ってくるわけでもない。タイムアウトを待つことになるわけだ。
alice --- 最小 MTU --- bob alice --- アレゲルータ --- 最小 MTU --- bob
は救えるが、
alice --- 最小 MTU --- アレゲルータ --- bob alice --- アレゲルータ --- 最小 MTU --- アレゲルータ --- bob
なんかだともうどうしようもない。お手上げ。
フレッツで PPPoE している場合だと trent (の ng0) が往路の最小 MTU だという場合が多い。
alice --- 最小 MTU(trent) --- bob (アレゲルータ無し) alice --- 最小 MTU(trent) --- アレゲルータ --- bob
のパターンが多くなるというわけだ。前者は問題なく通信できるから放置。後者のパターンを救うために bob から送ってもらうパケットのサイズを (アレゲルータに関係なく届く程度に)を小さくしてもらう、という戦略が考えられる。 alice が bob に通知する mss を trent が小さく書き換える。
scrub out on $ext_if all max-mss X
bob に通知される mss が X オクテット以下になるわけだから、 bob から送られてくるパケットのサイズが小さくなることを期待できる。具体的なサイズは X + 20 (IP ヘッダ) + 20 (TCP ヘッダ) [オクテット]。 bob から送られてくるパケットのサイズが、復路の最小 MTU より小さくなっていれば、復路のパケットはアレゲルータが挟まっていても届く。これで救えるのは以下の条件をすべて満たすケース
X は 1414 以下にしないと意味がない (フレッツの場合)。ヘッダサイズが 20+20 という保証はないらしいので、実際にはそのぶんのマージンをとって設定する。
alice --- アレゲルータ --- 最小 MTU --- bob alice --- アレゲルータ --- 最小 MTU --- アレゲルータ --- bob
も救ってやりたいなら alice に通知される mss も縮めてしまう手がある。
scrub in on $ext_if all max-mss X scrub out on $ext_if all max-mss X
これで救えるのは以下の条件をすべて満たすケース
trent が最小 MTU ではないケース (最小 MTU < 1454) を救いたいわけだから、 X にギリギリの 1414 を設定したのでは意味がない。経路の最小 MTUを見積もって激しくマージンをとるべき。
alice --- 最小 MTU(trent) --- アレゲルータ --- bob のパターンだけ救えればいいなら、
scrub out on $ext_if all max-mss 1414
1414 より小さめにする。マージンと最速 MTU を意識して 1408 = 1448 - 40 や、 1360 = 1400 - 40 あたりに設定するのも手。alice --- アレゲルータ --- 最小 MTU --- アレゲルータ --- bob も救ってやりたいなら
scrub in on $ext_if all max-mss X scrub out on $ext_if all max-mss X
自分が見積もった最小MTU - 40 を X に設定する。
dnscache を複数のアドレスで listen させるために IP に 0.0.0.0という裏ワザ的な手を使ったこともあった。が、もう使わないことにした。 192.168.0.1, 192.168.0.2 の両方を振っている場合など、 192.168.0.2 にきた問い合わせを src 192.168.0.1 で返して困ったことになる。 IPv6 patch を当てると 0.0.0.0 で listen する技自体が使えなくなる。
複数上げるのを嫌がった理由はなんだったんだろうか。考えてみた。
いろいろ逃げ道は考えられるが、forward を使うことにした。まずは 127.0.0.1 で dnscache を上げる。気合いを入れて設定するのはコイツだけ。他のネットワーク向け、例えば 192.168.0.2 や 10.0.0.2 で上げる dnscache は問い合わせを 127.0.0.1 に forward してやる。例として
する場合を考えよう。
dnscache-conf を走らせる前に dnsroots.global を変更しておく。 my ports に放り込んであるパッチ。
$OpenBSD$ Now j.root-servers.net is 192.158.128.30. (SERIAL 2002110501) Use m.root-servers.net first for Japenese user. Move a.root-servers.net to last. --- dnsroots.global.orig Wed Jul 9 12:45:23 2003 +++ dnsroots.global Wed Jul 9 12:45:49 2003 @@ -1,4 +1,4 @@ -198.41.0.4 +202.12.27.33 128.9.0.107 192.33.4.12 128.8.10.90 @@ -7,7 +7,7 @@ 192.112.36.4 128.63.2.53 192.36.148.17 -198.41.0.10 +192.58.128.30 193.0.14.129 198.32.64.12 -202.12.27.33 +198.41.0.4
djbdns の root server の探し方を知っていれば、この変更の効果もわかる。すでに dnscache-conf をして dnscache を運用している場合は root/servers/@ を書き換えるといい。
# dnscache-conf named multilog /var/dnscache 127.0.0.1 # dnscache-conf named multilog /var/dnscache-vlan0 192.168.0.2 # echo '127.0.0.1' > /var/dnscache-vlan0/servers/@ # echo '1' > /var/dnscache-vlan0/env/FORWARDONLY # touch /var/dnscache-vlan0/root/ip/192.168.0 # echo '64' > /var/dnscache-vlan0/env/CACHESIZE
要は 127.0.0.1 で普通に dnscache を上げる。名前引き関係はこっちの dnscache で設定をする。キャッシュは大盛りで。 192.168.0.2 で FORWARDONLY な dnscache を上げる。アクセス制限関係はこっちの dnscache (dnscache-vlan0) で設定する。キャッシュを激しく小さめ (ここでは 64) にしておく。 vlan1 に関して同様。 CACHESIZE は 100 未満にしても強制的に 100 になるようだ。
http://support.intel.co.jp/jp/support/network/adapter/pro100/linux_driver.htmから取ってきていれよう。
京都に戻る前に秋葉に買物。private な買物はなんにもない。
man ifconfig していて link0 パラメータに気づく。(OpenBSD)
Note: if the link0 flag is set on the vlan interface, thevlan pseudo interface's behavior changes: the link0 tellsthe vlan interface that the parent interface supports insertion and extraction of vlan tags on its own (usuallyin firmware) and that it should pass packets to and fromthe parent unaltered.
link0 をつけてやるとハードウェアでの IEEE 802.1Q サポートが有効になるようだ。もちろん NIC に依存する話だが。
kaoru@fomalhaut% cat /etc/hostname.vlan0 vlan 69 vlandev em0 link0 inet 192.168.69.1 0xffffff00
em は(少なくとも OPENBSD_3_3 では) パッチを当てないといかん。
抽選で1名にマットレスのプレゼント。まあ見とけ。
続き。src/sys/dev/syscons/ 以下をあさってみた。
options SC_KERNEL_CONS_ATTR="(FG_WHITE|BG_BLACK)" options SC_KERNEL_CONS_REV_ATTR="(FG_BLACK|BG_LIGHTGREY)"
が FreeBSD のデフォルトらしい。
NetBSD (i386) では特にいじらず kernel config したら opt_wskernattr.h がこんなになるようだ。
/* option `WS_KERNEL_MONOATTR' not defined */ /* option `WS_KERNEL_COLATTR' not defined */ /* option `WS_KERNEL_BG' not defined */
src/sys/dev/wscons/wsemul_vt100.c に書いてあるデフォルトは以下の通り。
とりあえず似せるなら
options SC_KERNEL_CONS_ATTR="(FG_GREEN|BG_BLACK)"
としてやればいい。SC_KERNEL_CONS_REV_ATTR と区別がつかなくなるのは困るので、とりあえずここまで。
Free Software Foundation のSome Confusing or Loaded Words and Phrases that are Worth Avoidingを日本語訳したものです。
京都に戻ってまいりました。
懐かしいのぅ。
間違って届いた PC のクレームの一報を入れにいく。
新しい水着が欲しくなった。プロテインも切れそうだ。
KRP でトンネルビルドの準備。人間のための温度設定じゃないのはわかっているのだが、寒すぎる。
持ってきたソースの $NetBSD$が展開されているかを手軽に確認するにはどうしたらよいのだろう。 $FreeBSD$ や $OpenBSD$ でも同じことなのだが。 $NetBSD$ の状態(展開されていない)で commit されたファイルを知っていればそれを調べるのが早い。 Revision 1.1 のものは、たいてい $NetBSD$ で commit されている。たとえば src/usr.sbin/unlink/Makefile が使える。
となっていれば展開に失敗していることが一目瞭然。正常に展開されていることを確認するには、レポジトリにあたらないといけない。 src/usr.sbin/unlink/Makefile はいつ変更されるかわからないからだ。
ちなみに $NetBSD$ の展開はサーバー側の責任である。 cvsup mirror を立てるときは CVSROOT/options の扱いに気をつけろ。 cvs mirror の場合もまあよろしくやってくれ。
メモしわすれいたらしい。 DSA の署名の図がイイ。
/usr/pkg/etc/rc.d/ から symlink を張ると /usr の mount 前でハマるんだよな、これ。コピーするか、 rc.local で叩いてやるかになる。[void GraphicWizardsLair( void ); //]
うーむ、仕事が増えてしまいました。
東西両方のフレッツスクエアにアクセス可能な謎環境での DNS 設定。 NTT 東日本を優先するのが肝。 NTT 西日本のコンテンツを見たい場合には http://www.nttwest.flets/ とする。 www.ntteast.flets と www.flets は同じ A レコードを持つが、 http://www.ntteast.flets/ と (NTT東日本の) http://www.flets/ は大違い。
zone "flets" {
type forward;
forward only;
forwarders { 172.26.35.171; 172.26.35.172; };
};
zone "nttwest.flets" {
type forward;
forward only;
forwarders { 10.60.22.72; };
};
逆引きも設定したいなら適当に。
zone "26.172.in-addr.arpa" {
type forward;
forward only;
forwarders { 172.26.35.171; 172.26.35.172; };
};
zone "10.in-addr.arpa" {
type forward;
forward only;
forwarders { 10.60.22.72; };
};
ISC-DHCP の設定関係。フェイルオーバー(failover)が興味深い。 [家族そろってでびるまん(誤認 なんです]
日記から切り出して cvsupd-mirror.html にまとめつつある。三つの *BSD の cvsupd のミラーを立てようなんて粋狂な人向け。社内ミラーなら必要なところはとっくにやってるだろうから役に立つまい。手元にレポジトリを持つメリットはあっても、手元で cvsupd を上げるメリットは普通の人にはないだろうね、 NetBSD で src/ が統合されてからは。もう時代はcvsyncですか、そうですか。
だるだる
memo
いつのまにかDOWNLOAD ページから聞けるようになっていることに気づく。「お兄ちゃんどいて!そいつ殺せない!」を省略すると「おにどけ」ですか。
SKK 使いで三角が残ってしまう人向けの add on をかなり適当に書いてみた。riece-skk-kakutei.el
- OpenVPN has finally been ported to Windows.
- TCP protocol support has been added.
引退させておいた ska を OpenBSD current に upgrade する。間違っても a.out 時代から ELF に make build しようなんて考えてはいけない。「*.tgz ほどいて reboot すりゃいいんだろ」なんてことも思ってはいけない。バックアップをとってクリーンインストールが本来の道。どうしてもクリーンインストールができない場合にかぎってインストール CD なり FD なりを使って upgrade する、仕方なく。
録画しておいたスヌーカーを見ながら、SKK-JISYO をいじる。 registdic.cgiから誤登録をチェックして SKK-JISYO.wrong に移していく作業。 ケツに沈んでいるエントリこそ重要。人のチェックしないところを見る。
ska を OpenBSD-current にあげたことだし、更新しておく。 /etc/group は一発でいい、 /etc/passwd の merge は一回で十分だ。
[ `uname -s` != OpenBSD ] && exit
VAREMPTY=' -d /var/empty -s /sbin/nologin '
NONEXISTENT=' -d /nonexistent -s /sbin/nologin '
groupadd -g 68 _isakmpd
groupadd -g 59 _kdc
groupadd -g 60 _kadmin
groupadd -g 73 _syslogd
useradd -u 59 -g _kdc -c 'Kerberos Server' ${VAREMPTY} _kdc
useradd -u 60 -g _kadmin -c 'Kerberos Admin' ${VAREMPTY} _kadmin
useradd -u 68 -g _isakmpd -c 'isakmpd privsep' ${VAREMPTY} _isakmpd
useradd -u 73 -g _syslogd -c 'Syslog Daemon' ${VAREMPTY} _syslogd
vpopmail & .qmail と格闘。ちょっとだけミスしておった。終ってからツールみながらだらだら。
動かなかったのを修正。 SKK 使いで三角が残ってしまう人向けの add on.riece-skk-kakutei.el
誤登録報告のチェック。
ようやく commit されたようだ。
plus.html を見ていて気づく。 しかし今の時期に OpenBSD を新規 install するとなると迷うな。 3.3-current (tag=.) にするか 3.3 (tag=OPENBSD_3_3) にするか。
あと2ヶ月強を current で戦えるなら 3.3-current にするのは手としてアリ。3ヶ月後にクリーンインストールできる余裕があるマシンなら OPENBSD_3_3 で過ごすのもアリだ。2ヶ月強を current で戦うリスクと3ヶ月後に入れ直すコストを天秤にかける、か。
.
こう微妙にいいタイミングでリリースされますね。ギリギリで間に合うから入れ直し。 my ports の更新もしないといけないな。
ふむ、pop'n 10 へのカード引き継ぎとな。
ポップン9で使ってくれたエントリーカードは10でも使えるよ。でも一度ポップン10で遊ぶと、もう9では遊べなくなってしまいます。また、なくなってしまうデータもあるので注意してね。
クリアメダルは引き継がれるようだ。
infrastracture/mk/ が current 専用になったようだ。新しいと patch のオプションが足りなくて終了。
なんで OTP の FTP を説明をしなきゃいけないんだろうな。もう、WinSCP 推奨コースでいきましょう。
Powered by 早起き生活