Skip site navigation (1)Skip section navigation (2)
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>