dslreports logo
 
    All Forums Hot Topics Gallery
spc
Search similar:


uniqs
6079

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

FreeBSD and the latest MLPPP issues

I recall there being a few other FreeBSD users out there. I'm not actually at my FreeBSD MLPPP installation right now, so I can't make any changes and test them. But if you've made the changes and they are working, please post the fixes here.

We need fixes for users using userland ppp, and also for anyone using mpd.

ME2
@rogers.com

ME2

Anon

Pretty sure best fix, is waiting.
brilthor
join:2007-12-13
Hamilton, ON

brilthor to Mersault

Member

to Mersault
On first inspection and test (only 5 minutes of reading here) of mpd5 I don't see a way to set an mrru. I tried setting an mru in each link section but while watching it try to connect it appears to be attempting to negotiate the mrru seperately. Since switching the mrru appears the be the fundemental part of the fix this causes a problem.

There is a round-robin directive to stop from fragmenting packets on the upstream, but I believe that TSIMark has said that fragmented packets are ok again.

will post again if I find something; for now I'm just running in the single-link config file I keep for emergencies such as this

brassy
join:2004-01-09
Brantford, ON

brassy

Member

Ive been using mpd5 since the beginning basically, but last night I added myself to the non-mlppp list so I cant really help with testing.

Although according to some of my older config files you can do a "set link mrru xxxx" Maybe thats what mpd needs?
DSL_Ricer
Premium Member
join:2007-07-22

DSL_Ricer to brilthor

Premium Member

to brilthor
said by brilthor:

There is a round-robin directive to stop from fragmenting packets on the upstream, but I believe that TSIMark has said that fragmented packets are ok again.
He enabled fragmentation on the Juniper, not re-assembly. AFAIK. So end users still need to round-robin.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

DSL_Ricer, I haven't had time to completely follow all the developments, so can you give a rundown on what's enabled in which directions?

TSI was always round-robin on the downstream connection, and would fragment and reassemble on the upstream correct?

How can Marc have enabled fragmentation but not reassembly?
DSL_Ricer
Premium Member
join:2007-07-22

1 edit

DSL_Ricer

Premium Member

From teksavvy to you: round-robin, fragmentation if IP packet > 1486

From you to teksavvy: reassembly disabled. You can only do round robin. On linux our max MTU is 1487, but that's because it does pcomp on the MLPPP payload. 1486 should always be safe.
DSL_Ricer

DSL_Ricer

Premium Member

Also, MLPPP List is now only needed if you have 2+ connections.

MLPPP single link has been re-enabled for all other ERXs.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

Okay, interesting. In my pf firewall I restrict the MSS to 1406, so that should land me at 1486 or lower for my MTU.

The problem I'm running into is that link 2 and 3 aren't coming up at all. Link 1 comes up just fine, but link 2 and link 3 just keep trying to connect and failing.

I'm trying to pull down some logs right now, but I'm troubleshooting this all remotely, which makes life difficult if I screw up and known the router offline completely.
DSL_Ricer
Premium Member
join:2007-07-22

1 edit

DSL_Ricer

Premium Member

What ERX are you on? If it's not ERX01 (102) then post in direct and ask to be put on the MLPPP list.

ketchupflavoured
@teksavvy.com

ketchupflavoured to Mersault

Anon

to Mersault
So am I correct in assuming that currently there's no way to do MLPPP (single link) with FreeBSD/MPD5 at all with Teksavvy atm, due to MRRUs 1500 being impossible in MPD? Or does this only a problem with erx01...?
ketchupflavoured

ketchupflavoured

Anon

MRRUs (less than) 1500, that is.
st0rm82
Premium Member
join:2002-11-13
Quebec, QC

st0rm82 to Mersault

Premium Member

to Mersault
Could it be the same reason it isnt working in windows xp single link mlppp too?

Mersault
join:2007-10-26
Toronto, ON

2 edits

Mersault

Member

From the mpd5 documentation:
set link mtu numbytes
set link mru numbytes
set link mrru numbytes

The set link mtu command sets the maximum transmit unit (MTU) value for the link. This is the size of the largest single PPP frame (minus PPP header) that this link will transmit, unless the peer requests an even lower value. The default value is 1500 bytes.

The set link mru command sets maximum receive unit (MRU) value for the link, which is the size of the largest single PPP frame (minus PPP header) that this link is capable of receiving. The default value is 1500 bytes.

