Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 May 2002 18:56:13 -0700 (PDT)
From:      Amagai Yoshiji <amagai@nue.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/38058: ppp alters IP header length field 40 -> 46
Message-ID:  <200205140156.g4E1uDpL077368@www.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         38058
>Category:       bin
>Synopsis:       ppp alters IP header length field 40 -> 46
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 13 19:00:04 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Amagai Yoshiji
>Release:        FreeBSD 4.5-RELEASE-p4
>Organization:
New Unified Environment Research Project
>Environment:
System: FreeBSD may.nue.org 4.5-RELEASE FreeBSD 4.5-RELEASE #3: Fri Apr 26 14:2\
5:46 JST 2002 amagai@may.nue.org:/usr/src/sys/compile/MAY i386

>Description:
 Sent a 40 octet length IP datagram (typically, TCP Ack only segment
without any TCP options) on ppp connection, the IP header length field
was alterd from 40 to 46 sometimes.  It makes TCP checksum incorrect.

       ------ PPP -------  router
HostA ------TCP/IP-------- HostB ---- TCP/IP ------ HostC

on HostA: sysctl net.inet.tcp.rfc1323=0
on HostB: gateway_enable="YES"

I tried PPP in 2 modes, as follows, (on HostA)

 set device "!rsh HostB exec /usr/sbin/ppp -direct vpn"

 set device HostB:1001/tcp

IP datagram was broken in ether mode.
================================================================
caputerd on HostB Ether interface.
================================================================
Frame 31 (54 on wire, 54 captured)
    Arrival Time: May 13, 2002 15:53:35.6882
    Time delta from previous packet: 0.000796 seconds
    Time relative to first packet: 7.598413 seconds
    Frame Number: 31
    Packet Length: 54 bytes
    Capture Length: 54 bytes
Ethernet II
    Destination: 00:02:17:7c:ec:1c (Cisco_7c:ec:1c)
    Source: 00:30:48:10:64:2c (Supermic_10:64:2c)
    Type: IP (0x0800)
Internet Protocol
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 40
    Identification: 0x0891
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 250
    Protocol: TCP (0x06)
    Header checksum: 0x1a2a (correct)
    Source: HostA
    Destination: HostC
Transmission Control Protocol, Src Port: 1057 (1057), Dst Port: 4420 (4420), Seq: 207433985, Ack: 1555843849
    Source port: 1057 (1057)
    Destination port: 4420 (4420)
    Sequence number: 207433985
    Acknowledgement number: 1555843849
    Header length: 20 bytes
    Flags: 0x0010 (ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..0. = Syn: Not set
        .... ...0 = Fin: Not set
    Window size: 2048
    Checksum: 0x0f37 (correct)

   0  0002 177c ec1c 0030 4810 642c 0800 4500   ...|...0H.d,..E.
  10  0028 0891 0000 fa06 1a2a c005 d881 a38a   .(.......*......
  20  6203 0421 1144 0c5d 3101 5cbc 4b09 5010   b..!.D.]1.\.K.P.
  30  0800 0f37 0000 
================================================================
caputerd on HostC tun0 interface. broken.
================================================================
Frame 32 (50 on wire, 50 captured)
    Arrival Time: May 13, 2002 15:52:56.9767
    Time delta from previous packet: 0.001853 seconds
    Time relative to first packet: 7.607596 seconds
    Frame Number: 32
    Packet Length: 50 bytes
    Capture Length: 50 bytes
Null/Loopback
    Family: IP (0x00000002)
Internet Protocol
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 46
    Identification: 0x0891
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 247
    Protocol: TCP (0x06)
    Header checksum: 0x1d24 (correct)
    Source: HostA
    Destination: HostC
Transmission Control Protocol, Src Port: 1057 (1057), Dst Port: 4420 (4420), Seq: 207433985, Ack: 1555843849
    Source port: 1057 (1057)
    Destination port: 4420 (4420)
    Sequence number: 207433985
    Next sequence number: 207433991
    Acknowledgement number: 1555843849
    Header length: 20 bytes
    Flags: 0x0010 (ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..0. = Syn: Not set
        .... ...0 = Fin: Not set
    Window size: 2048
    Checksum: 0x0f37 (incorrect, should be 0x0f31)
Data (6 bytes)

   0  0200 0000 4500 002e 0891 0000 f706 1d24   ....E..........$
  10  c005 d881 a38a 6203 0421 1144 0c5d 3101   ......b..!.D.]1.
  20  5cbc 4b09 5010 0800 0f37 0000 0000 0000   \.K.P....7......
  30  0000                                      ..




>How-To-Repeat:
      
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:
 X-Send-Pr-Version: www-1.0
 
 

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?200205140156.g4E1uDpL077368>