こんにちは、けんずふぁみりーです。

FreeBSD 8.1-RELEASE apache22+proftpd+bind
一部の機種で再起動時にproftpdが起動できないので
いろいろ切り分けをして見ましたら。
/etc/rc.d/named の冒頭に
sleep 1
として起動のタイミングをずらすと問題が無くなりました
いったいどんな理由からでしょうか?
もっとスマートな解決策はありますか?


通常の設定でproftpdがこけるときのログ
hostname# tail /var/log/messages
Nov 15 09:31:34 hostname kernel: uhub4: 8 ports with 8 removable, self powered
Nov 15 09:31:34 hostname kernel: Trying to mount root from ufs:/dev/ar0s1a
Nov 15 09:31:35 hostname named[682]: starting BIND 9.6.2-P2 -t /var/named -u 
bind
Nov 15 09:31:35 hostname named[682]: built with '--prefix=/usr' 
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-threads' 
'--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps' 
'--with-openssl=/usr' '--with-randomdev=/dev/random' '--without-idn' 
'--without-libxml2'
Nov 15 09:31:35 hostname named[682]: command channel listening on 127.0.0.1#953
Nov 15 09:31:35 hostname named[682]: command channel listening on ::1#953
Nov 15 09:31:35 hostname ntpd[874]: ntpd 4.2.4p5-a (1)
Nov 15 09:31:36 hostname kernel: rl0: link state changed to UP
Nov 15 09:31:36 hostname root: /etc/rc: WARNING: failed to start proftpd
Nov 15 09:31:36 hostname kernel: re0: link state changed to UP

/etc/rc.d/named + sleep 1 で回避した場合のログ
hostname# tail /var/log/messages
Nov 15 09:37:29 hostname kernel: uhub4: 8 ports with 8 removable, self powered
Nov 15 09:37:29 hostname kernel: Trying to mount root from ufs:/dev/ar0s1a
Nov 15 09:37:31 hostname kernel: rl0: link state changed to UP
Nov 15 09:37:31 hostname kernel: re0: link state changed to UP
Nov 15 09:37:31 hostname named[698]: starting BIND 9.6.2-P2 -t /var/named -u 
bind
Nov 15 09:37:31 hostname named[698]: built with '--prefix=/usr' 
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-threads' 
'--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps' 
'--with-openssl=/usr' '--with-randomdev=/dev/random' '--without-idn' 
'--without-libxml2'
Nov 15 09:37:31 hostname named[698]: command channel listening on 127.0.0.1#953
Nov 15 09:37:31 hostname named[698]: command channel listening on ::1#953
Nov 15 09:37:31 hostname ntpd[890]: ntpd 4.2.4p5-a (1)
Nov 15 09:37:32 hostname proftpd[948]: hostname.example.net - ProFTPD 1.3.3a 
(maint) (built Thu Jul 8 2010 14:00:33 UTC) standalone mode STARTUP


またこの問題は沢山設定してあるsleveのゾーンの内特定のひとつだけを削除す
ると回避出来ます。そのゾーンを設定したままでもmastaからゾーンをもらって
いない状態のとき(初めてbindを立ち上げる時)は問題がおきません。


全く同じ設定を別のマシンでも再現しましたが問題はおきませんでした。
その別のマシンの正常なログ
kenji# tail -f /var/log/messages
Nov 15 09:24:23 kenji named[682]: starting BIND 9.6.2-P2 -t /var/named -u bind
Nov 15 09:24:23 kenji named[682]: built with '--prefix=/usr' 
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-threads' 
'--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps' 
'--with-openssl=/usr' '--with-randomdev=/dev/random' '--without-idn' 
'--without-libxml2'
Nov 15 09:24:23 kenji named[682]: command channel listening on 127.0.0.1#953
Nov 15 09:24:23 kenji named[682]: command channel listening on ::1#953
Nov 15 09:24:24 kenji ntpd[874]: ntpd 4.2.4p5-a (1)
Nov 15 09:24:24 kenji proftpd[933]: kenji.example.net - ProFTPD 1.3.3a (maint) 
(built Thu Jul 8 2010 14:00:33 UTC) standalone mode STARTUP
Nov 15 09:24:24 kenji kernel: re0: link state changed to UP
Nov 15 09:24:24 kenji kernel: re1: link state changed to UP




