2011-12-27 :-(
_ [pflogd][pf]pflogd: Failed to initialize: pflog0: Invalid argument
% /etc/rc.d/pflogd start Starting pflogd. pflogd: Failed to initialize: pflog0: Invalid argument
む
% tail /var/log/messages Dec 27 19:47:50 mogu pflogd: Failed to initialize: pflog0 Dec 27 19:47:50 mogu pflogd: Exiting, init failure
はて
ググってもあまりヒットしないのでコード読んでみた。
CVS log for src/dist/pf/sbin/pflogd/pflogd.h
#define PFLOGD_DEFAULT_IF "pflog0"
CVS log for src/dist/pf/sbin/pflogd/pflogd.c
const char *interface = PFLOGD_DEFAULT_IF; while ((ch = getopt(argc, argv, "Dxd:f:i:p:s:")) != -1) { switch (ch) { case 'D': Debug = 1; break; case 'd': delay = strtonum(optarg, 5, 60*60, &errstr); if (errstr) usage(); break; case 'f': filename = optarg; break; case 'i': interface = optarg; break; : /* does interface exist */ if (!if_exists(interface)) { warn("Failed to initialize: %s", interface); logmsg(LOG_ERR, "Failed to initialize: %s", interface); logmsg(LOG_ERR, "Exiting, init failure"); exit(1); }
CVS log for src/etc/rc.d/pflogd
if ! ifconfig pflog0 >/dev/null 2>&1; then ifconfig pflog0 create fi
つまり "pflog0" が存在していないと。
Use ifconfig(8) to create pflog(4) interfaces. The default log interface pflog0 is created automatically.
自動で作成される...だと...?
はて
Create a pflog interface and monitor all packets logged on it: # ifconfig pflog1 up # tcpdump -n -e -ttt -i pflog1
ふむ....
% ifconfig pflog0 up % ifconfig -a pcn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:0c:29:67:4e:fb media: Ethernet autoselect inet 192.168.0.23 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::20c:29ff:fe67:4efb%pcn0 prefixlen 64 scopeid 0x1 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 pflog0: flags=41<UP,RUNNING> mtu 33192
% /etc/rc.d/pflogd start Starting pflogd. pflogd: Failed to initialize: pflog0: Invalid argument
ぐぬぬ
[ツッコミを入れる]