When trying to connect to a multilink enabled Cisco LNS with MRRU set to 1524 in mpd.conf as required, the connection immediately disconnects after getting established. I am currently using the latest 5.8_7 mpd5 version from FreeBSD ports.
Log file is as follows (last 2 octects of ip addresses masked):
Oct 1 02:07:05 chestnut mpd5: [L1] PPPoE: Connecting to '*'
Oct 1 02:07:05 chestnut mpd5: PPPoE: rec'd ACNAME "OKVLON3010W"
Oct 1 02:07:05 chestnut mpd5: [L1] rec'd proto LCP while dead
Oct 1 02:07:05 chestnut mpd5: [L1] PPPoE: connection successful
Oct 1 02:07:05 chestnut mpd5: [L1] Link: UP event
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: Up event
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: state change Starting --> Req-Sent
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: phase shift DEAD --> ESTABLISH
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: SendConfigReq #1
Oct 1 02:07:05 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:05 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:05 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:05 chestnut mpd5: [L1] ENDPOINTDISC [802.1] 00 12 17 51 38 28
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: rec'd Configure Reject #1 (Req-Sent)
Oct 1 02:07:05 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:05 chestnut mpd5: [L1] ENDPOINTDISC [802.1] 00 12 17 51 38 28
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: SendConfigReq #2
Oct 1 02:07:05 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:05 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: rec'd Configure Ack #2 (Req-Sent)
Oct 1 02:07:05 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:05 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:05 chestnut mpd5: [L1] LCP: state change Req-Sent --> Ack-Rcvd
Oct 1 02:07:07 chestnut mpd5: [L1] LCP: state change Ack-Rcvd --> Req-Sent
Oct 1 02:07:07 chestnut mpd5: [L1] LCP: SendConfigReq #3
Oct 1 02:07:07 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:07 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:07 chestnut mpd5: [L1] LCP: rec'd Configure Ack #3 (Req-Sent)
Oct 1 02:07:07 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:07 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:07 chestnut mpd5: [L1] LCP: state change Req-Sent --> Ack-Rcvd
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: rec'd Configure Request #29 (Ack-Rcvd)
Oct 1 02:07:08 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:08 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:08 chestnut mpd5: [L1] MAGICNUM 0x41109ecf
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: SendConfigAck #29
Oct 1 02:07:08 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:08 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:08 chestnut mpd5: [L1] MAGICNUM 0x41109ecf
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: state change Ack-Rcvd --> Opened
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: phase shift ESTABLISH --> AUTHENTICATE
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: auth: peer wants PAP, I want nothing
Oct 1 02:07:08 chestnut mpd5: [L1] PAP: using authname "nrg@ispdomain.com"
Oct 1 02:07:08 chestnut mpd5: [L1] PAP: sending REQUEST #1 len: 42
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: LayerUp
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: rec'd Configure Request #1 (Opened)
Oct 1 02:07:08 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:08 chestnut mpd5: [L1] MAGICNUM 0x8ab29f74
Oct 1 02:07:08 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:08 chestnut mpd5: [L1] ENDPOINTDISC [LOCAL] 73 74 61 63 6b 74 68 65 6c 6e 73
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: LayerDown
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: SendConfigReq #4
Oct 1 02:07:08 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:08 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: SendConfigAck #1
Oct 1 02:07:08 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:08 chestnut mpd5: [L1] MAGICNUM 0x8ab29f74
Oct 1 02:07:08 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:08 chestnut mpd5: [L1] ENDPOINTDISC [LOCAL] 73 74 61 63 6b 74 68 65 6c 6e 73
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: state change Opened --> Ack-Sent
Oct 1 02:07:08 chestnut mpd5: [L1] LCP: phase shift AUTHENTICATE --> ESTABLISH
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: SendConfigReq #5
Oct 1 02:07:10 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:10 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: rec'd Configure Request #2 (Ack-Sent)
Oct 1 02:07:10 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:10 chestnut mpd5: [L1] MAGICNUM 0x8ab29f74
Oct 1 02:07:10 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:10 chestnut mpd5: [L1] ENDPOINTDISC [LOCAL] 73 74 61 63 6b 74 68 65 6c 6e 73
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: SendConfigAck #2
Oct 1 02:07:10 chestnut mpd5: [L1] AUTHPROTO PAP
Oct 1 02:07:10 chestnut mpd5: [L1] MAGICNUM 0x8ab29f74
Oct 1 02:07:10 chestnut mpd5: [L1] MP MRRU 1524
Oct 1 02:07:10 chestnut mpd5: [L1] ENDPOINTDISC [LOCAL] 73 74 61 63 6b 74 68 65 6c 6e 73
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: rec'd Configure Ack #5 (Ack-Sent)
Oct 1 02:07:10 chestnut mpd5: [L1] MRU 1492
Oct 1 02:07:10 chestnut mpd5: [L1] MAGICNUM 0x83e0b858
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: state change Ack-Sent --> Opened
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: phase shift ESTABLISH --> AUTHENTICATE
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: auth: peer wants PAP, I want nothing
Oct 1 02:07:10 chestnut mpd5: [L1] PAP: using authname "nrg@ispdomain.com"
Oct 1 02:07:10 chestnut mpd5: [L1] PAP: sending REQUEST #1 len: 42
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: LayerUp
Oct 1 02:07:10 chestnut mpd5: [L1] PAP: rec'd ACK #1 len: 5
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: authorization successful
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: phase shift AUTHENTICATE --> NETWORK
Oct 1 02:07:10 chestnut mpd5: [L1] Link: Matched action 'bundle "B1" ""'
Oct 1 02:07:10 chestnut mpd5: [L1] Link: Join bundle "B1"
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: setting ng0 MTU to 1500 bytes
Oct 1 02:07:10 chestnut mpd5: [B1] Bundle: Status update: up 1 link, total bandwidth 10000000 bps
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: Open event
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: state change Initial --> Starting
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: LayerStart
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: Up event
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: state change Starting --> Req-Sent
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: SendConfigReq #1
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 0.0.0.0
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: rec'd Configure Request #1 (Req-Sent)
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 96.125.1.1
Oct 1 02:07:10 chestnut mpd5: [B1] 96.125.1.1 is OK
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: SendConfigAck #1
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 96.125.1.1
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: state change Req-Sent --> Ack-Sent
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: rec'd Configure Nak #1 (Ack-Sent)
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 45.2.2.1
Oct 1 02:07:10 chestnut mpd5: [B1] 45.2.2.1 is OK
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: SendConfigReq #2
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 45.2.2.1
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: rec'd Configure Ack #2 (Ack-Sent)
Oct 1 02:07:10 chestnut mpd5: [B1] IPADDR 45.2.2.1
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: state change Ack-Sent --> Opened
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: LayerUp
Oct 1 02:07:10 chestnut mpd5: [B1] 45.2.2.1 -> 96.125.1.1
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Connecting NAT
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Add address 45.2.2.1/32->96.125.1.1 to ng0
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Add route 0.0.0.0/0 96.125.1.1
Oct 1 02:07:10 chestnut mpd5: [B1] system: /usr/local/etc/mpd5/mpd.linkup ng0 inet 45.2.2.1/32 96.125.1.1 '-' '' '' '00:00:00:00:0$
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Up event
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Change interface ng0 flags: -0 +1
Oct 1 02:07:10 chestnut mpd5: [L1] PPPoE: connection closed
Oct 1 02:07:10 chestnut mpd5: [L1] Link: DOWN event
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: Down event
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: state change Opened --> Starting
Oct 1 02:07:10 chestnut mpd5: [L1] LCP: phase shift NETWORK --> DEAD
Oct 1 02:07:10 chestnut mpd5: [L1] Link: Leave bundle "B1"
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: setting ng0 MTU to 1500 bytes
Oct 1 02:07:10 chestnut mpd5: [B1] Bundle: Status update: up 0 links, total bandwidth 9600 bps
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: Close event
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: state change Opened --> Closing
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: SendTerminateReq #3
Oct 1 02:07:10 chestnut mpd5: [B1] IPCP: LayerDown
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Delete route 0.0.0.0/0 96.125.1,1
Oct 1 02:07:10 chestnut mpd5: [B1] IFACE: Remove address 45.2.2,1/32->96.125.1.1 from ng0
Oct 1 02:07:11 chestnut mpd5: [B1] IFACE: Down event
Oct 1 02:07:11 chestnut mpd5: [B1] IFACE: Change interface ng0 flags: -4097 +0
Oct 1 02:07:11 chestnut mpd5: [B1] IPCP: Down event
Oct 1 02:07:11 chestnut mpd5: [B1] IPCP: LayerFinish
Oct 1 02:07:11 chestnut mpd5: [B1] Bundle: No NCPs left. Closing links...
Oct 1 02:07:11 chestnut mpd5: [B1] IPCP: state change Closing --> Initial
Oct 1 02:07:11 chestnut mpd5: [L1] LCP: LayerDown
Oct 1 02:07:11 chestnut mpd5: [L1] Link: reconnection attempt 1 in 18 seconds
Oct 1 02:07:13 chestnut mpd5: [L2] PPPoE connection timeout after 9 seconds
Oct 1 02:07:13 chestnut mpd5: [L2] Link: DOWN event
Oct 1 02:07:13 chestnut mpd5: [L2] LCP: Down event
Oct 1 02:07:13 chestnut mpd5: [L2] Link: reconnection attempt 7 in 15 seconds
Any ideas? By doing research online, other people are experiencing the same issue where MLPPP multilink is not working when using mpd5 if the ISP is using Cisco equipment.
FYI, as soon as I change "set link enable multilink" to "set link disable multilink" in mpd.conf, I am able to connect without any issues but without MLPPP enabled obviously.
Please show your mpd.conf
As requested, my mpd.conf is as follows:
Last edit: Serge Cormier 2018-10-01
And in case you need it, my mpd.linkup is as follows:
I'm afraid you mis-pasted contents of mpd.linkup as it does not look like meaningless shell script. Please double-check this.
Also please re-read documentation: http://mpd.sourceforge.net/doc5/mpd28.html#28 that states: "If up-script exit status is not 0, mpd will kill respective protocol."
Make sure your mpd.linkup script is terminated with "exit 0" command or else you may get exactly same effect as the log show if last command of the script returns non-zero exit status that shell propagates to calling process (mpd5).
I tried adding "exit 0" at the end of my mpd.linkup script but the same issue still takes place. I also tried without having the script enabled and the same issue remains so this has nothing to do with mpd.linkup. The linkup script also has ifconfig alias commands to set my static IP's to ng0 which i did not paste here.
As previously stated, as soon as i change "set link enable multilink" to "set link disable multilink", I am able to connect so this is an issue with mpd5 not being able to support multilink when connecting to Cisco equipment.
Last edit: Serge Cormier 2018-10-02
What FreeBSD version do you use?
Take a look to the output of "dmesg -a" shell command, does if show something unusual, some errors?
And this it not full log of mpd5 from its start. Please clear it, restart mpd5 and post full log from the beginning until the first line saying "Link: reconnection attempt". Use commands like those:
echo -n > /var/log/mpd.log; killall -1 syslogd; service mpd5 restart
Use right log file name for "echo -n".
I'm using FreeBSD 10.3-RELEASE-p29 FreeBSD 10.3-RELEASE-p29 #0:
Current mpd5 version is:
mpd5 -v
Version 5.8 (root@104i386-default-job-02 19:10 13-Sep-2018)
Nothing unusual comes up with the output of dmesg -a. As this is a production server, I can only get a new log during the off peak 2:00am to 6:00am maintenance window so I will try to do it overnight tonight. However, i am 100% confident that there are NO errors or other messages of interest in the parts of the log that I snipped.
If you do reasearch online, you will find other discussion forums such as
https://forum.netgate.com/topic/33810/2-0rc-mlppp-doesn-t-work-with-my-provider/27
where other people are experiencing the same issue where mpd5 refuses to connect with multilink enabled when connecting to Cisco equipment while other PPPoE dialers have no issues such as the one used in MikroTik equipment.
It would also great help if you post some PPP logs of your another router that successfully negotiates MLPPP with same provider. More detailed this log, easier to dig the root of the problem and fix it.
Will you be able to apply a patch, rebuild mpd5 binary/package to test? If not, I can build patched mpd5 for you but tell if you use 32 bit version or 64 bit.
Using packages for most software running on this production server right now but I can apply a patch and compile a test version from source if required. Alternatively, you may build a patched 32 bit test version of mpd5 which would enable me to try it out more quickly.
This patch should make mpd5 to re-negotiate MRRU option with PAC despite LNS has rejected it previously for a link.
Update 11.10.2018: I've replaced the patch with more correct version, please update it if you downloaded old version before.
Last edit: Eugene Grosbein 2018-10-10
I just realized I have only FreeBSD10/amd64 and FreeBSD 11/i386 (and amd64) but no FreeBSD 10/i386 to build the package. You'll have to use Ports and put the patch to /usr/ports/net/mpd5/files/patch-lcp.c then rebuilt the port.
And I still need logs mentioned above, in case the patch does not help.
mpd.log with latest patch (i.e. 11.10.2018 version) applied and port rebuilt:
As you can see, there were no behaviour changes when using the latest version from a newly updated FreeBSD ports tree.
Please feel free to send me additional patch revisions to test out.
Thanks,
Last edit: Serge Cormier 2018-10-17
Try this new patch instead of previous one and collect same logs and post it. If it does not work still, you'll need to apply both of patches and repeat again and post logs.
As requested, log after adding latest patch can be found below. Behavior is still the same where none of the 2 lines ever manage to get connected until I disable multilink in the mpd5 config.
Please use this patch instead of patch-2-lcp.c and retry.
Last edit: Eugene Grosbein 2018-10-18
I hope you will be able to show PPP logs for some another router that uses MLPPP just fine with same provider in case these patches won't work still.
I know it works fine when using other clients such as rp-pppoe (i.e. Roaring penguin). Will try to setup another router soon or temporarily use rp-pppoe on our FreeBSD server..
Please try latest patch first. There is good change it will work as your last log shows some good progress.
Wow finally, it works and both lines get bonded! thanks :)
Still have to do some fine tuning as for some reason, I only get 70% to 80% of the total upload or download bandwidth from both links combined. Current log is as follows:
Last edit: Serge Cormier 2018-10-23
Have it started to work with single patch-3-lcp.c applied only?
Please try this patch instead of any previous patches to see if it helps with your bandwidth problem.
Last edit: Eugene Grosbein 2018-10-24