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>