If PPP multilink is negotiated on a link, then these values are less important, because multilink allows PPP frames themselves to be fragmented, so a PPP frame up to MRRU bytes can always pass through no matter how small the MTU is in a particular direction.

Otherwise, mpd is responsible for making sure that the MTU configured on the system networking interface is low enough so that the largest transmitted IP packet does not exceed the peer's negotiated MRU after it becomes a PPP frame. This includes e.g. PPP encryption and/or compression overhead.

However, mpd does not account for overhead that occurs ''outside'' of the PPP frame. For example, when using link types such as PPTP that encapsulate PPP frames within IP packets, a large outgoing ``inner'' IP packet can result in a fragmented ''outer'' IP packet, resulting in suboptimal performance. In this situation it may be useful to set the link MTU to a lower value to avoid fragmentation.

So it should be easy to set the mru, mrru, and mtu values. I haven't been able to play with them yet though.
Mersault

Mersault to DSL_Ricer

Member

to DSL_Ricer
said by DSL_Ricer:

What ERX are you on? If it's not ERX01 (102) then post in direct and ask to be put on the MLPPP list.
Arg, when they expunged the MLPPP list they must have removed my login. I know I'd verified that I was on it previously, but now I'm on 206.248.154.106. Will get put back on the MLPPP list.

ketchupflavoured
@teksavvy.com

ketchupflavoured to Mersault

Anon

to Mersault
said by Mersault:

From the mpd5 documentation:
set link mtu numbytes
set link mru numbytes
set link mrru numbytes

The set link mtu command sets the maximum transmit unit (MTU) value for the link. This is the size of the largest single PPP frame (minus PPP header) that this link will transmit, unless the peer requests an even lower value. The default value is 1500 bytes.

The set link mru command sets maximum receive unit (MRU) value for the link, which is the size of the largest single PPP frame (minus PPP header) that this link is capable of receiving. The default value is 1500 bytes.

If PPP multilink is negotiated on a link, then these values are less important, because multilink allows PPP frames themselves to be fragmented, so a PPP frame up to MRRU bytes can always pass through no matter how small the MTU is in a particular direction.

Otherwise, mpd is responsible for making sure that the MTU configured on the system networking interface is low enough so that the largest transmitted IP packet does not exceed the peer's negotiated MRU after it becomes a PPP frame. This includes e.g. PPP encryption and/or compression overhead.

However, mpd does not account for overhead that occurs ''outside'' of the PPP frame. For example, when using link types such as PPTP that encapsulate PPP frames within IP packets, a large outgoing ``inner'' IP packet can result in a fragmented ''outer'' IP packet, resulting in suboptimal performance. In this situation it may be useful to set the link MTU to a lower value to avoid fragmentation.

So it should be easy to set the mru, mrru, and mtu values. I haven't been able to play with them yet though.
Unfortunately, setting MRRU to less than 1500 in mpd.conf results in:

mpd.conf:21: Error in 'set link mrru 1492': min MRRU is 1500

Yet it seems 1492 is required for the link to properly negotiate ...

[L1] LCP: not converging
[L1] LCP: parameter negotiation failed


Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

said by ketchupflavoured :

Unfortunately, setting MRRU to less than 1500 in mpd.conf results in:

mpd.conf:21: Error in 'set link mrru 1492': min MRRU is 1500

Yet it seems 1492 is required for the link to properly negotiate ...

[L1] LCP: not converging
[L1] LCP: parameter negotiation failed


Can you change that setting from the CLI? The I wonder if the telnet interface would take that value, even if the conf file wont.

I can forward this issue off to the MPD author. I have his email around somewhere. Can you post or email a complete copy of the relevant lines from the log, plus your .conf?

ketchupflavoured
@teksavvy.com

ketchupflavoured

Anon

said by Mersault:

Can you change that setting from the CLI? The I wonder if the telnet interface would take that value, even if the conf file wont.

I can forward this issue off to the MPD author. I have his email around somewhere. Can you post or email a complete copy of the relevant lines from the log, plus your .conf?

The conf file just passes every line along as if it were the CLI. I Tried anyway, just to be sure -- same error.

