Date: Mon, 2 Dec 2002 03:50:04 -0800 (PST) From: Motoyuki Konno <motoyuki@bsdclub.org> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/33653: DSL PPPoE connection error on 4.5-PRERELEASE Message-ID: <200212021150.gB2Bo4jL043059@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/33653; it has been noted by GNATS. From: Motoyuki Konno <motoyuki@bsdclub.org> To: FreeBSD-gnats-submit@freebsd.org Cc: motoyuki@freebsd.org, Ian Dowse <iedowse@freebsd.org> Subject: Re: kern/33653: DSL PPPoE connection error on 4.5-PRERELEASE Date: Mon, 02 Dec 2002 20:42:29 +0900 In the previous mail, I forgot to cc: to GNATS DB. Ian Dowse <iedowse@FreeBSD.org> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200212021150.gB2Bo4jL043059>