以下はどちらも共通の設定項目です

# cat /etc/rc.conf
defaultrouter="125.***.***.130"
hostname="hostname.example.net"
ifconfig_re0="inet 192.168.0.13*  netmask 255.255.255.0"
ifconfig_rl0="inet 125.***.***.13*  netmask 255.255.255.192"
static_routes="vpn"
  route_vpn="-net 192.168.2.0/24 192.168.0.1"
keymap="jp.106"
sshd_enable="YES"
inetd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
apache22_enable="YES"
apache22_http_accept_enable="YES"
snmpd_enable="YES"
mysql_enable="YES"
sendmail_enable="NONE"
svscan_enable="YES"
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
courier_imap_imapd_ssl_enable="YES"
proftpd_enable="YES"
named_enable="YES"

# cat /etc/resolv.conf
domain  example.net
nameserver      210.196.3.183
nameserver      210.141.112.163

# cat /etc/namedb/named.conf
acl localnet { 127.0.0.1; 192.168.0.0/16; };
acl groupnet { 125.***.***.128/26; 210.141.108.248; };

options {
        directory       "/etc/namedb/working";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        recursion no;
        allow-transfer { localnet;groupnet; };
        disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
        disable-empty-zone 
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
        disable-empty-zone 
"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
};

logging {
        channel "default-log" {
                file "/var/log/default.log" versions 3 size 5M;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        channel "xfer-in-log" {
                file "/var/log/xfer-in.log" versions 3 size 5M;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        channel "xfer-out-log" {
                file "/var/log/xfer-out.log" versions 3 size 5M;
                severity debug;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        channel "queries-log" {
                file "/var/log/queries.log" versions 3 size 5M;
                severity info;
                print-time yes;
                print-severity yes;
                print-category yes;
        };
        category default { "default-log"; };
        category queries { "queries-log"; };
        category xfer-in { "xfer-in-log"; };
        category xfer-out { "xfer-out-log"; };
        category lame-servers { null; };
};

zone "." { type hint; file "/etc/namedb/named.root"; };
zone "localhost"        { type master; file 
"/etc/namedb/master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file 
"/etc/namedb/master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "0.ip6.arpa"       { type master; file 
"/etc/namedb/master/localhost-reverse.db"; };
zone "0.in-addr.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "10.in-addr.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; 
};
zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; 
};
zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; 
};
zone "100.51.198.in-addr.arpa" { type master; file 
"/etc/namedb/master/empty.db"; };
zone "113.0.203.in-addr.arpa" { type master; file 
"/etc/namedb/master/empty.db"; };
zone "0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa" { type master; file 
"/etc/namedb/master/empty.db"; };
zone "test" { type master; file "/etc/namedb/master/empty.db"; };
zone "example" { type master; file "/etc/namedb/master/empty.db"; };
zone "invalid" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.com" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.net" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.org" { type master; file "/etc/namedb/master/empty.db"; };
zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "1.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "3.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "4.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "5.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "6.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "7.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "8.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "9.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "a.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "b.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "c.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "d.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "e.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "0.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "1.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "2.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "3.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "4.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "5.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "6.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "7.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "8.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "9.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "a.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "b.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "0.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "1.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "2.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "3.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "4.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "5.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "6.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "7.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "c.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "d.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "8.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "9.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "a.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "b.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "c.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "d.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "e.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "f.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "ip6.int"          { type master; file "/etc/namedb/master/empty.db"; };


zone "128h.***.***.125.IN-ADDR.ARPA" {
        type slave;
        file "/etc/namedb/slave/example.net.rev";
        masters {
                125.***.***.130;
        };
};

zone "example.net" {
        type slave;
        file "/etc/namedb/slave/example.net.zone";
        masters {
                125.***.***.130;
        };
};

zone "[問題のある].net" {
        type slave;
        file "/etc/namedb/slave/[問題のある].net.zone";
        masters {
                125.***.***.130;
        };
};

以下省略

-- 
けんずふぁみりー <ke...@kens.fm>

メールによる返信