relevant logs:
[B1] Bundle: Interface ng0 created
mpd.conf:30: Error in 'set link mrru 1492': min MRRU is 1500
mpd.conf:47: Error in 'set link mrru 1492': min MRRU is 1500
[L2] [L1] Link: OPEN event
[L1] LCP: Open event
[L1] LCP: state change Initial --> Starting
[L1] LCP: LayerStart
[L2] Link: OPEN event
[L2] LCP: Open event
[L2] LCP: state change Initial --> Starting
[L2] LCP: LayerStart
[L1] PPPoE: Connecting to 'teksavvy'
[L2] PPPoE: Connecting to 'teksavvy'
[L1] PPPoE: connection successful
[L1] Link: UP event
[L1] Link: origination is local
[L1] LCP: Up event
[L1] LCP: state change Starting --> Req-Sent
[L1] LCP: SendConfigReq #1
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] MP MRRU 2048
[L1] MP SHORTSEQ
[L1] ENDPOINTDISC [802.1] [xxx]
[L1] LCP: rec'd Configure Request #177 (Req-Sent)
[L1] MRU 1492
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5110c340
[L1] LCP: SendConfigAck #177
[L1] MRU 1492
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5110c340
[L1] LCP: state change Req-Sent --> Ack-Sent
[L1] LCP: rec'd Configure Reject #1 (Ack-Sent)
[L1] MP MRRU 2048
[L1] MP SHORTSEQ
[L1] ENDPOINTDISC [802.1] [xxx]
[L1] LCP: SendConfigReq #2
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] LCP: rec'd Configure Ack #2 (Ack-Sent)
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] LCP: state change Ack-Sent --> Opened
[L1] LCP: auth: peer wants PAP, I want nothing
[L1] PAP: using authname "xxx@xxx"
[L1] PAP: sending REQUEST #1 len: 36
[L1] LCP: LayerUp
[L1] LCP: rec'd Configure Request #216 (Opened)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: LayerDown
[L1] LCP: SendConfigReq #3
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] LCP: SendConfigNak #216
[L1] MP MRRU 1500
[L1] LCP: state change Opened --> Req-Sent
[L1] LCP: rec'd Configure Nak #3 (Req-Sent)
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [NULL]
[L1] LCP: SendConfigReq #4
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] MP MRRU 1500
[L1] ENDPOINTDISC [802.1] [xxx]
[L1] LCP: rec'd Configure Request #217 (Req-Sent)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #217
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Ack #4 (Req-Sent)
[L1] MRU 1486
[L1] MAGICNUM 9673de00
[L1] MP MRRU 1500
[L1] ENDPOINTDISC [802.1] [xxx]
[L1] LCP: state change Req-Sent --> Ack-Rcvd
[L1] LCP: rec'd Configure Request #218 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #218
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Request #219 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #219
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Request #220 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #220
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Request #221 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #221
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Request #222 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: SendConfigNak #222
[L1] MP MRRU 1500
[L1] LCP: rec'd Configure Request #223 (Ack-Rcvd)
[L1] MRU 1492
[L1] MP MRRU 1492
[L1] ENDPOINTDISC [LOCAL] [xxx]
[L1] AUTHPROTO PAP
[L1] MAGICNUM 5109b294
[L1] LCP: not converging
[L1] LCP: parameter negotiation failed
[L1] LCP: state change Ack-Rcvd --> Stopped
[L1] LCP: LayerFinish
[L1] PPPoE: connection closed
[L1] Link: DOWN event
[L1] LCP: Down event

here is my mpd.conf:

startup:

default:

create bundle static B1
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set ipcp enable req-pri-dns
set ipcp enable req-sec-dns
set ipcp disable vjcomp

# set bundle disable round-robin
set bundle disable bw-manage
set bundle links L1 L2
set iface mtu 1486
set iface disable on-demand
set iface enable tcpmssfix

create link static L1 pppoe
set auth authname "xxx"
set auth password "xxx"
set link max-redial 0
set link keep-alive 10 60
set pppoe iface rl1
set pppoe service "teksavvy"
set link enable multilink
set link enable shortseq
set link disable protocomp
set link mrru 1492
set link mru 1486
set link mtu 1486
set link bandwidth 5056000
set link action bundle B1
open

create link static L2 pppoe
set auth authname "xxx"
set auth password "xxx"
set link max-redial 0
set link keep-alive 10 60
set pppoe iface rl0
set pppoe service "teksavvy"
set link enable multilink
set link enable shortseq
set link disable protocomp
set link mrru 1492
set link mru 1486
set link mtu 1486
set link bandwidth 5056000
set link action bundle B1
open

