From owner-freebsd-bugs Mon Dec 2 2:41:36 2002 Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6A75237B401; Mon, 2 Dec 2002 02:41:34 -0800 (PST) Received: from mail.mk.bsdclub.org (l209160.ppp.asahi-net.or.jp [218.219.209.160]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4A42543EAF; Mon, 2 Dec 2002 02:41:33 -0800 (PST) (envelope-from motoyuki@mk.bsdclub.org) Received: from sakura.mk.bsdclub.org (sakura.mk.bsdclub.org [IPv6:2001:200:341:0:2a0:c9ff:fe20:9aff]) by mail.mk.bsdclub.org (8.12.6+3.5Wbeta/8.12.6/smtpfeed 1.18) with ESMTP/inet6 id gB2AfWFN014870; Mon, 2 Dec 2002 19:41:32 +0900 (JST) (envelope-from motoyuki@mk.bsdclub.org) Received: from sakura.mk.bsdclub.org (localhost [127.0.0.1]) by sakura.mk.bsdclub.org (8.12.6/8.12.6) with ESMTP/inet id gB2AfWQk000564; Mon, 2 Dec 2002 19:41:32 +0900 (JST) (envelope-from motoyuki@sakura.mk.bsdclub.org) Message-Id: <200212021041.gB2AfWQk000564@sakura.mk.bsdclub.org> To: Ian Dowse Cc: motoyuki@bsdclub.org, freebsd-bugs@FreeBSD.org Subject: Re: kern/33653: DSL PPPoE connection error on 4.5-PRERELEASE From: Motoyuki Konno References: <200212012111.gB1LBT8g080962@freefall.freebsd.org> User-Agent: EMH/1.10.0 SEMI/1.14.4 (Hosorogi) FLIM/1.14.4 (Kashiharajingu-mae) APEL/10.4 Emacs/21.2 (i386--freebsd) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.4 - "Hosorogi") Content-Type: text/plain; charset=US-ASCII Date: Mon, 02 Dec 2002 19:41:32 +0900 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Ian Dowse wrote: > Synopsis: DSL PPPoE connection error on 4.5-PRERELEASE > > State-Changed-From-To: open->feedback > State-Changed-By: iedowse > State-Changed-When: Sun Dec 1 13:11:06 PST 2002 > State-Changed-Why: > > Does this problem still occur with more recent releases? > > http://www.freebsd.org/cgi/query-pr.cgi?pr=33653 I'm sorry I've forgotten to write follow-ups. I've examined this problem since I submitted this PR. I think this is IPv6 problem. 1. ppp hangs up at physical_Write() in src/usr.sbin/ppp/physical.c. I found that write() in physical_Write() failed. 2. When write() faied, physical_Write() tries to write following data. ------ 00 21 60 06 62 c2 00 20 06 40 3f fe 05 05 20 22 .!`.b.. .@?... " 00 00 00 00 00 00 00 00 00 01 20 01 02 18 04 99 .......... ..... 00 01 00 00 00 00 00 00 00 02 00 50 0d d5 ac 44 ...........P...D 35 29 44 e3 14 c1 80 11 81 c4 08 fd 00 00 01 01 5)D............. 08 0a 00 1b b3 63 00 30 63 3a 63 2e .....c.0c:c. ------ First 2 bytes (0x00 0x21) tells that this is PPP encapsulated data (RFC 1548). Third byte (0x60) tells that this is IPv6 packet. 3. ppp calculates the size of packet using bit 16-31 of IP header (Total Length field of IPv4 header). bit 16-31 of IPv6 header is "Flow Label", not "Total Length". So, when ppp tries to write IPv6 packet to ppp line, the size of data size must be illegal. 4. How to prevent this problem is: # ip6fw add deny all from any to any via tun* 5. I think the reasons of this problem are: o /usr/sbin/ppp cannot recognize IPv6 packet o kernel sends IPv6 packet to tun* interface which does not have IPv6 address. 6. Now, I'm using FreeBSD 4.7-STABLE. Here is the ip6fw log: -------- Dec 2 10:23:08 mserver /kernel: ip6fw: 2000 Deny P:0 [fe80::02d0:b7ff:fe83:3679] [ff02::0001:ff83:3679] out via tun1 Dec 2 10:23:08 mserver /kernel: ip6fw: 2000 Deny P:0 [fe80::02d0:b7ff:fe83:3679] [ff02::0002:f470:729c] out via tun1 Dec 2 10:23:08 mserver /kernel: ip6fw: 2000 Deny IPV6-ICMP:135.0 [::] [ff02::0001:ff83:3679] out via tun1 -------- It seems that kernel tries to write illegal IPv6 packets to tun* (ppp). -- ------------------------------------------------------------------------ Motoyuki Konno motoyuki@bsdclub.org (Home) motoyuki@FreeBSD.ORG (FreeBSD Project) http://www.freebsd.org/~motoyuki/ (WWW) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message