Bug 8009 - (net ppp) PPPoE+mppe Server fail with Win Client
Summary: (net ppp) PPPoE+mppe Server fail with Win Client
Status: CLOSED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Paul Mackerras
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-14 02:20 UTC by Giacomo Battiston
Modified: 2012-05-14 16:56 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.29rc
Subsystem:
Regression: No
Bisected commit-id:


Attachments
packet dump of an errorenous session (8.96 KB, application/octet-stream)
2009-03-06 09:15 UTC, Damjan Georgievski
Details

Description Giacomo Battiston 2007-02-14 02:20:39 UTC
Most recent kernel where this bug did *NOT* occur: -
Distribution: Gentoo
Hardware Environment: i386
Software Environment: ppp-2.4.4 + rp-pppoe-3.8

/etc/ppp/options:
name PPPoE-R
noipdefault
ipcp-accept-local
ipcp-accept-remote
debug
lock
auth
local
crtscts
asyncmap 0
mru 1480
mtu 1480
nobsdcomp
nodetach
lcp-echo-interval 30
lcp-echo-failure 4
lcp-max-configure 60
lcp-restart 2
idle 600
noipx
ms-dns 212.216.112.112
ms-dns 192.168.3.39
logfile /var/log/ppp/pppoe.log
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
lcp-echo-interval 10
lcp-echo-failure 2
require-mppe
mppe-stateful
plugin rp-pppoe.so
plugin radius.so

Problem Description:
When i try to connect with linux i have no problem (but it use mppe stateless).
When i try to connect with WindowsXP Client i need mppe-stateful or it fail at
set up time, then when i use this settings i get this log:

