[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