2004-03-21 2992歩

λ apache-2.0.49

野良ビルドしているとこ(このサイトとか)はさっさと更新。portsなところはports待ちで。

これでhttpd中に記録されているopensslのバージョンもy更新される。

λ [FreeBSD] zebraをjail中で動かしてみる実験

zebra自体は多少文句言いつつ動いていたような気もするが、OSPFのマルチキャスト通信が全然ダメ。 やっぱ無理かー。

λ [FreeBSD] quagga

まずportsで作れなかった。なんだかautomakeでコケる。これが不幸の始まりだった。

以下の指定でビルド

#!/bin/sh
./configure --prefix=/local --localstatedir=/var/run/quagga \
  --enable-user=quagga --enable-group=quagga \
  --enable-pam
make

実行時のユーザ権限がquaggaになるせいで、設定ファイルとpidファイルの所有者をquaggaに変更するのはすぐに分かったが、 プロセス間通信に使うUNIXドメインソケットの生成に失敗しててかなり悩んだ。 UNIXドメインソケットは configure の --localstatedir で指定したディレクトリの下に zserv.api という名前で出来る。 が、pidファイルと違ってあらかじめ作っておくというわけにはいかないので、 結局ディレクトリそのものをquagga権限から読み書きできるようにした。

最終的な zebra 起動用 run スクリプトは以下の通り。

#!/bin/sh
localstatedir=/var/run/quagga
mkdir $localstatedir
chown quagga $localstatedir
chmod 700 $localstatedir
exec 2>&1
exec softlimit -c 0 \
      envdir ./env \
      /local/sbin/zebra -k -f zebra.conf

λ [FreeBSD] IPv4 over IPv6 トンネル上の OSPF

前提:FreeBSDとRTX1000間でFlets.Netを使ってトンネルを掘っている環境。

FreeBSD側では、gifインターフェースのdestination側アドレスが、 OSPFのどのネットワークに属しているか教えてやるとOSPFが有効になる。 RTX1000はipipトンネルの端点に直接IPを振れないようで、lan1アドレスがそのまま利用されていた。

FreeBSD:/etc/rc.conf

ifconfig_gif1="inet 192.168.255.255 netmask 0xffffffff [RTX1000のlan1アドレス]"

FreeBSD:ospfd.conf

interface gif1
 ip ospf network point-to-point
router ospf
 network [RTX1000のlan1アドレス]/32

RTX1000側はほぼYAMAHAのドキュメント通りで、 追加した設定はこんだけ。

ip lan1 ospf area backbone
tunnel select 1
  ip tunnel ospf area backbone
ospf use on
ospf area backbone
ospf configure refresh

設定完了後OSPFのパケットが流れてるかどうかは tcpdump -i gif1 host 224.0.0.5 で確認した。

λ [FreeBSD] RIPng によるIPv6ルーティングの設定

Flets.Netなトンネル上を利用しているので、 Flets.Net自体のIPv6ルーティングを上書きされると大変なことになる 。

ripng.conf

router ripng
 network gif1
 distribute-list prefix local-only in gif1
ipv6 prefix-list local-only deny 2001:c90::/32 le 64
ipv6 prefix-list local-only permit 2001:218:45e::/48 le 64
ipv6 prefix-list local-only deny any

ipv6 prefix-listの後ろにあるle 64は、「/64以下のプレフィックス長にマッチしろ」という意味。 IPv6ネットワークだったら大概 le 64 をつけることになるだろう。 そうじゃないと正確に /32 や /48 に一致するルーティングがやってきた場合にしかマッチしない。

「ipv6 prefix-listにおける any は ::0/0 le 128 と同じ」いう説明を見付けるまで何のことやら分からんかった。

[]