Connect time 0.0 minutes.
Sent 84 bytes, received 120 bytes.
Modem hangup
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
Plugin radius.so loaded.
RADIUS plugin initialized.
Plugin /etc/ppp/plugins/rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
using channel 93
Using interface ppp0
Connect: ppp0 <--> eth0
sent [LCP ConfReq id=0x1 <mru 1480> <auth chap MS-v2> <magic 0xf80e0eee>]
rcvd [LCP ConfReq id=0x0 <mru 1480> <magic 0x44c81073> <callback CBCP>]
sent [LCP ConfRej id=0x0 <callback CBCP>]
rcvd [LCP ConfAck id=0x1 <mru 1480> <auth chap MS-v2> <magic 0xf80e0eee>]
rcvd [LCP ConfReq id=0x1 <mru 1480> <magic 0x44c81073>]
sent [LCP ConfAck id=0x1 <mru 1480> <magic 0x44c81073>]
sent [LCP EchoReq id=0x0 magic=0xf80e0eee]
sent [CHAP Challenge id=0xaf <9834fec3e3953b0dd6437afa94d5c64f>, name = "PPPoE-R"]
rcvd [LCP Ident id=0x2 magic=0x44c81073 "MSRASV5.10"]
rcvd [LCP Ident id=0x3 magic=0x44c81073 "MSRAS-0-HTS91-PORTMS"]
rcvd [LCP EchoRep id=0x0 magic=0x44c81073]
rcvd [CHAP Response id=0xaf
<439bafda9a64ee5abc796eb04697e3990000000000000000b5f6b8a8559ef7aec1498c543cf8559bc65598f91ed96aa100>,
name = "t2OyoEA9"]
sent [CHAP Success id=0xaf "S=5A7D3E7B78F49C15F25B3D54570E2B67AAB7704F"]
peer from calling number 00:17:08:32:F5:0A authorized
sent [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
rcvd [CCP ConfReq id=0x4 <mppe -H -M +S -L -D +C>]
sent [CCP ConfNak id=0x4 <mppe -H -M +S -L -D -C>]
rcvd [IPCP ConfReq id=0x5 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0>
<ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
sent [IPCP TermAck id=0x5]
rcvd [CCP ConfNak id=0x1 <mppe -H -M +S -L -D -C>]
sent [CCP ConfReq id=0x2 <mppe -H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x6 <mppe -H -M +S -L -D -C>]
sent [CCP ConfAck id=0x6 <mppe -H -M +S -L -D -C>]
rcvd [CCP ConfAck id=0x2 <mppe -H -M +S -L -D -C>]
MPPE 128-bit stateful compression enabled
sent [IPCP ConfReq id=0x1 <addr 10.0.0.1>]
rcvd [IPCP ConfAck id=0x1 <addr 10.0.0.1>]
rcvd [IPCP ConfReq id=0x7 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0>
<ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
sent [IPCP ConfRej id=0x7 <compress VJ 0f 01> <ms-wins 0.0.0.0> <ms-wins 0.0.0.0>]
rcvd [IPCP ConfReq id=0x8 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfNak id=0x8 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
rcvd [IPCP ConfReq id=0x9 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
sent [IPCP ConfAck id=0x9 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
local  IP address 10.0.0.1
remote IP address 10.67.7.5
Script /etc/ppp/ip-up started (pid 5510)
Script /etc/ppp/ip-up finished (pid 5510), status = 0x1
rcvd [proto=0xe17] 45 10 ae 8b 70 45 f3 45 76 21 78 23 79 1e 6a d8 eb e7 6d 2a
5b 1a cc 9c b4 6a 41 11 4b 06 9a 4b ...
Unsupported protocol 0xe17 received
sent [LCP ProtRej id=0x2 0e 17 45 10 ae 8b 70 45 f3 45 76 21 78 23 79 1e 6a d8
eb e7 6d 2a 5b 1a cc 9c b4 6a 41 11 4b 06 ...]
rcvd [proto=0x89] 7e d8 50 1f 9f 65 e3 95 f1 39 de 49 dc 30 3c fd 70 7a 46 88 d5
3f 62 03 88 90 76 ec c9 d9 88 bd ...
Unsupported protocol 0x89 received
sent [LCP ProtRej id=0x3 00 89 7e d8 50 1f 9f 65 e3 95 f1 39 de 49 dc 30 3c fd
70 7a 46 88 d5 3f 62 03 88 90 76 ec c9 d9 ...]
rcvd [proto=0x4f] bb 69 33 41 2f 71 c8 09 f2 14 fe f6 29 45 66 8b dc df 6a b2 79
6d d8 66 49 d7 c6 82 07 ec 9a 99 ...
Unsupported protocol 'IP6 Header Compression' (0x4f) received
sent [LCP ProtRej id=0x4 00 4f bb 69 33 41 2f 71 c8 09 f2 14 fe f6 29 45 66 8b
dc df 6a b2 79 6d d8 66 49 d7 c6 82 07 ec ...]
rcvd [proto=0x5045] c0 e5 fb 71 5b fc 71 c4 42 63 12 43 10 93 23 48 7a da fc 52
a2 53 c2 71 2d a8 ba 67 13 72 32 27 ...
Unsupported protocol 0x5045 received
sent [LCP ProtRej id=0x5 50 45 c0 e5 fb 71 5b fc 71 c4 42 63 12 43 10 93 23 48
7a da fc 52 a2 53 c2 71 2d a8 ba 67 13 72 ...]
rcvd [proto=0x4ea] 60 37 28 14 f5 86 09 24 b2 b5 4d df 2a b8 1d 7d bc 71 66 72
5f fc 73 e6 bf e5 ee 82 ad 04 b4 75 ...
Unsupported protocol 0x4ea received
sent [LCP ProtRej id=0x6 04 ea 60 37 28 14 f5 86 09 24 b2 b5 4d df 2a b8 1d 7d
bc 71 66 72 5f fc 73 e6 bf e5 ee 82 ad 04 ...]
rcvd [proto=0xc204] 10 92 44 80 8c ad a5 ba 3d cb 5a e3 a4 4b a7 07 ad 9b 67 b4
5b 96 04 da 3a c1 04 6e 92 c5 09 36 ...
Unsupported protocol 0xc204 received
sent [LCP ProtRej id=0x7 c2 04 10 92 44 80 8c ad a5 ba 3d cb 5a e3 a4 4b a7 07
ad 9b 67 b4 5b 96 04 da 3a c1 04 6e 92 c5 ...]
rcvd [proto=0x148d] 90 3c 99 0f 84 ba 9d bc 63 86 11 a3 ed 87 c4 05 8c ac 47 d7
d0 7b 58 6e d9 9f b6 22 f6 34 20 b2 ...
Unsupported protocol 0x148d received
sent [LCP ProtRej id=0x8 14 8d 90 3c 99 0f 84 ba 9d bc 63 86 11 a3 ed 87 c4 05
8c ac 47 d7 d0 7b 58 6e d9 9f b6 22 f6 34 ...]
rcvd [proto=0x363b] bb 62 e7 ae e2 db a6 a0 58 49 7b f0 54 f4 15 7f 3e 09 f5 6b
02 22 56 1c f7 48 6b f9 45 09 cf 04 ...
Unsupported protocol 0x363b received
sent [LCP ProtRej id=0x9 36 3b bb 62 e7 ae e2 db a6 a0 58 49 7b f0 54 f4 15 7f
3e 09 f5 6b 02 22 56 1c f7 48 6b f9 45 09 ...]
rcvd [proto=0xc5] 1a d8 8c bf a7 72 fd 79 c6 f7 30 97 c6 f2 22 d8 31 e2 2f 38 b7
05 40 77 ec 24 29 35 8e f6 75 2e ...
Unsupported protocol 0xc5 received
continue...

Steps to reproduce:
always if i use mppe, if i downgrade the kernel and patch it with mppe-mppc
patch all wrks fine, but mppc flag is off, so i think it is a problem in kernel
implementation of mppe statefull!

Thanks
Jack
Comment 1 Anonymous Emailer 2007-02-14 10:01:15 UTC
Reply-To: akpm@linux-foundation.org



Begin forwarded message:

Date: Wed, 14 Feb 2007 02:30:59 -0800
From: bugme-daemon@bugzilla.kernel.org
To: bugme-new@lists.osdl.org
Subject: [Bugme-new] [Bug 8009] New: PPPoE+mppe Server fail with Win Client


http://bugzilla.kernel.org/show_bug.cgi?id=8009

           Summary: PPPoE+mppe Server fail with Win Client
    Kernel Version: linux-2.6.18
            Status: NEW
          Severity: normal
             Owner: jgarzik@pobox.com
         Submitter: giacomo.battiston@gmail.com


Most recent kernel where this bug did *NOT* occur: -
Distribution: Gentoo
Hardware Environment: i386
Software Environment: ppp-2.4.4 + rp-pppoe-3.8

/etc/ppp/options:
name PPPoE-R
noipdefault
ipcp-accept-local
ipcp-accept-remote
debug
lock
auth
local
crtscts
asyncmap 0
mru 1480
mtu 1480
nobsdcomp
nodetach
lcp-echo-interval 30
lcp-echo-failure 4
lcp-max-configure 60
lcp-restart 2
idle 600
noipx
ms-dns 212.216.112.112
ms-dns 192.168.3.39
logfile /var/log/ppp/pppoe.log
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
lcp-echo-interval 10
lcp-echo-failure 2
require-mppe
mppe-stateful
plugin rp-pppoe.so
plugin radius.so

Problem Description:
When i try to connect with linux i have no problem (but it use mppe stateless).
When i try to connect with WindowsXP Client i need mppe-stateful or it fail at
set up time, then when i use this settings i get this log:

Connect time 0.0 minutes.
Sent 84 bytes, received 120 bytes.
Modem hangup
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
Plugin radius.so loaded.
RADIUS plugin initialized.
Plugin /etc/ppp/plugins/rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
using channel 93
Using interface ppp0
Connect: ppp0 <--> eth0
sent [LCP ConfReq id=0x1 <mru 1480> <auth chap MS-v2> <magic 0xf80e0eee>]
rcvd [LCP ConfReq id=0x0 <mru 1480> <magic 0x44c81073> <callback CBCP>]
sent [LCP ConfRej id=0x0 <callback CBCP>]
rcvd [LCP ConfAck id=0x1 <mru 1480> <auth chap MS-v2> <magic 0xf80e0eee>]
rcvd [LCP ConfReq id=0x1 <mru 1480> <magic 0x44c81073>]
sent [LCP ConfAck id=0x1 <mru 1480> <magic 0x44c81073>]
sent [LCP EchoReq id=0x0 magic=0xf80e0eee]
sent [CHAP Challenge id=0xaf <9834fec3e3953b0dd6437afa94d5c64f>, name = "PPPoE-R"]
rcvd [LCP Ident id=0x2 magic=0x44c81073 "MSRASV5.10"]
rcvd [LCP Ident id=0x3 magic=0x44c81073 "MSRAS-0-HTS91-PORTMS"]
rcvd [LCP EchoRep id=0x0 magic=0x44c81073]
rcvd [CHAP Response id=0xaf
<439bafda9a64ee5abc796eb04697e3990000000000000000b5f6b8a8559ef7aec1498c543cf8559bc65598f91ed96aa100>,
name = "t2OyoEA9"]
sent [CHAP Success id=0xaf "S=5A7D3E7B78F49C15F25B3D54570E2B67AAB7704F"]
peer from calling number 00:17:08:32:F5:0A authorized
sent [CCP ConfReq id=0x1 <mppe +H -M +S +L -D -C>]
rcvd [CCP ConfReq id=0x4 <mppe -H -M +S -L -D +C>]
sent [CCP ConfNak id=0x4 <mppe -H -M +S -L -D -C>]
rcvd [IPCP ConfReq id=0x5 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0>
<ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
sent [IPCP TermAck id=0x5]
rcvd [CCP ConfNak id=0x1 <mppe -H -M +S -L -D -C>]
sent [CCP ConfReq id=0x2 <mppe -H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x6 <mppe -H -M +S -L -D -C>]
sent [CCP ConfAck id=0x6 <mppe -H -M +S -L -D -C>]
rcvd [CCP ConfAck id=0x2 <mppe -H -M +S -L -D -C>]
MPPE 128-bit stateful compression enabled
sent [IPCP ConfReq id=0x1 <addr 10.0.0.1>]
rcvd [IPCP ConfAck id=0x1 <addr 10.0.0.1>]
rcvd [IPCP ConfReq id=0x7 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0>
<ms-wins 0.0.0.0> <ms-dns3 0.0.0.0> <ms-wins 0.0.0.0>]
sent [IPCP ConfRej id=0x7 <compress VJ 0f 01> <ms-wins 0.0.0.0> <ms-wins 0.0.0.0>]
rcvd [IPCP ConfReq id=0x8 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
sent [IPCP ConfNak id=0x8 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
rcvd [IPCP ConfReq id=0x9 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
sent [IPCP ConfAck id=0x9 <addr 10.67.7.5> <ms-dns1 212.216.112.112> <ms-dns3
192.168.3.39>]
local  IP address 10.0.0.1
remote IP address 10.67.7.5
Script /etc/ppp/ip-up started (pid 5510)
Script /etc/ppp/ip-up finished (pid 5510), status = 0x1
rcvd [proto=0xe17] 45 10 ae 8b 70 45 f3 45 76 21 78 23 79 1e 6a d8 eb e7 6d 2a
5b 1a cc 9c b4 6a 41 11 4b 06 9a 4b ...
Unsupported protocol 0xe17 received
sent [LCP ProtRej id=0x2 0e 17 45 10 ae 8b 70 45 f3 45 76 21 78 23 79 1e 6a d8
eb e7 6d 2a 5b 1a cc 9c b4 6a 41 11 4b 06 ...]
rcvd [proto=0x89] 7e d8 50 1f 9f 65 e3 95 f1 39 de 49 dc 30 3c fd 70 7a 46 88 d5
3f 62 03 88 90 76 ec c9 d9 88 bd ...
Unsupported protocol 0x89 received
sent [LCP ProtRej id=0x3 00 89 7e d8 50 1f 9f 65 e3 95 f1 39 de 49 dc 30 3c fd
70 7a 46 88 d5 3f 62 03 88 90 76 ec c9 d9 ...]
rcvd [proto=0x4f] bb 69 33 41 2f 71 c8 09 f2 14 fe f6 29 45 66 8b dc df 6a b2 79
6d d8 66 49 d7 c6 82 07 ec 9a 99 ...
Unsupported protocol 'IP6 Header Compression' (0x4f) received
sent [LCP ProtRej id=0x4 00 4f bb 69 33 41 2f 71 c8 09 f2 14 fe f6 29 45 66 8b
dc df 6a b2 79 6d d8 66 49 d7 c6 82 07 ec ...]
rcvd [proto=0x5045] c0 e5 fb 71 5b fc 71 c4 42 63 12 43 10 93 23 48 7a da fc 52
a2 53 c2 71 2d a8 ba 67 13 72 32 27 ...
Unsupported protocol 0x5045 received
sent [LCP ProtRej id=0x5 50 45 c0 e5 fb 71 5b fc 71 c4 42 63 12 43 10 93 23 48
7a da fc 52 a2 53 c2 71 2d a8 ba 67 13 72 ...]
rcvd [proto=0x4ea] 60 37 28 14 f5 86 09 24 b2 b5 4d df 2a b8 1d 7d bc 71 66 72
5f fc 73 e6 bf e5 ee 82 ad 04 b4 75 ...
Unsupported protocol 0x4ea received
sent [LCP ProtRej id=0x6 04 ea 60 37 28 14 f5 86 09 24 b2 b5 4d df 2a b8 1d 7d
bc 71 66 72 5f fc 73 e6 bf e5 ee 82 ad 04 ...]
rcvd [proto=0xc204] 10 92 44 80 8c ad a5 ba 3d cb 5a e3 a4 4b a7 07 ad 9b 67 b4
5b 96 04 da 3a c1 04 6e 92 c5 09 36 ...
Unsupported protocol 0xc204 received
sent [LCP ProtRej id=0x7 c2 04 10 92 44 80 8c ad a5 ba 3d cb 5a e3 a4 4b a7 07
ad 9b 67 b4 5b 96 04 da 3a c1 04 6e 92 c5 ...]
rcvd [proto=0x148d] 90 3c 99 0f 84 ba 9d bc 63 86 11 a3 ed 87 c4 05 8c ac 47 d7
d0 7b 58 6e d9 9f b6 22 f6 34 20 b2 ...
Unsupported protocol 0x148d received
sent [LCP ProtRej id=0x8 14 8d 90 3c 99 0f 84 ba 9d bc 63 86 11 a3 ed 87 c4 05
8c ac 47 d7 d0 7b 58 6e d9 9f b6 22 f6 34 ...]
rcvd [proto=0x363b] bb 62 e7 ae e2 db a6 a0 58 49 7b f0 54 f4 15 7f 3e 09 f5 6b
02 22 56 1c f7 48 6b f9 45 09 cf 04 ...
Unsupported protocol 0x363b received
sent [LCP ProtRej id=0x9 36 3b bb 62 e7 ae e2 db a6 a0 58 49 7b f0 54 f4 15 7f
3e 09 f5 6b 02 22 56 1c f7 48 6b f9 45 09 ...]
rcvd [proto=0xc5] 1a d8 8c bf a7 72 fd 79 c6 f7 30 97 c6 f2 22 d8 31 e2 2f 38 b7
05 40 77 ec 24 29 35 8e f6 75 2e ...
Unsupported protocol 0xc5 received
continue...

Steps to reproduce:
always if i use mppe, if i downgrade the kernel and patch it with mppe-mppc
patch all wrks fine, but mppc flag is off, so i think it is a problem in kernel
implementation of mppe statefull!

Thanks
Jack

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

Comment 2 Natalie Protasevich 2007-07-07 18:15:20 UTC
Giacomo,
Have you tried using latest kernel from kernel.org (2.6.22-rc7 as on today)?
Thanks.
Comment 3 Giacomo Battiston 2007-10-03 09:28:11 UTC
I've try now, and the problem is already present.

(In reply to comment #2)
> Giacomo,
> Have you tried using latest kernel from kernel.org (2.6.22-rc7 as on today)?
> Thanks.
> 
Comment 4 Damjan Georgievski 2009-02-19 04:20:32 UTC
This seems to be a duplicate of 5827 which is closed but actually not resolved.
Comment 5 Matt Domsch 2009-02-23 09:17:26 UTC
From: james.cameron@hp.com [mailto:james.cameron@hp.com] 

Reviewed #8009 and #5827.

The peer initially tries to negotiate compression (+C), but the host
negotiates out of it, and the peer agrees.

Then during the connection, the peer transmits packets with compression,
despite saying it agrees not to.  The host does not recognise them.

We've seen this plenty of times.  It is as if the peers ignore the
negotiated options.  "You've got MPPE, you must have MPPC."

Or the host is not obeying the options it has negotiated.

Alas, I have no peers that do this.  A pppdump and lengthy analysis of
the data stream would be required.  I don't know the kernel code that
well, and I don't know the data structures in the stream at all.
Comment 6 Damjan Georgievski 2009-03-06 09:15:19 UTC
Created attachment 20448 [details]
packet dump of an errorenous session

I've done some additional tests with a PPPoE server on Linux (kernel 2.6.29-git7, pppd 2.4.4) and a Windows XP client with it's builtin PPPoE client. The PCs are connected directly.

I have two options on the Windows PC to eanble or disable compresion (properties on the connection, Networking tab, Settings button).

The analysis of the packet dumps show that the initial PPP CCP request from the Windows side will request or not request MPPC according to the setting above. At least Windows honors that.

In both cases the negotiation works ok, at the end both Linux and Windows agree to not use MPPC, 128-bit encription and stateless OFF (since Win only supports stateful MPPE with PPPoE).

But after that, wireshark can't decode the encripted packets so I don't know what happens next. Is there a way to do it?

ping-ing from the Windows side I see the Linux server responds with PPP LCP Protocol Reject.

ping-ing from the Linux side the Windows client doesn't respond at all.

I'm attaching a packed dump of one session.

Note You need to log in before you can comment on or make changes to this bug.