Добрый день. Имеется машина с 8.1. ОС ставилась с нуля. Ядро GENERIC. Никакие переменные в sysctl.conf и loader.conf не заданы.
[mu] /var/crash % uname -a FreeBSD mu.global-net.ru 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010 [email protected]:/usr/obj/usr/src/sys/GENERIC i386 [mu] /var/crash % kldstat Id Refs Address Size Name 1 8 0xc0400000 bb5504 kernel 2 1 0xc5ea1000 37000 ipl.ko 3 1 0xc60e6000 11000 ipfw.ko 4 1 0xc60f8000 d000 libalias.ko В машине установлены две интеловские гигабитные карточки. На одной из них подняты два влана. Работает quagga, забирает bgp-маршруты (не full-view). Также эта машина натит трафик с помощью ipnat. Проблема заключается в том, что не реже одного раза в неделю эта машина ловит kernel panic и перегружается. Менять пробовал всё, что только можно: сетевые карты, полностью компьютер с переустановкой ОСи начисто, блок питания, патч-корды. Научил машину скидывать дампы и ориентируясь на прошлые треды сделал с дампом следующее: # kgdb -q /boot/kernel/kernel vmcore.0 | tee backtrace1.txt Reading symbols from /boot/kernel/ipl.ko...Reading symbols from /boot/kernel/ipl.ko.symbols...done. done. Loaded symbols for /boot/kernel/ipl.ko Reading symbols from /boot/kernel/ipfw.ko...Reading symbols from /boot/kernel/ipfw.ko.symbols...done. done. Loaded symbols for /boot/kernel/ipfw.ko Reading symbols from /boot/kernel/libalias.ko...Reading symbols from /boot/kernel/libalias.ko.symbols...done. done. Loaded symbols for /boot/kernel/libalias.ko #0 doadump () at pcpu.h:246 in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:246 #1 0xc089e9b7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:416 #2 0xc089ec19 in panic (fmt=) at /usr/src/sys/kern/kern_shutdown.c:590 #3 0xc0bd3adc in trap_fatal (frame=0xc5335824, eva=4) at /usr/src/sys/i386/i386/trap.c:938 #4 0xc0bd3d60 in trap_pfault (frame=0xc5335824, usermode=0, eva=4) at /usr/src/sys/i386/i386/trap.c:851 #5 0xc0bd46a5 in trap (frame=0xc5335824) at /usr/src/sys/i386/i386/trap.c:533 #6 0xc0bb67bb in calltrap () at /usr/src/sys/i386/i386/exception.s:165 #7 0xc5ea206a in nat_new (fin=0xc5335968, np=0xc579ba00, natsave=0x0, flags=) at /usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/ip_nat.c:2610 #8 0xc5ea5f2e in fr_checknatout (fin=0xc5335968, passp=0xc5335964) at /usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/ip_nat.c:3861 #9 0xc5ec0039 in fr_check (ip=0xc71e5810, hlen=20, ifp=0xc5da2400, out=1, mp=0xc5335a70) at /usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/fil.c:2624 #10 0xc5eb79be in fr_check_wrapper (arg=0x0, mp=0xc5335a70, ifp=0xc5da2400, dir=2) at /usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/ip_fil_freebsd.c:186 #11 0xc0956658 in pfil_run_hooks (ph=0xc0def3a0, mp=0xc5335ae0, ifp=0xc5da2400, dir=2, inp=0x0) at /usr/src/sys/net/pfil.c:82 #12 0xc09ac325 in ip_output (m=0xc6072400, opt=0x0, ro=0xc5335b50, flags=1, imo=0x0, inp=0x0) at /usr/src/sys/netinet/ip_output.c:511 #13 0xc09a9239 in ip_forward (m=0xc6072400, srcrt=0) at /usr/src/sys/netinet/ip_input.c:1531 #14 0xc09aa942 in ip_input (m=0xc6072400) at /usr/src/sys/netinet/ip_input.c:735 #15 0xc0955a79 in netisr_dispatch_src (proto=1, source=0, m=0xc6072400) at /usr/src/sys/net/netisr.c:917 #16 0xc0955d10 in netisr_dispatch (proto=1, m=0xc6072400) at /usr/src/sys/net/netisr.c:1004 #17 0xc094bc81 in ether_demux (ifp=0xc5734000, m=0xc6072400) at /usr/src/sys/net/if_ethersubr.c:901 #18 0xc094c1d3 in ether_input (ifp=0xc5734000, m=0xc6072400) at /usr/src/sys/net/if_ethersubr.c:760 #19 0xc062a2da in lem_handle_rxtx (context=0xc5771000, pending=1) at /usr/src/sys/dev/e1000/if_lem.c:3616 #20 0xc08d83d2 in taskqueue_run (queue=0xc5768040) at /usr/src/sys/kern/subr_taskqueue.c:239 #21 0xc08d85dd in taskqueue_thread_loop (arg=0xc57755a8) at /usr/src/sys/kern/subr_taskqueue.c:360 #22 0xc0873df1 in fork_exit (callout=0xc08d8520 <taskqueue_thread_loop>, arg=0xc57755a8, frame=0xc5335d38) at /usr/src/sys/kern/kern_fork.c:844 #23 0xc0bb6830 in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:270 (kgdb) bt full #0 doadump () at pcpu.h:246 No locals. #1 0xc089e9b7 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:416 _giantcnt = (kgdb) printf "%s", (char *)msgbufp->msg_ptr kets/sec Limiting icmp unreach response from 328 to 200 packets/sec Limiting closed port RST response from 213 to 200 packets/sec Limiting icmp unreach response from 298 to 200 packets/sec Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x4 fault code = supervisor read, page not present instruction pointer = 0x20:0xc5ea206a stack pointer = 0x28:0xc5335864 frame pointer = 0x28:0xc53358e8 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (em1 taskq) trap number = 12 panic: page fault cpuid = 0 Uptime: 6d0h8m58s Physical memory: 1997 MB Dumping 221 MB: 206 190 174 158 142 126 110 94 78 62 46 30 14268 to 200 packets/sec (kgdb) list *0xc5ea206a 0xc5ea206a is in nat_new (/usr/src/sys/modules/ipfilter/../../contrib/ipfilter/netinet/ip_nat.c:2610). 2605 nat->nat_ifps[1] = np->in_ifps[1]; 2606 nat->nat_ptr = np; 2607 nat->nat_p = fin->fin_p; 2608 nat->nat_mssclamp = np->in_mssclamp; 2609 if (nat->nat_p == IPPROTO_TCP) 2610 nat->nat_seqnext[0] = ntohl(tcp->th_seq); 2611 2612 if ((np->in_apr != NULL) && ((ni->nai_flags & NAT_SLAVE) == 0)) 2613 if (appr_new(fin, nat) == -1) 2614 return -1; (kgdb) Опыта в отлове таких проблем у меня нет никакого, но чувствую, что дело в нате. Куда копать, что пробовать? На всякий случай, если это может пригодиться, вот ссылка на core.txt из директории /var/crash (~180kb): http://dl.dropbox.com/u/83258/core.txt Если нужна ещё какая-то информация, пишите, предоставлю. Заранее спасибо за потраченное время. Alexey Karguine [email protected]
