[pptp-server] error-message... "Unknown protocol..."

John McKendry mckendry at mediaone.net
Tue Mar 13 12:15:44 CST 2001


Kristian Lyngstøl wrote:
> 
> I'm haveing a little bit of a problem with my VPN solution.
> When I use encryption with the mppe module, I am able to connect
> to the server, but the moment I try to use the connection, these
> error messages pop up:
> 
> Mar 13 15:41:46 lyngstol pppd[27680]: Unsupported protocol 0x10f0 received
> Mar 13 15:41:47 lyngstol pppd[27680]: Unsupported protocol 0x4ca8 received
> Mar 13 15:41:47 lyngstol pppd[27680]: Unsupported protocol 0xc636 received
> 
 I have been having a similar problem with the PPTP client, and I finally 
made it go away last night. First take a look at this from the list archive:
 http://lists.schulte.org/pipermail/pptp-server/2000-October/003887.html,
which explains the problem and gives a patch.
 If you try to apply the patch and find it's already been applied, then you
may have the same problem I had. Are you seeing any "discarding out-of-order"
or "discarding duplicate packet" messages when you start up? (This would be in
your system error log, and assumes you have error logging enabled.)
 I had the problem with PPTP client, not pptpd, but it looks to me like my
fix would apply equally to pptpd. What happens is that right at startup it
receives a packet with sequence number zero, and since it has initialized
its seq_recv counter to zero it thinks it's already received this packet
and discards it, and the loss of a real packet messes up the encryption
algorithm. To fix it for pptpd, try this (bearing in mind I'm translating
what I did for PPTP client):
 Save a copy of pptpgre.c as pptpgre.c.orig.
 In pptpgre.c, find the function decaps_gre().
 Find the comment /* check for out-of-order sequence number */.
 Comment out the line 
	if (seq_greater(seq, gre.seq_recv)){
 and replace it with
	if ( (seq_greater(seq, gre.seq_recv)) ||
	     ((seq == 0) && (gre.seq_recv == 0)) ){
 Add comments here and at the top of the file to remind yourself you've
 changed the code; save, make clean, make.
 (Usual disclaimers here.) In the client code they make a big deal of
handling wraparound, which is not mentioned in the pptpd code, and I'm not
sure how this change will work with wraparound, but it's a step in the
right direction. Also if you really do get a duplicate packet 0 it will
probably foul you up, but so far that hasn't happened to me.

John



More information about the pptp-server mailing list