create link static L2 pppoe
set auth authname "xxx"
set auth password "xxx"
set link max-redial 0
set link keep-alive 10 60
set pppoe iface rl0
set pppoe service "teksavvy"
set link enable multilink
set link enable shortseq
set link disable protocomp
set link mrru 1492
set link mru 1486
set link mtu 1486
set link bandwidth 5056000
set link action bundle B1
open

Which is nearly a copy of:
»Re: Single Line MLPPP w/ Teksavvy with only minor modifications.

Though, my original minimalistic config (without even specifying mrru/mtu/mru/etc) had produced the same results since late friday.

brassy
join:2004-01-09
Brantford, ON

brassy

Member

Can confirum that single link mlppp with mpd5 aint working.

Is this mrru problem going to be permanent at teksavvy? Or what?

(not that I *need* mlppp, but I guess it might be nice if I ever decide to torrent again)

ketchupflavoured
@teksavvy.com

ketchupflavoured to Mersault

Anon

to Mersault
On link services interfaces configured for Multilink PPP (MLPPP), if you try to connect a routing platform running JUNOS Release 6.4R3 or later to another vendor's router that uses a maximum received reconstructed unit (MRRU) value of less than 1500 bytes, the routing platform uses the wrong MRRU value in the Link Control Protocol (LCP) negotiation and the MLPPP session is not established. [PR/57950]
from:
»www.juniper.net/techpubs ··· prs.html .. Suppose that's relevant?

TSI Marc
Premium Member
join:2006-06-23
Chatham, ON

TSI Marc

Premium Member

We're not running that version so I don't know if it does but this is what i've been reading up on also... I think it's something related to this for sure since it keeps bouncing back and forth.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

Are there still issues with FreeBSD and MPD with TekSavvy since the recent patch to ERX1? My MLPPP setup is still running on only one link, but I'm still remote to the install and thus can't mess around with it to try and make it work. But I'd like to have some answers for my room mates who are used to much faster speeds.
DSL_Ricer
Premium Member
join:2007-07-22

1 edit

DSL_Ricer

Premium Member

said by Mersault:

Are there still issues with FreeBSD and MPD with TekSavvy since the recent patch to ERX1? My MLPPP setup is still running on only one link, but I'm still remote to the install and thus can't mess around with it to try and make it work. But I'd like to have some answers for my room mates who are used to much faster speeds.
It's complicated. Theoretically, as long as you're on the ERX01 list, it's the same as it's always been.
In practice, all hosts redirect to ERX01 (if you're on the list), but they're returning their own endpoint names. This means most software won't bind the links. That shouldn't change much if your setup was working before. You'd eventually hit the same ERX on your second connection and it would work.
They're also saying their MRRU is 1492. This is causing windows to fail to connect.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

Ah, okay. So it's the MRRU setting that's also preventing MPD from connecting. I guess I'll try userland PPP for the time being.
Mersault

Mersault to DSL_Ricer

Member

to DSL_Ricer
Alright, my room mate rebooted the router after I set it to use my old userland PPP config (was working fine in September), only with the mrru set to 1492.

At least one of the links came up, and I'm in and tailing the /var/log/ppp.log file, but I see it's still trying to connect the other links.

I assume we're back to the old situation where a connection would take several minutes to come up since each attempt only has a 20% chance of hitting the same ERX.

Does that sound right?
Mersault

Mersault

Member

It took an hour for all the links to come up, but they finally did. My room mates are reporting full speeds again. According to the log file all the links are up at an mrru of 1492.

I've emailed the author of MPD, to see if he has any insight into why MPD isn't working.

brassy
join:2004-01-09
Brantford, ON

brassy

Member

Does the userland freebsd pppoe do mlppp? I think I switched to mpd5 because it didnt? (maybe Im wrong?)

Please keep us updated on the mpd5 front.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

The userland ppp daemon does indeed do mlppp. I have used it successfully for months at a time.

Also, the MPD author emailed me back and says he's modified the CVS version of MPD to allow an mrru of less than 1500. Is anyone able to test that out for me and let me know if it works?

brassy
join:2004-01-09
Brantford, ON

1 edit

brassy

Member

Ive got the cvs mpd5 compiled now, so I shoudl be adding a "set link mrru 1486" ? to each of my bundle configs? or what? (not running it, want the conf files to be set up properly first before trying)

This is for single link mlppp.

Mersault
join:2007-10-26
Toronto, ON

Mersault

Member

said by brassy:

Ive got the cvs mpd5 compiled now, so I shoudl be adding a "set link mrru 1486" ? to each of my bundle configs? or what?

This is for single link mlppp.
I believe so, yes.