[pptp-server] Problem with MPPE compression -- causes pppd to loose mppe

Eric H eric at we-24-30-125-179.we.mediaone.net
Mon May 15 15:54:07 CDT 2000


I found a reason that pptpd connections will get dropped. This is only
true when sending information *to* the pptpd server. (I've been using the
v1.1.1 source) I haven't found a solution yet (other then not using mppe)

I seem to be using a high latency network (MediaOne cable modems...)
Frequently the pptp daemon gets a packet a few in advance (see previous
message quoted at the bottom). The MPPE compression module (ppp_mppe) just
drops the packet and returns an error. This causes mppe compression
(encryption) to be halted. You'll see a bunch of "pppd: [rcvd Compressed
data]" messages since the mppe compression has been disabled. Here's the
two files that are the culprits...

(under linux source)/driver/net/ppp_mppe.c around line 500
if (seq != state->ccount) {
if (state->debug) {
printk(KERN_DEBUG "mppe_decompress%d: bad seq # %d, expected %dn",
state->unit, seq, state->ccount);
}

while(state->ccount != seq) {
mppe_update_count(state);
}

mppe_update_count(state);

/bin /boot /bvmlinuz.2.2.15 /bvmlinuz.2.2.9 /cdrom /dev /etc /home /lib /lost+found /mnt /proc /root /sbin /tmp /usr /var This causes the next function (below) to be called.
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe That then causes mppe to be dropped and bad things happen...
ANTH263/ CS480/ EE326/ HIST101/ HUBERT/ Linux/ LinuxTaRT-2.50/ Mail/ News/ SSLeay-0.8.1b/ bz2/ dos/ ftpd/ ipchains-1.3.8/ ipchains/ lcrack/ mail/ mp3/ nox/ pm/ ppp-2.3.11/ pptpd-1.0.0/ pptpd-1.1.1/ project/ public_html/ samba-2.0.7/ sha/ temp/ tmp/ tmp2/ w2k/
return DECOMP_ERROR;
}
------------------
pppd/ccp.c around line 1450
/bin /boot /bvmlinuz.2.2.15 /bvmlinuz.2.2.9 /cdrom /dev /etc /home /lib /lost+found /mnt /proc /root /sbin /tmp /usr /var MPPE/MPPC does not requires CCP_RESETREQ ANTH263/ CS480/ EE326/ HIST101/ HUBERT/ Linux/ LinuxTaRT-2.50/ Mail/ News/ SSLeay-0.8.1b/ bz2/ dos/ ftpd/ ipchains-1.3.8/ ipchains/ lcrack/ mail/ mp3/ nox/ pm/ ppp-2.3.11/ pptpd-1.0.0/ pptpd-1.1.1/ project/ public_html/ samba-2.0.7/ sha/ temp/ tmp/ tmp2/ w2k/
/bin /boot /bvmlinuz.2.2.15 /bvmlinuz.2.2.9 /cdrom /dev /etc /home /lib /lost+found /mnt /proc /root /sbin /tmp /usr /var After this happens compression (MPPE encryption) is dropped...
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe That also makes the pptp connection not work anymore
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe Making it send the CCP_RESETREQ doesn't seem to work either...
ANTH263/ CS480/ EE326/ HIST101/ HUBERT/ Linux/ LinuxTaRT-2.50/ Mail/ News/ SSLeay-0.8.1b/ bz2/ dos/ ftpd/ ipchains-1.3.8/ ipchains/ lcrack/ mail/ mp3/ nox/ pm/ ppp-2.3.11/ pptpd-1.0.0/ pptpd-1.1.1/ project/ public_html/ samba-2.0.7/ sha/ temp/ tmp/ tmp2/ w2k/
if (ccp_gotoptions[f->unit].method == CI_MPPE)
return;
/bin /boot /bvmlinuz.2.2.15 /bvmlinuz.2.2.9 /cdrom /dev /etc /home /lib /lost+found /mnt /proc /root /sbin /tmp /usr /var
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe Send a reset-request to reset the peer's compressor.
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe We don't do that if we are still waiting for an
ANTH263 CS480 EE326 Eric.cert Eric.csr Eric.key Eric.p12 FilmJournal.txt FilmJournal.txt.1 HIST101 HUBERT Linux LinuxTaRT-2.50 LinuxTaRT_tar.gz Mail MakeFileList News SCFbackup.tgz SSLeay-0.8.1b SSLeay-0.8.1b.tar.gz adamn.mediaone.txt adamn.passwd.mediaone.txt alex.p12 bz2 cgi-eh.tar.gz clsnxs04.zip dead.letter dos download_pptp.tgz download_pptp.txt ftpd game-exe.zip game-src.zip getfile ip_fw.c ipchains ipchains-1.3.8 ipchains-1.3.8.tar.gz ipchains-HOWTOs-1.0.7.tar.bz2 ipx.html lcrack mail mediaone.txt mp3 mppe_stateless.diff myprog myprog.log myprog~ nox perl.cgi pm ppp-2.3.11 ppp-2.3.11-EHMOD.tgz ppp-2.3.11.tar.gz ppp-2.3.8-mppe-others-norc4_TH7.diff ppp-2.3.8.tar.gz ppp.log pptp.problem.txt pptp.problem.txt~ pptpd-1.0.0 pptpd-1.0.0.tgz pptpd-1.1.1 pptpd-1.1.1.tgz project public_html readme.htm samba-2.0.7 samba-2_0_7_tar.gz seq.txt setup1.exe setup2.exe sha tb2pro32d.exe temp tmp tmp2 w2k win98vpn128.exe acknowledgement to a previous reset-request.
ANTH263/ CS480/ EE326/ HIST101/ HUBERT/ Linux/ LinuxTaRT-2.50/ Mail/ News/ SSLeay-0.8.1b/ bz2/ dos/ ftpd/ ipchains-1.3.8/ ipchains/ lcrack/ mail/ mp3/ nox/ pm/ ppp-2.3.11/ pptpd-1.0.0/ pptpd-1.1.1/ project/ public_html/ samba-2.0.7/ sha/ temp/ tmp/ tmp2/ w2k/
if (!(ccp_localstate[f->unit] & RACK_PENDING)) {
fsm_sdata(f, CCP_RESETREQ, f->reqid = ++f->id, NULL, 0);
TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT);
ccp_localstate[f->unit] |= RACK_PENDING;
} else
ccp_localstate[f->unit] |= RREQ_REPEAT;
-------------

