Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Apr 2000 09:50:04 +0300
From:      Ruslan Ermilov <ru@FreeBSD.ORG>
To:        Charles Mott <cmott@scientech.com>
Cc:        Archie Cobbs <archie@whistle.com>, julian@elischer.org, brian@Awfulhak.org, ari@suutari.iki.fi, perhaps@yes.no, net@FreeBSD.ORG, Erik Salander <erik@whistle.com>
Subject:   Re: Improved PPTP support for libalias(3)
Message-ID:  <20000420095004.B28609@relay.ucb.crimea.ua>
In-Reply-To: <Pine.LNX.4.10.10004192333040.12933-100000@if.scientech.com>; from Charles Mott on Thu, Apr 20, 2000 at 12:22:16AM -0600
References:  <200004192132.OAA38818@bubba.whistle.com> <Pine.LNX.4.10.10004192333040.12933-100000@if.scientech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 20, 2000 at 12:22:16AM -0600, Charles Mott wrote:
> > > It seems like the PPTP server address and call ID would provide
> > > enough information to correctly rewrite packets (i.e. a given
> > > server will not have duplicate call ID's).
> > 
> > In practice, that may work, but AFAIK the call ID is scoped
> > only to the control stream session, not to the entire server.
> > 
> > So in theory at least you can have two separate TCP connections to
> > the same server utilizing the same Call ID for different connections.
> 
> >From RFC 2673:
> 
>    Call ID                  A unique identifier, unique to a particular
>                             PAC-PNS pair assigned by the PNS to this
>                             session.  It is used to multiplex and
>                             demultiplex data sent over the tunnel
>                             between the PNS and PAC involved in this
>                             session.
> 
> My reading is that the Call ID is scoped over all
> connections to to a given endpoint.  However, there
> are actually _two_ Call ID's for every connection --
> one for each endpoint.
> 
> So it appears that the control channel has to be
> watched for Call ID's, and new associations ("links"
> in libalias) need to be created for GRE packets based
> on the control channel data.
> 
> Moreover, two clients behind the NAT gateway might
> choose the same Call ID when connecting to the same
> PPTP server.  In this case, the control channel would
> have to modified ("swizzled" in Archie's terminology)
> and the call ID for outgoing GRE packets changed for
> one of the PPTP connections in order to avoid
> collision.
> 
> At any rate, I think I finally understand Archie's
> somewhat concise remarks.  He seems to be correct.
> 
Yes, I see it too now.

> Modifying the TCP stream can be modelled ater the
> ftp and irc code.  The checksum for GRE appears to
> be slightly different than for TCP or UDP.
> 
PPTP does not use GRE checksum.  In section 4.1 of RFC 2673 we read:

: The format of the enhanced GRE header is as follows:
:                                                                        
:  0                   1                   2                   3
:  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: |C|R|K|S|s|Recur|A| Flags | Ver |         Protocol Type         |
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: |    Key (HW) Payload Length    |       Key (LW) Call ID        |
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: |                  Sequence Number (Optional)                   |
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: |               Acknowledgment Number (Optional)                |
: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: 
:    C
:       (Bit 0) Checksum Present.  Set to zero (0).


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA of the
ru@ucb.crimea.ua	United Commercial Bank,
ru@FreeBSD.org		FreeBSD committer,
+380.652.247.647	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000420095004.B28609>