PROBLEM: ipv6 and dnssec

Mark Andrews Mark_Andrews at isc.org
Tue Sep 6 07:27:26 UTC 2005


> [For unknown reasons, the email from my colleague Jean-Philippe Pick
> <jean-philippe.pick at nic.fr> seems to have missed the list. I re-send
> it.]

	I suspect it got flagged for manual moderation and it is a
	public holiday in the US.  The list moderation is semi-
	automated.  New posters go the manual path.

> Hello,
> 
> I'm working for the French NIC and I operate a DNS nameserver
> (c.nic.fr) which use IPv6 and DNSSEC.  I have a problem with the
> ip6_output() function which sometimes crash the named process !
> 
> I think it's occurs when named is creating a "big" IPv6 UDP packet for
> DNSSEC answers.  The packet, which is bigger than 1500 bytes, need to
> be splitted in two fragments.  And at this moment the ip6_output()
> function crash )-:
> 
> I cannot reproduce it, but it occurs 3 times this weekend !
> 
> When I query the DNS server with IPv6 and DNSSEC :
> # dig -6 @c.nic.fr ripe.net +dnssec
> 
> I can see with tcpdump the two fragments :
> | 12:42:07.146478 electron6.nic.fr.46352 > c.nic.fr.domain:  12431+ [1au] A? 
> ripe.net. (37)
> | 12:42:07.146660 c.nic.fr > electron6.nic.fr: frag (0|1448) domain > 46352: 
>  12431*- 2/6/16[|domain]
> | 12:42:07.146666 c.nic.fr > electron6.nic.fr: frag (1448|597)
> 
When the kernel bugs, I get this message :
> 
> Sep  4 19:09:22 troy kernel: ------------[ cut here ]------------
> Sep  4 19:09:22 troy kernel: kernel BUG at net/ipv6/ip6_output.c:718!
> Sep  4 19:09:22 troy kernel: invalid operand: 0000 [#1]
> Sep  4 19:09:22 troy kernel: SMP
> Sep  4 19:09:22 troy kernel: Modules linked in: dcdipm(U) dcdbas(U) autofs4 i
> 2c_dev i2c_core sunrpc md5 ipv6 dm_mod video button battery ac uhci_hcd ehci_
> hcd hw_random shpchp e1000 floppy sg ext3 jbd megaraid_mbox megaraid_mm sd_mo
> d scsi_mod
> Sep  4 19:09:22 troy kernel: CPU:    1
> Sep  4 19:09:22 troy kernel: EIP:    0060:[<f8aec7fb>]    Tainted: PF     VLI
> Sep  4 19:09:22 troy kernel: EFLAGS: 00010282   (2.6.12-1.1447_FC4smp)
> Sep  4 19:09:22 troy kernel: EIP is at ip6_fragment+0x1d9/0x7bd [ipv6]
> Sep  4 19:09:22 troy kernel: eax: fffffff2   ebx: f7954280   ecx: fffffda0   
> edx: f34e0600
> Sep  4 19:09:22 troy kernel: esi: fffffda0   edi: f3ce3840   ebp: f3ce3840   
> esp: f65abbe0
> Sep  4 19:09:22 troy kernel: ds: 007b   es: 007b   ss: 0068
> Sep  4 19:09:22 troy kernel: Process named-ns3.nic.f (pid: 3553, threadinfo=f
> 65ab000 task=f793ca80)
> Sep  4 19:09:22 troy kernel: Stack: badc0ded fffffda0 00000245 f8aeb597 c222d
> c80 f7e3bc80 00000245 fffffda4
> Sep  4 19:09:22 troy kernel:        00000830 ffffffe5 fffffda0 c6faab57 00000
> 830 b7f0f134 0e000000 f65abeec
> Sep  4 19:09:22 troy kernel:        f4c33040 f6edb980 00000000 f34e0048 f6d40
> 300 c222dc80 f34e0040 f6d404b4
> Sep  4 19:09:22 troy kernel: Call Trace:
> Sep  4 19:09:22 troy kernel:  [<f8aeb597>] ip6_output2+0x0/0x2b4 [ipv6]
> Sep  4 19:09:22 troy kernel:  [<f8aedd06>] ip6_push_pending_frames+0x291/0x42
> d [ipv6]
> Sep  4 19:09:22 troy kernel:  [<f8aed804>] ip6_append_data+0x72d/0x99e [ipv6]
> Sep  4 19:09:22 troy kernel:  [<c02c997b>] ip_generic_getfrag+0x0/0x94
> Sep  4 19:09:22 troy kernel:  [<f8afe91c>] udp_v6_push_pending_frames+0x124/0
> x1ac [ipv6]
> Sep  4 19:09:22 troy kernel:  [<f8aff08c>] udpv6_sendmsg+0x6e8/0x8db [ipv6]
> Sep  4 19:09:22 troy kernel:  [<c02e6200>] udp_recvmsg+0xbe/0x2f3
> Sep  4 19:09:22 troy kernel:  [<c02ecafa>] inet_sendmsg+0x2e/0x4c
> Sep  4 19:09:22 troy kernel:  [<c02a2577>] sock_sendmsg+0xe4/0xff
> Sep  4 19:09:22 troy kernel:  [<c011c9b3>] find_busiest_group+0xbe/0x320
> Sep  4 19:09:22 troy kernel:  [<c0134feb>] autoremove_wake_function+0x0/0x37
> Sep  4 19:09:22 troy kernel:  [<c01d7cae>] copy_from_user+0x42/0x84
> Sep  4 19:09:23 troy kernel:  [<c02a3e0c>] sys_sendmsg+0x11e/0x213
> Sep  4 19:09:23 troy kernel:  [<c011b7ca>] activate_task+0x8c/0x9b
> Sep  4 19:09:23 troy kernel:  [<c011bb19>] try_to_wake_up+0x6e/0x2b1
> Sep  4 19:09:23 troy kernel:  [<c0156fc1>] find_extend_vma+0x12/0x4f
> Sep  4 19:09:23 troy kernel:  [<c0137f52>] get_futex_key+0x38/0x133
> Sep  4 19:09:23 troy kernel:  [<c0156fc1>] find_extend_vma+0x12/0x4f
> Sep  4 19:09:23 troy kernel:  [<c0137f52>] get_futex_key+0x38/0x133
> Sep  4 19:09:23 troy kernel:  [<c02a4348>] sys_socketcall+0x270/0x292
> Sep  4 19:09:23 troy kernel:  [<c0108709>] do_syscall_trace+0xef/0x123
> Sep  4 19:09:23 troy kernel:  [<c0104035>] syscall_call+0x7/0xb
> Sep  4 19:09:23 troy kernel: Code: 24 37 88 4d 00 c6 45 01 00 c7 45 04 00 00 
> 00 00 8b 4b 24 8b 74 24 24 89 34 24 8b 54 24 2c 8b 44 24 0c e8 49 ae 7b c7 85
>  c0 74 08 <0f> 0b ce 02 7c 1f b1 f8 0f b7 44 24 44 89 c2 c1 e2 08 c1 e8 08
> 
> I use Linux Fedora Core 4 and bind 9.3.1 from the box :
> 
> # cat /proc/version
> Linux version 2.6.12-1.1447_FC4smp (bhcompile at decompose.build.redhat.com) (gc
> c version 4.0.1 20050727 (Red Hat 4.0.1-5)) #1 SMP Fri Aug 26 20:57:13 EDT 20
> 05
> 
> # /usr/src/redhat/BUILD/kernel-2.6.12/linux-2.6.12/scripts/ver_linux
> Linux troy.nic.fr 2.6.12-1.1447_FC4smp #1 SMP Fri Aug 26 20:57:13 EDT 2005 i6
> 86 i686 i386 GNU/Linux
> 
> Gnu C                  4.0.1
> Gnu make               3.80
> binutils               2.15.94.0.2.2
> util-linux             2.12p
> mount                  2.12p
> module-init-tools      3.1
> e2fsprogs              1.37
> reiserfsprogs          line
> reiser4progs           line
> quota-tools            3.12.
> PPP                    2.4.2
> nfs-utils              1.0.7
> Linux C Library        2.3.5
> Dynamic linker (ldd)   2.3.5
> Procps                 3.2.5
> Net-tools              1.60
> Kbd                    1.12
> Sh-utils               5.2.1
> udev                   058
> Modules Loaded         dcdipm dcdbas autofs4 i2c_dev i2c_core sunrpc md5 ipv6
>  dm_mod video button battery ac uhci_hcd ehci_hcd hw_random shpchp e1000 flop
> py sg ext3 jbd megaraid_mbox megaraid_mm sd_mod scsi_mod
> 
> Everything seems fine with TCP.
> 
> I don't know if my diagnostic is right, then if somebody can help me !
> 
> -- 
> Jean-Philippe PICK
> AFNIC / NIC-France

	Looks definitely looks like a kernel bug.

	Mark
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews at isc.org



More information about the bind-users mailing list