THIS IS NOT TRUE ABOUT THE REVERSE. That is, the Win98 client I was
testing seems to re-order the packets properly or send some request. Thus,
you can download anything you please to your client from the pptpd but
sending large files especially will cause problems. (assuming you're
network drops packets or lets newer packets through first)

Re: [pptp-server] Re: Previous GRE: discarding out of order packet
problem

On Sun, 14 May 2000, Eric H wrote:

(please note the reply-to:eharashe at mediaone.net)
I seem to have the same problem. I'm connecting a Win98 computer over a
cable modem network to v1.1.1 pptpd. It works great for short packet
operations (ping, telnet). But if I try sending a file through ftp or
samba, it hangs after a variable amount of time. (Always within the
first 1-2MB) Almost each time (I'm not 100% certain it's each time), I get
a message such as:
May 14 17:06:05 Obsidian pptpd[22398]: Unexpected sequence number; got 265 after 263
May 14 17:11:43 Obsidian pptpd[22412]: Unexpected sequence number; got 5769 after 5767
May 14 17:28:01 Obsidian pptpd[22448]: Unexpected sequence number; got 95 after 93
May 14 17:28:01 Obsidian pptpd[22448]: Unexpected sequence number; got 98 after 96
May 14 17:31:06 Obsidian pptpd[22454]: Unexpected sequence number; got 804 after 802
May 14 17:35:32 Obsidian pptpd[22464]: Unexpected sequence number; got 70 after 67
May 14 17:42:30 Obsidian pptpd[22486]: Unexpected sequence number; got 802 after 796
May 14 17:42:32 Obsidian pptpd[22486]: Unexpected sequence number; got 822 after 820
May 14 17:43:05 Obsidian pptpd[22486]: Unexpected sequence number; got 2253 after 2240
May 14 17:43:32 Obsidian pptpd[22486]: Unexpected sequence number; got 3527 after 3525
May 14 17:43:43 Obsidian pptpd[22486]: Unexpected sequence number; got 3969 after 3967
May 14 17:43:52 Obsidian pptpd[22486]: Unexpected sequence number; got 4337 after 4335
May 14 17:44:27 Obsidian pptpd[22486]: Unexpected sequence number; got 5763 after 5761
... many more follow
I'm guessing it's some kind of packet re-ordering problem. I read some
of the code in pptpgre.c and pptpctrl.c and it seems that out of order
packets are dropped... It seems to be causing everything after that to not
work. After this happens, the link dies. That is, I can't connect through
the vpn connection to anything. On the server, I still see occasional
pppd: recvd [Compressed data] etc.


Eric Harashevsky (eharashe at mediaone.net)
----------------------------------------------------------------
Honey, PLEASE don't pick up the PH$@#*&$^(#@&$^%(*NO CARRIER

_______________________________________________
pptp-server maillist - pptp-server at lists.schulte.org
http://lists.schulte.org/mailman/listinfo/pptp-server
List services provided by www.schulte.org!


Eric Harashevsky (eharashe at mediaone.net)
----------------------------------------------------------------
I can see clearly now, the brain is gone...




More information about the pptp-server mailing list